X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fopenvswitch.h;h=d7f85ffa8e64fae529866ca080bb1399dc87886a;hb=f053752fc64abedd834fbbc40fcab60b7c0a7e8f;hp=b3977d1a5e412e9d86f6bf2a4df1745946e998ce;hpb=beb1c69a3a661dbc0232aeb9831c14788f84eb24;p=sliver-openvswitch.git diff --git a/include/linux/openvswitch.h b/include/linux/openvswitch.h index b3977d1a5..d7f85ffa8 100644 --- a/include/linux/openvswitch.h +++ b/include/linux/openvswitch.h @@ -109,6 +109,7 @@ enum ovs_datapath_attr { #define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1) +/* All 64-bit integers within Netlink messages are 4-byte aligned only. */ struct ovs_dp_stats { __u64 n_hit; /* Number of flow table matches. */ __u64 n_missed; /* Number of flow table misses. */ @@ -170,7 +171,9 @@ enum ovs_packet_cmd { * @OVS_PACKET_ATTR_KEY: Present for all notifications. Contains the flow key * extracted from the packet as nested %OVS_KEY_ATTR_* attributes. This allows * userspace to adapt its flow setup strategy by comparing its notion of the - * flow key against the kernel's. + * flow key against the kernel's. When used with %OVS_PACKET_CMD_EXECUTE, only + * metadata key fields (e.g. priority, skb mark) are honored. All the packet + * header fields are parsed from the packet instead. * @OVS_PACKET_ATTR_ACTIONS: Contains actions for the packet. Used * for %OVS_PACKET_CMD_EXECUTE. It has nested %OVS_ACTION_ATTR_* attributes. * @OVS_PACKET_ATTR_USERDATA: Present for an %OVS_PACKET_CMD_ACTION @@ -312,7 +315,8 @@ enum ovs_key_attr { OVS_KEY_ATTR_TUNNEL, /* Nested set of ovs_tunnel attributes */ OVS_KEY_ATTR_SCTP, /* struct ovs_key_sctp */ OVS_KEY_ATTR_TCP_FLAGS, /* be16 TCP flags. */ - OVS_KEY_ATTR_DP_HASH, /* u32 hash value */ + OVS_KEY_ATTR_DP_HASH, /* u32 hash value. Value 0 indicates the hash + is not computed by the datapath. */ OVS_KEY_ATTR_RECIRC_ID, /* u32 recirc id */ #ifdef __KERNEL__ /* Only used within kernel data path. */ @@ -542,26 +546,22 @@ struct ovs_action_push_vlan { /* Data path hash algorithm for computing Datapath hash. * - * The Algorithm type only specifies the fields in a flow + * The algorithm type only specifies the fields in a flow * will be used as part of the hash. Each datapath is free * to use its own hash algorithm. The hash value will be * opaque to the user space daemon. */ -enum ovs_recirc_hash_alg { - OVS_RECIRC_HASH_ALG_NONE, - OVS_RECIRC_HASH_ALG_L4, +enum ovs_hash_alg { + OVS_HASH_ALG_L4, }; /* - * struct ovs_action_recirc - %OVS_ACTION_ATTR_RECIRC action argument. - * @recirc_id: The Recirculation label, Zero is invalid. + * struct ovs_action_hash - %OVS_ACTION_ATTR_HASH action argument. * @hash_alg: Algorithm used to compute hash prior to recirculation. - * @hash_bias: bias used for computing hash. used to compute hash prior to - * recirculation. + * @hash_basis: basis used for computing hash. */ -struct ovs_action_recirc { - uint32_t hash_alg; /* One of ovs_dp_hash_alg. */ - uint32_t hash_bias; - uint32_t recirc_id; /* Recirculation label. */ +struct ovs_action_hash { + uint32_t hash_alg; /* One of ovs_hash_alg. */ + uint32_t hash_basis; }; /** @@ -604,7 +604,8 @@ enum ovs_action_attr { OVS_ACTION_ATTR_SAMPLE, /* Nested OVS_SAMPLE_ATTR_*. */ OVS_ACTION_ATTR_PUSH_MPLS, /* struct ovs_action_push_mpls. */ OVS_ACTION_ATTR_POP_MPLS, /* __be16 ethertype. */ - OVS_ACTION_ATTR_RECIRC, /* struct ovs_action_recirc. */ + OVS_ACTION_ATTR_RECIRC, /* u32 recirc_id. */ + OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */ __OVS_ACTION_ATTR_MAX };