[fidldoc] Updating fidl reference docs
diff --git a/sdk/fidl/fuchsia.lowpan.device/README.md b/sdk/fidl/fuchsia.lowpan.device/README.md
index 9233940..a5e0138 100644
--- a/sdk/fidl/fuchsia.lowpan.device/README.md
+++ b/sdk/fidl/fuchsia.lowpan.device/README.md
@@ -449,8 +449,176 @@
</td>
</tr></table>
+## DeviceRoute {#DeviceRoute}
+*Defined in [fuchsia.lowpan.device/device_route.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/device_route.fidl#102)*
+
+<p>LoWPAN protocol for IPv6 route and prefix management methods that
+do not expose PII.</p>
+<p>Note that methods that deal with PII are located in the
+<code>DeviceRouteExtra</code> protocol.</p>
+
+### RegisterExternalRoute {#fuchsia.lowpan.device/DeviceRoute.RegisterExternalRoute}
+
+<p>Registers an external route to be advertised on the
+current network.</p>
+<p>Subsequent calls with the same value for the <code>subnet</code> field will
+update the properties associated with that route.</p>
+<p>These changes persist like adding an IP address would,
+and will stick around until explicitly removed or
+the interface component is reset/restarted.</p>
+<p>If the given <code>ExternalRoute</code> structure is invalid for some reason
+(missing required fields, invalid values, etc), the channel will be
+closed with the epitaph <code>ZX_ERR_INVALID_ARGUMENT</code>.</p>
+<p>If registering a new external route and the maximum number of
+external routes has already been registered, this channel will
+be closed with the epitaph <code>ZX_ERR_NO_RESOURCES</code>.</p>
+
+#### Request
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ <tr>
+ <td><code>external_route</code></td>
+ <td>
+ <code><a class='link' href='#ExternalRoute'>ExternalRoute</a></code>
+ </td>
+ </tr></table>
+
+
+#### Response
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ </table>
+
+### RegisterOnMeshPrefix {#fuchsia.lowpan.device/DeviceRoute.RegisterOnMeshPrefix}
+
+<p>Registers an on-mesh prefix to be advertised on the
+current network.</p>
+<p>Subsequent calls with the same value for the <code>subnet</code> field will
+update the properties associated with that on-mesh prefix.</p>
+<p>These changes persist like adding an IP address would,
+and will stick around until explicitly removed or
+the interface component is reset/restarted.</p>
+<p>If the given <code>OnMeshPrefix</code> structure is invalid for some reason
+(missing required fields, invalid values, etc), the channel will be
+closed with the epitaph <code>ZX_ERR_INVALID_ARGS</code>.</p>
+<p>If registering a new on-mesh prefix and the maximum number of
+on-mesh prefixes has already been registered, this channel will
+be closed with the epitaph <code>ZX_ERR_NO_RESOURCES</code>.</p>
+
+#### Request
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ <tr>
+ <td><code>prefix</code></td>
+ <td>
+ <code><a class='link' href='#OnMeshPrefix'>OnMeshPrefix</a></code>
+ </td>
+ </tr></table>
+
+
+#### Response
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ </table>
+
+### UnregisterExternalRoute {#fuchsia.lowpan.device/DeviceRoute.UnregisterExternalRoute}
+
+<p>Unregisters any external route that was previously registered with
+<code>RegisterExternalRoute</code>. It returns once the external route has
+been removed locally.</p>
+<p>If the given external route was not previously registered,
+no action is taken.</p>
+
+#### Request
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ <tr>
+ <td><code>subnet</code></td>
+ <td>
+ <code><a class='link' href='../fuchsia.lowpan/'>fuchsia.lowpan</a>/<a class='link' href='../fuchsia.lowpan/#Ipv6Subnet'>Ipv6Subnet</a></code>
+ </td>
+ </tr></table>
+
+
+#### Response
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ </table>
+
+### UnregisterOnMeshPrefix {#fuchsia.lowpan.device/DeviceRoute.UnregisterOnMeshPrefix}
+
+<p>Unregisters any on-mesh prefix that was previously registered with
+<code>RegisterOnMeshPrefix</code>. It returns once the on-mesh prefix has
+been removed locally.</p>
+<p>If the given mesh prefix was not previously registered,
+no action is taken.</p>
+
+#### Request
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ <tr>
+ <td><code>subnet</code></td>
+ <td>
+ <code><a class='link' href='../fuchsia.lowpan/'>fuchsia.lowpan</a>/<a class='link' href='../fuchsia.lowpan/#Ipv6Subnet'>Ipv6Subnet</a></code>
+ </td>
+ </tr></table>
+
+
+#### Response
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ </table>
+
+## DeviceRouteExtra {#DeviceRouteExtra}
+*Defined in [fuchsia.lowpan.device/device_route.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/device_route.fidl#163)*
+
+<p>LoWPAN protocol for IPv6 route and prefix management methods that
+expose PII.</p>
+<p>Note that methods that do not deal with PII are located in the
+<code>DeviceRoute</code> protocol.</p>
+
+### GetLocalExternalRoutes {#fuchsia.lowpan.device/DeviceRouteExtra.GetLocalExternalRoutes}
+
+<p>Returns a vector containing all of the locally added external routes.</p>
+
+#### Request
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ </table>
+
+
+#### Response
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ <tr>
+ <td><code>external_routes</code></td>
+ <td>
+ <code>vector<<a class='link' href='#ExternalRoute'>ExternalRoute</a>>[32]</code>
+ </td>
+ </tr></table>
+
+### GetLocalOnMeshPrefixes {#fuchsia.lowpan.device/DeviceRouteExtra.GetLocalOnMeshPrefixes}
+
+<p>Returns a vector containing all of the locally added on-mesh prefixes.</p>
+
+#### Request
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ </table>
+
+
+#### Response
+<table>
+ <tr><th>Name</th><th>Type</th></tr>
+ <tr>
+ <td><code>prefixes</code></td>
+ <td>
+ <code>vector<<a class='link' href='#OnMeshPrefix'>OnMeshPrefix</a>>[32]</code>
+ </td>
+ </tr></table>
+
## Driver {#Driver}
-*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#58)*
+*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#60)*
<p>Protocol representing a LoWPAN driver instance.</p>
@@ -499,7 +667,7 @@
</tr></table>
## Lookup {#Lookup}
-*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#67)*
+*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#69)*
<p>Protocol for discovering and resolving LoWPAN interfaces and their
associated control protocol instances.</p>
@@ -627,7 +795,7 @@
</tr></table>
## Register {#Register}
-*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#104)*
+*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#106)*
<p>Protocol for registering LoWPAN interfaces and their
associated control protocols with the LoWPAN service.</p>
@@ -668,7 +836,7 @@
## **STRUCTS**
### DeviceChanges {#DeviceChanges}
-*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#51)*
+*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#53)*
<p>Struct describing changes to the devices being managed
by the LoWPAN service.</p>
@@ -693,7 +861,7 @@
</table>
### Lookup_LookupDevice_Response {#Lookup_LookupDevice_Response}
-*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#71)*
+*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#73)*
@@ -718,7 +886,7 @@
</table>
### Register_RegisterDevice_Response {#Register_RegisterDevice_Response}
-*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#107)*
+*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#109)*
@@ -767,6 +935,32 @@
</td>
</tr></table>
+### RoutePreference {#RoutePreference}
+Type: <code>int8</code>
+
+*Defined in [fuchsia.lowpan.device/device_route.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/device_route.fidl#13)*
+
+<p>Route preference, as described in RFC4191.</p>
+
+
+<table>
+ <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr id="RoutePreference.LOW">
+ <td><code>LOW</code></td>
+ <td><code>-1</code></td>
+ <td><p>Low route preference.</p>
+</td>
+ </tr><tr id="RoutePreference.MEDIUM">
+ <td><code>MEDIUM</code></td>
+ <td><code>0</code></td>
+ <td><p>Medium route preference.</p>
+</td>
+ </tr><tr id="RoutePreference.HIGH">
+ <td><code>HIGH</code></td>
+ <td><code>1</code></td>
+ <td><p>High route preference.</p>
+</td>
+ </tr></table>
+
### ServiceError {#ServiceError}
Type: <code>int32</code>
@@ -923,6 +1117,52 @@
</td>
</tr></table>
+### ExternalRoute {#ExternalRoute}
+
+
+*Defined in [fuchsia.lowpan.device/device_route.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/device_route.fidl#74)*
+
+<p>LoWPAN External Route.</p>
+<p>Informed by the Thread 1.1.1 Specification, section 5.13.3.</p>
+
+
+<table>
+ <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+ <tr id="ExternalRoute.subnet">
+ <td>1</td>
+ <td><code>subnet</code></td>
+ <td>
+ <code><a class='link' href='../fuchsia.lowpan/'>fuchsia.lowpan</a>/<a class='link' href='../fuchsia.lowpan/#Ipv6Subnet'>Ipv6Subnet</a></code>
+ </td>
+ <td><p>Subnet for route. Required.</p>
+</td>
+ </tr><tr id="ExternalRoute.route_preference">
+ <td>2</td>
+ <td><code>route_preference</code></td>
+ <td>
+ <code><a class='link' href='#RoutePreference'>RoutePreference</a></code>
+ </td>
+ <td><p>Indicates the what preference this route should be given relative
+to other devices offering the same external route. If not present,
+<code>MEDIUM</code> preference is assumed.</p>
+<p>Based on <code>R_preference</code> from Section 5.13.3 of the Thread 1.1.1
+Specification.</p>
+</td>
+ </tr><tr id="ExternalRoute.stable">
+ <td>3</td>
+ <td><code>stable</code></td>
+ <td>
+ <code>bool</code>
+ </td>
+ <td><p>True if the route is expected to be available for at least Thread's
+<code>MIN_STABLE_LIFETIME</code>; otherwise, <code>false</code>. If not present, assumed to
+be <code>false</code>.</p>
+<p>The Thread specification defines <code>MIN_STABLE_LIFETIME</code> as 168 hours.</p>
+<p>Based on <code>R_stable</code> from Section 5.13.3 of the Thread 1.1.1
+Specification.</p>
+</td>
+ </tr></table>
+
### NetworkScanParameters {#NetworkScanParameters}
@@ -960,6 +1200,79 @@
</td>
</tr></table>
+### OnMeshPrefix {#OnMeshPrefix}
+
+
+*Defined in [fuchsia.lowpan.device/device_route.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/device_route.fidl#27)*
+
+<p>LoWPAN On-Mesh Prefix.</p>
+<p>Informed by the Thread 1.1.1 Specification, section 5.13.2.</p>
+
+
+<table>
+ <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+ <tr id="OnMeshPrefix.subnet">
+ <td>1</td>
+ <td><code>subnet</code></td>
+ <td>
+ <code><a class='link' href='../fuchsia.lowpan/'>fuchsia.lowpan</a>/<a class='link' href='../fuchsia.lowpan/#Ipv6Subnet'>Ipv6Subnet</a></code>
+ </td>
+ <td><p>Subnet to advertise for devices to use on the network. Required.</p>
+</td>
+ </tr><tr id="OnMeshPrefix.default_route_preference">
+ <td>2</td>
+ <td><code>default_route_preference</code></td>
+ <td>
+ <code><a class='link' href='#RoutePreference'>RoutePreference</a></code>
+ </td>
+ <td><p>If present, indicates that this device is offering a default route
+as well as indicating the what preference this default
+route should be given relative to other devices offering default
+routes. If not present, no default route is advertised.</p>
+<p>Based on <code>P_default</code> and <code>P_preference</code> from Section 5.13.2 of the
+Thread 1.1.1 Specification.</p>
+</td>
+ </tr><tr id="OnMeshPrefix.stable">
+ <td>3</td>
+ <td><code>stable</code></td>
+ <td>
+ <code>bool</code>
+ </td>
+ <td><p>True if the route is expected to be available for at least Thread's
+<code>MIN_STABLE_LIFETIME</code>; otherwise <code>false</code>. If not present, assumed to
+be <code>false</code>.</p>
+<p>The Thread specification defines <code>MIN_STABLE_LIFETIME</code> as 168 hours.</p>
+<p>Based on <code>P_stable</code> from Section 5.13.2 of the
+Thread 1.1.1 Specification.</p>
+</td>
+ </tr><tr id="OnMeshPrefix.slaac_preferred">
+ <td>4</td>
+ <td><code>slaac_preferred</code></td>
+ <td>
+ <code>bool</code>
+ </td>
+ <td><p>True if network devices are allowed to use previously configured
+addresses using this prefix. If not present, assumed to be <code>false</code>.</p>
+<p>"SLAAC" referrs to StateLess Address Auto Configuration, described in
+<a href="https://tools.ietf.org/html/rfc4862">RFC4862</a>.</p>
+<p>Based on <code>P_slaac_preferred</code> from Section 5.13.2 of the
+Thread 1.1.1 Specification.</p>
+</td>
+ </tr><tr id="OnMeshPrefix.slaac_valid">
+ <td>5</td>
+ <td><code>slaac_valid</code></td>
+ <td>
+ <code>bool</code>
+ </td>
+ <td><p>True if network devices are allowed to autoconfigure addresses using
+this prefix. If not present, assumed to be <code>false</code>.</p>
+<p>"SLAAC" referrs to StateLess Address Auto Configuration, described in
+<a href="https://tools.ietf.org/html/rfc4862">RFC4862</a>.</p>
+<p>Based on <code>P_slaac_valid</code> from Section 5.13.2 of the
+Thread 1.1.1 Specification.</p>
+</td>
+ </tr></table>
+
### Protocols {#Protocols}
@@ -992,6 +1305,20 @@
<code>request<<a class='link' href='../fuchsia.lowpan.test/'>fuchsia.lowpan.test</a>/<a class='link' href='../fuchsia.lowpan.test/#DeviceTest'>DeviceTest</a>></code>
</td>
<td></td>
+ </tr><tr id="Protocols.device_route">
+ <td>4</td>
+ <td><code>device_route</code></td>
+ <td>
+ <code>request<<a class='link' href='#DeviceRoute'>DeviceRoute</a>></code>
+ </td>
+ <td></td>
+ </tr><tr id="Protocols.device_route_extra">
+ <td>5</td>
+ <td><code>device_route_extra</code></td>
+ <td>
+ <code>request<<a class='link' href='#DeviceRouteExtra'>DeviceRouteExtra</a>></code>
+ </td>
+ <td></td>
</tr></table>
@@ -999,7 +1326,7 @@
## **UNIONS**
### Lookup_LookupDevice_Result {#Lookup_LookupDevice_Result}
-*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#71)*
+*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#73)*
<table>
@@ -1060,7 +1387,7 @@
</tr></table>
### Register_RegisterDevice_Result {#Register_RegisterDevice_Result}
-*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#107)*
+*Defined in [fuchsia.lowpan.device/service.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#109)*
<table>
@@ -1085,7 +1412,15 @@
## **CONSTANTS**
<table>
- <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr><tr id="MAX_LOWPAN_DEVICES">
+ <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr><tr id="MAX_EXTERNAL_ROUTES">
+ <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/device_route.fidl#10">MAX_EXTERNAL_ROUTES</a></td>
+ <td>
+ <code>32</code>
+ </td>
+ <td><code>uint32</code></td>
+ <td></td>
+ </tr>
+ <tr id="MAX_LOWPAN_DEVICES">
<td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/service.fidl#9">MAX_LOWPAN_DEVICES</a></td>
<td>
<code>8</code>
@@ -1107,6 +1442,14 @@
cause system stability issues.</p>
</td>
</tr>
+ <tr id="MAX_ON_MESH_PREFIXES">
+ <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/device_route.fidl#9">MAX_ON_MESH_PREFIXES</a></td>
+ <td>
+ <code>32</code>
+ </td>
+ <td><code>uint32</code></td>
+ <td></td>
+ </tr>
<tr id="MAX_STREAM_SET_SIZE">
<td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan.device/misc.fidl#11">MAX_STREAM_SET_SIZE</a></td>
<td>
diff --git a/sdk/fidl/fuchsia.lowpan/README.md b/sdk/fidl/fuchsia.lowpan/README.md
index 75ef066..02bb4eb 100644
--- a/sdk/fidl/fuchsia.lowpan/README.md
+++ b/sdk/fidl/fuchsia.lowpan/README.md
@@ -73,6 +73,32 @@
</tr>
</table>
+### Ipv6Subnet {#Ipv6Subnet}
+*Defined in [fuchsia.lowpan/misc.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan/misc.fidl#28)*
+
+
+
+<table>
+ <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr id="Ipv6Subnet.addr">
+ <td><code>addr</code></td>
+ <td>
+ <code><a class='link' href='../fuchsia.net/'>fuchsia.net</a>/<a class='link' href='../fuchsia.net/#Ipv6Address'>Ipv6Address</a></code>
+ </td>
+ <td><p>The IPv6 address of the subnet.</p>
+</td>
+ <td>No default</td>
+ </tr><tr id="Ipv6Subnet.prefix_len">
+ <td><code>prefix_len</code></td>
+ <td>
+ <code>uint8</code>
+ </td>
+ <td><p>The length of the IPv6 prefix for the subnet.
+Must be between 0 and 128, inclusive.</p>
+</td>
+ <td>No default</td>
+ </tr>
+</table>
+
### ProvisioningParams {#ProvisioningParams}
*Defined in [fuchsia.lowpan/provisioning_params.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.lowpan/provisioning_params.fidl#7)*