ofproto-bond: do not allow recirculation when we failed to allocate recirc_id
[sliver-openvswitch.git] / ofproto / bond.c
index 6506b36..2fa65a9 100644 (file)
@@ -336,8 +336,6 @@ update_recirc_rules(struct bond *bond)
             if (slave) {
                 match_init_catchall(&match);
                 match_set_recirc_id(&match, bond->recirc_id);
-                /* recirc_id -> metadata to speed up look ups. */
-                match_set_metadata(&match, htonll(bond->recirc_id));
                 match_set_dp_hash_masked(&match, i, BOND_MASK);
 
                 add_pr_rule(bond, &match, slave->ofp_port,
@@ -890,7 +888,7 @@ bool
 bond_may_recirc(const struct bond *bond, uint32_t *recirc_id,
                 uint32_t *hash_bias)
 {
-    if (bond->balance == BM_TCP) {
+    if (bond->balance == BM_TCP && recirc_id) {
         if (recirc_id) {
             *recirc_id = bond->recirc_id;
         }