Hey Mark!

> This leads me to a slightly deeper question -- how does RIOT decide what
> physical interface to attempt to communicate over when I use network send
> calls such as conn_udp_sendto?

Selecting the proper interface for sending, is task of the network layer and
is implemented according to the procedures explained in the according RFCs
[1][2] in GNRC. This means that a node will first check if the destination
prefix is "on-link" (if applicable) and use the according interface. If not,
it will look up the destination in the FIB (Forwarding Information Base) if
available (e.g., if a routing protocol is available or someone else filled the
FIB manually) for the next hop's IP address. You can check the content of the
FIB using the `fibroute` shell command. Finally, the neighbor cache (check
with `ncache` shell command) is checked or a neighbor solicitation may be
performed.

Hence, if your IPv6 prefixes are configured correctly (e.g. as described in
the gnrc_border_router example's README), the appropriate interface should be
chosen.

> As an associated question -- is it the intention of the gnrc_border_router
> example to automatically bridge interfaces (such as ethernet & 802.15.4)?
> As far as I can tell it really only initializes interfaces but does not
> provide any actual routing between them.

The border router is (as the name suggests ;-)) a router, not a bridge.
Forwarding packets via the correct interface is done according to the rules
stated above.

HTH,
Oleg

[1] https://tools.ietf.org/html/rfc4861#section-5.2
[2] https://tools.ietf.org/html/rfc6775#section-5.6
-- 
I'd make a joke about UDP, but I don't know if anyone's actually listening...

Attachment: signature.asc
Description: PGP signature

_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel

Reply via email to