Just a gentle reminder on some feedback about the approach in the first two patches in the series :)
Thanks Numan On Thu, Jan 10, 2019 at 11:29 PM <nusid...@redhat.com> wrote: > From: Numan Siddique <nusid...@redhat.com> > > This is an RFC series to address the MTU issues for OVN reported > here [1]. > > To address this issue, a new OVS action - check_pkt_larger is added. > A new datapath action is also added - check_pkt_len. > > The datapath patch is submitted here to get feedback before submitting > to the kernel net-dev ML. > > v2 --> v3 > --------- > In v2, the check_pkt_len implementation in odp-execute.c (in p2) was > missing, > which is added in v3. > > ---------------------------------------- > > v1 of RFC included patches for datapath and OVS. This v2 series also > includes the corresponding OVN changes. > > In v1, check_pkt_len datapath action was implemented as > - check_pkt_len(pkt_len, condition, userspace action if condition > matches) > Eg. > check_pkt_len( > 1500 ? userspace(pid=<PID>,slow_path(check_pkt_len)) > If the packet length is greater than 1500 bytes, send it to userspace. > > In v2 a different approach is taken > - check_pkt_len(> pkt_len ? (set of action to apply) : (another set of > actions to apply)) > Eg. check_pkt_len(> 1500 ? (2): (3)) > If the packet length is greater than 1500, output to port 2, else > output to port 3. > > ovs-vswitchd is modified accordingly. > > The ovs action - check_pkt_larger is unchanged. It looks like > - check_pkt_larger(pkt_len)->REGISTER_BIT. > Eg. check_pkt_larger(1500)->NXM_NX_REG0[0] > If the packet is larger than 1500 bytes, REG0[0] will be set to 1. > > More details in the patches. > > If the approach seems reasonable, I will submit the datapath patch first > to net-dev ML first. > > [1] - > https://mail.openvswitch.org/pipermail/ovs-discuss/2018-July/047039.html > > Datapath patch > ------------- > Numan Siddique (1): > datapath: Add a new action check_pkt_len > > include/uapi/linux/openvswitch.h | 25 ++++- > net/openvswitch/actions.c | 55 +++++++++- > net/openvswitch/flow_netlink.c | 175 +++++++++++++++++++++++++++++++ > 3 files changed, 253 insertions(+), 2 deletions(-) > > > OVS patches > ----------- > Numan Siddique (4): > Add a new OVS action check_pkt_larger > ovn: Add a new OVN field icmp4.frag_mtu > ovn: Support OVS action 'check_pkt_larger' in OVN > ovn: Generate ICMPv4 packet in router pipeline for larger packets > > .../linux/compat/include/linux/openvswitch.h | 30 ++- > include/openvswitch/ofp-actions.h | 18 ++ > include/ovn/actions.h | 33 ++- > include/ovn/automake.mk | 3 +- > include/ovn/expr.h | 5 + > {ovn/lib => include/ovn}/logical-fields.h | 41 ++++ > lib/dpif-netdev.c | 1 + > lib/dpif.c | 1 + > lib/odp-execute.c | 4 + > lib/odp-util.c | 36 ++++ > lib/ofp-actions.c | 98 ++++++++- > lib/ofp-parse.c | 10 + > ofproto/ofproto-dpif-ipfix.c | 1 + > ofproto/ofproto-dpif-sflow.c | 1 + > ofproto/ofproto-dpif-xlate.c | 108 ++++++++++ > ofproto/ofproto-dpif.c | 47 +++++ > ofproto/ofproto-dpif.h | 5 +- > ovn/controller/lflow.c | 1 + > ovn/controller/lflow.h | 2 +- > ovn/controller/pinctrl.c | 38 +++- > ovn/lib/actions.c | 188 ++++++++++++++--- > ovn/lib/automake.mk | 1 - > ovn/lib/expr.c | 17 +- > ovn/lib/logical-fields.c | 36 +++- > ovn/northd/ovn-northd.8.xml | 83 +++++++- > ovn/northd/ovn-northd.c | 91 ++++++++- > ovn/ovn-sb.xml | 32 +++ > ovn/utilities/ovn-trace.c | 9 +- > tests/ovn.at | 193 +++++++++++++++++- > tests/test-ovn.c | 2 +- > 30 files changed, 1072 insertions(+), 63 deletions(-) > rename {ovn/lib => include/ovn}/logical-fields.h (71%) > > -- > 2.20.1 > > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev