Justin, you reviewed v2 of this series, do you intend to review v3?
On Fri, Oct 14, 2016 at 03:57:14AM +0000, Zongkai LI wrote:
> This serial patches try to support Router Solicitation (RS) message responder,
> which will reply Router Advertisement (RA) message, for OVN.
>
> There will be logical flows in table ls_in_rs_rsp to work as RS responder,
> with:
> - match: ip6.dst == ff02::2 && nd_rs
> (nd_rs: icmp6.type == 133 && icmp6.code == 0 && ttl == 255)
> - action: nd_ra{put_nd_ra(64,0,10800,0,0);
> put_nd_ra_opt_sll(12:34:56:78:9a:bc);
> put_nd_ra_opt_mtu(1450);
> put_nd_ra_opt_prefix(64,192,10800,10800,fdad:a0f9:a012::);
> eth.src = 12:34:56:78:9a:bc;
> ip6.src = fe80::f334:56ff:fe78:9abc;
> outport = inport; flags.loopback = 1; output;};
> (nd_ra is a new action which stands for RS responder;
> put_nd_ra is a new specific inner action for nd_ra to set cur_hop_limit,
> "Managed address configuration" and "Other configuration" flags, router
> lifetime, reachable time and retrans timer in RA packet;
> put_nd_ra_opt_sll is a new specific inner action for nd_ra to append
> Source
> Link-layer Address Option for RA message with given ethernet address,
> such as 12:34:56:78:9a:bc;
> put_nd_ra_opt_mtu is a new specific inner action for nd_ra to append MTU
> Option for RA message with given integer value, such as 1450;
> put_nd_ra_opt_prefix is a new specific inner action for nd_ra to append
> Prefix Information Option for RA message with inner parameters. The
> inner
> parameters will set prefix length, on-link flag and autonomous
> address-configuration flag, valid lifetime, preferred lifetime, prefix
> in Prefix Information Option.
> 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.
>
> To configure RA packet fields, such as "Managed address configuration" flag,
> router_litefime, user can set Logical_Router_Port.ipv6_ra_config to do that,
> e.g.
> ovn-nbctl add Logical_Router_Port lrp0 ipv6_ra_config managed_address="0" \
> other_config="0"
>
> To configure Prefix Infromation Option fields, such as valid_lifetime, user
> can insert records into new table Logical_Router_RA_Prefix_Config, and let
> Logical_Router_Port.ipv6_ra_prefix_configs to refer them, e.g.
> ovn-nbctl -- --id=@d1 create Logical_Router_RA_Prefix_Config \
> prefix=\"fdad:1234:5678::/64\" options="\"valid_lifetime\"="21600" \
> \"preferred_lifetime\"="21600" \"autonomous_address\"="0"" \
> -- add Logical_Router_Port lrp0 ipv6_ra_prefix_configs @d1
>
> Most fields in a RA packet, such as "Managed address configuration" and "Other
> configuration" flags, router_lifetime, valid lifetime will have default
> values.
> But for mtu value in MTU Option, there is no valid default value. User should
> configure this value for each lrouter port.
>
> v1 -> v2:
> rebase on upstream
> separete ovs_nd_opt rename into a single patch
> separete lflow changing for RS packet forward in ovn-northd into a single
> patch
> update is_nd to include RS and RA type, add is_nd_neighbor to inherit previous
> is_nd behavior.
>
>
> v2 -> v3:
> rebase on upstream
> address comments from Justin, including:
> revert changing on is_nd and is_nd_neighbor brought in version 2
> update annotations in lib/packets.h for ovs_ra_msg, ovs_nd_prefix_opt,
> ovs_nd_lla_opt, ovs_nd_mtu_opt.
> combine methods compse_nd_ra, packet_put_ra_sll_opt, packet_put_ra_mtu_opt
> in
> version 2 into method compse_nd_ra_with_sll_mtu_opts.
> update pinctrl_handle_nd to fit new changes on
> compse_nd_ra_with_sll_mtu_opts.
>
>
> Zongkai LI (7):
> packets: add compose_nd_ra
> lib: rename ovs_nd_opt to ovs_nd_lla_opt
> ovn: extend expr symbols for ND
> ovn-controller: add 'nd_ra' action
> ovn-controller: add 'put_nd_ra' and 'put_nd_opt_*' actions support
> ovn-northd: add Router Advertisement packet forward flow
> ovn-northd: add IPv6 RS responder support
>
> include/ovn/actions.h | 86 +++++++++++++-
> lib/flow.c | 30 ++---
> lib/odp-execute.c | 22 ++--
> lib/packets.c | 146 ++++++++++++++++++-----
> lib/packets.h | 76 ++++++++++--
> ovn/controller/pinctrl.c | 235 +++++++++++++++++++++++++++++++++----
> ovn/lib/actions.c | 290
> +++++++++++++++++++++++++++++++++++++++++++++-
> ovn/lib/logical-fields.c | 18 ++-
> ovn/northd/ovn-northd.c | 166 +++++++++++++++++++++++++-
> ovn/ovn-nb.ovsschema | 21 +++-
> ovn/ovn-nb.xml | 103 ++++++++++++++++
> ovn/ovn-sb.xml | 84 +++++++++++++-
> ovn/utilities/ovn-nbctl.c | 5 +
> ovn/utilities/ovn-trace.c | 23 ++--
> tests/ovn.at | 157 ++++++++++++++++++++++++-
> 15 files changed, 1354 insertions(+), 108 deletions(-)
>
> --
> 2.7.4
>
> _______________________________________________
> dev mailing list
> [email protected]
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev