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

Reply via email to