X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fdatapath.h;h=3a38235f9cc947d0ba5b2e6e50088bf5e1c1ce82;hb=10a24935c9d382e4d85b05d9616843f3d3bb4983;hp=fd81dfbad0866427401e345e1ff39ffbe4d6dece;hpb=38c6ecbc8d3664daed077617bb3b3508ba8aa767;p=sliver-openvswitch.git diff --git a/datapath/datapath.h b/datapath/datapath.h index fd81dfbad..3a38235f9 100644 --- a/datapath/datapath.h +++ b/datapath/datapath.h @@ -31,7 +31,6 @@ struct dp_port; #define VLAN_PCP_SHIFT 13 #define DP_MAX_PORTS 1024 -#define DP_MAX_GROUPS 16 #define DP_N_QUEUES 3 #define DP_MAX_QUEUE_LEN 100 @@ -57,12 +56,6 @@ struct dp_stats_percpu { seqcount_t seqlock; }; -struct dp_port_group { - struct rcu_head rcu; - int n_ports; - u16 ports[]; -}; - /** * struct datapath - datapath for flow-based packet switching * @mutex: Mutual exclusion for ioctls. @@ -73,7 +66,6 @@ struct dp_port_group { * @waitqueue: Waitqueue, for waiting for new packets in @queues. * @n_flows: Number of flows currently in flow table. * @table: Current flow table (RCU protected). - * @groups: Port groups, used by ODPAT_OUTPUT_GROUP action (RCU protected). * @n_ports: Number of ports currently in @ports. * @ports: Map from port number to &struct dp_port. %ODPP_LOCAL port * always exists, other ports may be %NULL. @@ -97,9 +89,6 @@ struct datapath { /* Flow table. */ struct tbl *table; - /* Port groups. */ - struct dp_port_group *groups[DP_MAX_GROUPS]; - /* Switch ports. */ unsigned int n_ports; struct dp_port *ports[DP_MAX_PORTS]; @@ -146,6 +135,7 @@ enum csum_type { /** * struct ovs_skb_cb - OVS data in skb CB * @dp_port: The datapath port on which the skb entered the switch. + * @flow: The flow associated with this packet. May be %NULL if no flow. * @ip_summed: Consistently stores L4 checksumming status across different * kernel versions. * @tun_id: ID (in network byte order) of the tunnel that encapsulated this @@ -153,6 +143,7 @@ enum csum_type { */ struct ovs_skb_cb { struct dp_port *dp_port; + struct sw_flow *flow; enum csum_type ip_summed; __be32 tun_id; };