This is an implementation of the Join Proxy described in RFC8995 section 4.
It is presently stateful, supporting only HTTPS connections. Future versions will support CoAPS connections as described in
- draft-ietf-anima-constrained-voucher
- draft-ietf-anima-constrained-join-proxy
Rooster listens for GRASP M_FLOOD messages announing the location of the AN_Register. This is usually done on an ACP interface, but it may use any interface if desired.
Rooster then sends GRASP M_FLOOD message announcing itself using the AN_join_proxy M_FLOOD on some set of interfaces, usually all interfaces.
Rooster listens on the port that it has bound for connections, and when it receives them it connects them to the port given in the AN_Register message.
Rooster will try to use the sendfile(2) interface to connect the sockets together.