Regards _Sugesh
> -----Original Message----- > From: dev [mailto:dev-boun...@openvswitch.org] On Behalf Of Johnson Li > Sent: Tuesday, June 7, 2016 7:10 PM > To: dev@openvswitch.org > Subject: [ovs-dev] [CudaMailTagged] [RFC PATCH 03/14] Add NSH keys as > match fields for user space flow table > Importance: Low > > Add NSH keys (Metadata type I only) as part of match fields for the user > space flow table. > > Signed-off-by: Johnson Li <johnson...@intel.com> > > diff --git a/include/openvswitch/flow.h b/include/openvswitch/flow.h index > 03d406b..5f3cd39 100644 > --- a/include/openvswitch/flow.h > +++ b/include/openvswitch/flow.h > @@ -100,6 +100,9 @@ struct flow { > ovs_be16 vlan_tci; /* If 802.1Q, TCI | VLAN_CFI; otherwise 0. */ > ovs_be32 mpls_lse[ROUND_UP(FLOW_MAX_MPLS_LABELS, 2)]; /* MPLS > label stack > (with padding). > */ > + /* Network Service Header */ > + struct flow_nsh nsh; > + > /* L3 (64-bit aligned) */ > ovs_be32 nw_src; /* IPv4 source address. */ > ovs_be32 nw_dst; /* IPv4 destination address. */ > @@ -129,7 +132,7 @@ BUILD_ASSERT_DECL(sizeof(struct flow_tnl) % > sizeof(uint64_t) == 0); > > /* Remember to update FLOW_WC_SEQ when changing 'struct flow'. */ > BUILD_ASSERT_DECL(offsetof(struct flow, igmp_group_ip4) + > sizeof(uint32_t) > - == sizeof(struct flow_tnl) + 216 > + == sizeof(struct flow_tnl) + 240 > && FLOW_WC_SEQ == 35); > > /* Incremental points at which flow classification may be performed in diff > -- > git a/include/openvswitch/packets.h b/include/openvswitch/packets.h > index 5d97309..4c7ec31 100644 > --- a/include/openvswitch/packets.h > +++ b/include/openvswitch/packets.h > @@ -61,4 +61,23 @@ union flow_in_port { > ofp_port_t ofp_port; > }; > > +/* Network Service Header For flow and Metadata */ struct flow_nsh { > + uint8_t flags; > + uint8_t md_type; > + uint8_t next_proto; > + uint8_t nsi; > + ovs_be32 nsp; > + ovs_be32 nshc1; > + ovs_be32 nshc2; > + ovs_be32 nshc3; > + ovs_be32 nshc4; > +}; [Sugesh] I am not sure this is generic enough to support all the NSH header types. This will work fine to configure MD1 type NSH , how can this extend for MD2? Or next version of NSH? Is it possible to define this flow to cover all those under one NSH umberalla? > + > +/* NSH flags */ > +#define FLOW_NSH_F_OAM (1 << 0) > +#define FLOW_NSH_F_CTX (1 << 1) > + > +#define FLOW_NSH_F_MASK ((1 << 2) - 1) > + > #endif /* packets.h */ > -- > 1.8.4.2 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev