This serial patches try to support Stateless Address Autoconfiguration(SLAAC) for IPv6, via Router Advertisement (RA) message responder.
User case: After this serial patches, a user can follow the following steps to let all VMs/VIFs on a logical switch has IPv6 prefix/CIDR, configure their IPv6 addresses automatically: - set Logical_Switch.mtu column, - add lsp and lrp for Logical_Switch to make it attached onto a router, the lsp and lrp should have IPv6 prefix/CIDR in their addresses and networks columns, - set Logical_Router_Port.slaac column to true. Then, next time VM/VIF sends Router Solicitation (RS) message, a RA packet will be replied by ovn-controller. When VM/VIF receives that RA packet, it can configure its IPv6 address(es) and route(s) via that RA packet. There will be logical flows in table ls_in_ra_rsp(28) to work as RA responder, with: - match: ip6.dst == ff02::2 && nd_rs (nd_rs: icmp6.type == 133 && icmp6.code == 0 && ttl == 255) - action: ra{slaac(fdad:a0f9:a012::/64,...,1450,fa:16:3e:32:3c:e0); outport = inport; flags.loopback = 1; output;}; (ra is a new action which stands for RA responder; slaac is a new action which has the following parameters to tell ovn-controller to compose RA packet with SLAAC flags, with these parameters: - IPv6 prefix(es): such as fdad:a0f9:a012::/64. - MTU: logical switch MTU, such as 1450. - LLA: router port link-layer address, such as fa:16:3e:32:3c:e0. After a RA packet is composed, the left nested actions will make RA packet transmitted back to the inport, where Router Solicitation (RS) packet comes. For more details, will be described in each following patches. Zong Kai LI (1): ovn: add SLAAC support for IPv6 lib/packets.c | 168 +++++++++++++++++++++++++++++++++++++++++++++++++--------- lib/packets.h | 86 +++++++++++++++++++++++++----- 2 files changed, 216 insertions(+), 38 deletions(-) -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev