|
An external (to VPP) process can register (over the VPP binary API) to
receive control plane packets over a UNIX domain socket. The packets are
prepended with a packet descriptor containing meta-data (if_index of
interface, etc).
Currently only UDP is supported.
The socket supports sending of packets/frames as well.
The sent packet is prepended with a descriptor, telling VPP to
route the packet (via ip4-lookup, ip6-lookup) or as an pre-formed
Ethernet frame that is sent directly to interface-output.
The intended use case for this is for an external DHCP client or
a RIP implementation.
New configuration option:
punt { socket <socket path> }
To register use the punt_socket API message.
TODO:
- Add support for pre-routing. I.e send L3 packet to given
TX interface, but do ARP/ND (ip[46]-rewrite)
- Add test scripts
- Support for abstract names (starting with \0)
- Add rate limiting (COP)
- Support for other protocols, e.g. IPv6 ND
Change-Id: I4a0afc8020deebb3d9d74686dde694ee5bcb8d0f
Signed-off-by: Ole Troan <ot@cisco.com>
|