Upstream commit: commit c411ed854584a71b0e86ac3019b60e4789d88086 Author: Jiri Benc <jb...@redhat.com> Date: Mon Aug 28 21:43:24 2017 +0200
nsh: add GSO support Add a new nsh/ directory. It currently holds only GSO functions but more will come: in particular, code shared by openvswitch and tc to manipulate NSH headers. For now, assume there's no hardware support for NSH segmentation. We can always introduce netdev->nsh_features later. Signed-off-by: Jiri Benc <jb...@redhat.com> Signed-off-by: David S. Miller <da...@davemloft.net> Signed-off-by: Yi Yang <yi.y.y...@intel.com> --- datapath/Modules.mk | 4 +++- datapath/datapath.c | 4 ++++ datapath/linux/compat/include/net/nsh.h | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/datapath/Modules.mk b/datapath/Modules.mk index 21f04a0..3643da4 100644 --- a/datapath/Modules.mk +++ b/datapath/Modules.mk @@ -26,13 +26,15 @@ openvswitch_sources = \ flow_table.c \ vport.c \ vport-internal_dev.c \ - vport-netdev.c + vport-netdev.c \ + nsh.c vport_geneve_sources = vport-geneve.c vport_vxlan_sources = vport-vxlan.c vport_gre_sources = vport-gre.c vport_lisp_sources = vport-lisp.c vport_stt_sources = vport-stt.c +nsh_sources = nsh.c openvswitch_headers = \ compat.h \ diff --git a/datapath/datapath.c b/datapath/datapath.c index 1780819..4272227 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -51,6 +51,7 @@ #include <net/genetlink.h> #include <net/net_namespace.h> #include <net/netns/generic.h> +#include <net/nsh.h> #include "datapath.h" #include "conntrack.h" @@ -2408,6 +2409,7 @@ static int __init dp_init(void) pr_info("Open vSwitch switching datapath %s\n", VERSION); + ovs_nsh_init(); err = action_fifos_init(); if (err) goto error; @@ -2463,6 +2465,7 @@ error_unreg_rtnl_link: error_action_fifos_exit: action_fifos_exit(); error: + ovs_nsh_cleanup(); return err; } @@ -2478,6 +2481,7 @@ static void dp_cleanup(void) ovs_flow_exit(); ovs_internal_dev_rtnl_link_unregister(); action_fifos_exit(); + ovs_nsh_cleanup(); } module_init(dp_init); diff --git a/datapath/linux/compat/include/net/nsh.h b/datapath/linux/compat/include/net/nsh.h index a1eaea2..c9c30e0 100644 --- a/datapath/linux/compat/include/net/nsh.h +++ b/datapath/linux/compat/include/net/nsh.h @@ -304,4 +304,7 @@ static inline void nsh_set_flags_ttl_len(struct nshhdr *nsh, u8 flags, NSH_FLAGS_MASK | NSH_TTL_MASK | NSH_LEN_MASK); } +int ovs_nsh_init(void); +void ovs_nsh_cleanup(void); + #endif /* __NET_NSH_H */ -- 2.1.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev