Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ha-Flow: Reroute: Excess rules on involved NS switch #5647

Open
yuliiamir opened this issue Apr 24, 2024 · 1 comment
Open

Ha-Flow: Reroute: Excess rules on involved NS switch #5647

yuliiamir opened this issue Apr 24, 2024 · 1 comment

Comments

@yuliiamir
Copy link
Collaborator

The issue occurred during HA-Flow reroute action on hardware env(NS switch), passed on virtual lab.
HaFlowRerouteSpec: TC Valid HA-flow can be rerouted.

After HA-Flow rerouting validate all involved switches:
The discrepancy occurred on the shared NS switch:

"excess": [
  {
    "cookie": -9182839631618507000,
    "table_id": 0,
    "priority": 24574,
    "flags": [],
    "match": {
      "ETH_DST": {
        "value": 147058197639
      },
      "ETH_SRC": {
        "value": 273718772620241
      },
      "ETH_TYPE": {
        "value": 2048
      },
      "IN_PORT": {
        "value": 7
      },
      "IP_PROTO": {
        "value": 17
      },
      "UDP_SRC": {
        "value": 5021
      }
    },
    "instructions": {
      "go_to_table": 1,
      "write_metadata": {
        "value": 806682624,
        "mask": 4294901760
      },
      "apply_actions": [
        {
          "action_type": "SET_FIELD",
          "value": 4700,
          "field": "UDP_SRC"
        },
        {
          "action_type": "SET_FIELD",
          "value": 4700,
          "field": "UDP_DST"
        },
        {
          "action_type": "NOVI_COPY_FIELD",
          "number_of_bits": 64,
          "src_offset": 0,
          "dst_offset": 0,
          "src_header": "NOVIFLOW_TX_TIMESTAMP",
          "dst_header": "NOVIFLOW_UDP_PAYLOAD_OFFSET"
        }
      ],
      "write_actions": []
    },
    "cookie_hex": "8090000200000015"
  },
  {
    "cookie": -9182839635913474000,
    "table_id": 0,
    "priority": 24574,
    "flags": [],
    "match": {
      "ETH_DST": {
        "value": 147059376312
      },
      "ETH_SRC": {
        "value": 273718772620241
      },
      "ETH_TYPE": {
        "value": 2048
      },
      "IN_PORT": {
        "value": 7
      },
      "IP_PROTO": {
        "value": 17
      },
      "UDP_SRC": {
        "value": 5021
      }
    },
    "instructions": {
      "go_to_table": 1,
      "write_metadata": {
        "value": 538247168,
        "mask": 4294901760
      },
      "apply_actions": [
        {
          "action_type": "SET_FIELD",
          "value": 4700,
          "field": "UDP_SRC"
        },
        {
          "action_type": "SET_FIELD",
          "value": 4700,
          "field": "UDP_DST"
        },
        {
          "action_type": "NOVI_COPY_FIELD",
          "number_of_bits": 64,
          "src_offset": 0,
          "dst_offset": 0,
          "src_header": "NOVIFLOW_TX_TIMESTAMP",
          "dst_header": "NOVIFLOW_UDP_PAYLOAD_OFFSET"
        }
      ],
      "write_actions": []
    },
    "cookie_hex": "8090000100000015"
  }
],

haFlowHistoryReroute.json

@yuliiamir
Copy link
Collaborator Author

After additional investigation, it was noticed that these excess rules are s42-related. If we use the WB switch instead of the NS switch as a shared endpoint, there is no discrepancy after the ha-flow reroute.
initial ha-flow path(switch Triplet: [NS sw1] - NS sw2 - NS sw3): sub-flow1: NS sw1 -> NS sw2; sub-flow2: NS sw1 -> sw3
HaFlowRulesBeforeReroute

ha-flow path after reroute: sub-flow1: NS sw1 -> NS sw3 -> NS sw2; sub-flow2: NS sw1 -> sw3 = shared ep is sw3
Excess rules details:
RuleDetails9182839635913474027
RuleDetails9182839631618506731

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants