2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 06:15:47 +00:00

nicira-ext: Increase the number of NXM registers to 8.

Requested-by: Amar Padmanabhan <amar@nicira.com>
Signed-off-by: Ethan Jackson <ethan@nicira.com>
This commit is contained in:
Ethan Jackson
2012-03-08 14:44:54 -08:00
parent bf42f674e7
commit e9358af610
11 changed files with 171 additions and 44 deletions

View File

@@ -444,7 +444,7 @@ flow_zero_wildcards(struct flow *flow, const struct flow_wildcards *wildcards)
const flow_wildcards_t wc = wildcards->wildcards;
int i;
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 8);
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 9);
for (i = 0; i < FLOW_N_REGS; i++) {
flow->regs[i] &= wildcards->reg_masks[i];
@@ -507,6 +507,8 @@ flow_zero_wildcards(struct flow *flow, const struct flow_wildcards *wildcards)
void
flow_get_metadata(const struct flow *flow, struct flow_metadata *fmd)
{
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 9);
fmd->tun_id = flow->tun_id;
fmd->tun_id_mask = htonll(UINT64_MAX);
@@ -594,7 +596,7 @@ flow_print(FILE *stream, const struct flow *flow)
void
flow_wildcards_init_catchall(struct flow_wildcards *wc)
{
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 8);
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 9);
wc->wildcards = FWW_ALL;
wc->tun_id_mask = htonll(0);
@@ -615,7 +617,7 @@ flow_wildcards_init_catchall(struct flow_wildcards *wc)
void
flow_wildcards_init_exact(struct flow_wildcards *wc)
{
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 8);
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 9);
wc->wildcards = 0;
wc->tun_id_mask = htonll(UINT64_MAX);
@@ -638,7 +640,7 @@ flow_wildcards_is_exact(const struct flow_wildcards *wc)
{
int i;
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 8);
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 9);
if (wc->wildcards
|| wc->tun_id_mask != htonll(UINT64_MAX)
@@ -669,7 +671,7 @@ flow_wildcards_is_catchall(const struct flow_wildcards *wc)
{
int i;
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 8);
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 9);
if (wc->wildcards != FWW_ALL
|| wc->tun_id_mask != htonll(0)
@@ -703,7 +705,7 @@ flow_wildcards_combine(struct flow_wildcards *dst,
{
int i;
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 8);
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 9);
dst->wildcards = src1->wildcards | src2->wildcards;
dst->tun_id_mask = src1->tun_id_mask & src2->tun_id_mask;
@@ -728,7 +730,7 @@ flow_wildcards_hash(const struct flow_wildcards *wc, uint32_t basis)
/* If you change struct flow_wildcards and thereby trigger this
* assertion, please check that the new struct flow_wildcards has no holes
* in it before you update the assertion. */
BUILD_ASSERT_DECL(sizeof *wc == 60 + FLOW_N_REGS * 4);
BUILD_ASSERT_DECL(sizeof *wc == 64 + FLOW_N_REGS * 4);
return hash_bytes(wc, sizeof *wc, basis);
}
@@ -740,7 +742,7 @@ flow_wildcards_equal(const struct flow_wildcards *a,
{
int i;
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 8);
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 9);
if (a->wildcards != b->wildcards
|| a->tun_id_mask != b->tun_id_mask
@@ -772,7 +774,7 @@ flow_wildcards_has_extra(const struct flow_wildcards *a,
int i;
struct in6_addr ipv6_masked;
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 8);
BUILD_ASSERT_DECL(FLOW_WC_SEQ == 9);
for (i = 0; i < FLOW_N_REGS; i++) {
if ((a->reg_masks[i] & b->reg_masks[i]) != b->reg_masks[i]) {