-
Notifications
You must be signed in to change notification settings - Fork 53
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: Missing s42 rule(s) on the shared endpoint (swT has more than one ha-flow, one of sub-flow is y-point) #5747
Comments
Another way to catch the issue is to trigger a ha-flow swap (manually switch from main to protected path)(flaky).
after swapping there is no shared path and s42 rule is excess Details:
|
seems like it is related to #5647 |
The issue occurs on the switch triplet that has some ha-flow and additional one is created.
Note, that additional flow should have different ISls than the 1st ha-flow.
The initial ha-flow has no intersection in its sub-flows paths, but after system modification (make some ISLs in maintenance mode), the following ha-flow creation causes discrepancy on the switch(shared) such as one missing rule.
"missing": [ { "cookie": -9182839640208441000, "table_id": 0, "priority": 24574, "flags": [], "match": { "ETH_SRC": { "value": 2681726922752 }, "ETH_TYPE": { "value": 2048 }, "IN_PORT": { "value": 13 }, "IP_PROTO": { "value": 17 }, "UDP_SRC": { "value": 5010 } }, "instructions": { "go_to_table": 1, "write_metadata": { "value": 537526272, "mask": 4026466304 }, "apply_actions": [ { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_SRC" }, { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_DST" } ], "write_actions": [] }, "cookie_hex": "809000000000000A" } ]
There are two missing rules when the 1st ha-flow has path when one sub-flow is y-point, and the following ha-flow sub-flows without intersection is created.
{ "as_expected": false, "rules": { "asExpected": false, "missing": [ { "cookie": -9182839635913474000, "table_id": 0, "priority": 24574, "flags": [], "match": { "ETH_DST": { "value": 7 }, "ETH_SRC": { "value": 2681726922752 }, "ETH_TYPE": { "value": 2048 }, "IN_PORT": { "value": 13 }, "IP_PROTO": { "value": 17 }, "UDP_SRC": { "value": 5010 } }, "instructions": { "go_to_table": 1, "write_metadata": { "value": 537526272, "mask": 4294901760 }, "apply_actions": [ { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_SRC" }, { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_DST" } ], "write_actions": [] }, "cookie_hex": "809000010000000A" }, { "cookie": -9182839631618507000, "table_id": 0, "priority": 24574, "flags": [], "match": { "ETH_DST": { "value": 1 }, "ETH_SRC": { "value": 2681726922752 }, "ETH_TYPE": { "value": 2048 }, "IN_PORT": { "value": 13 }, "IP_PROTO": { "value": 17 }, "UDP_SRC": { "value": 5010 } }, "instructions": { "go_to_table": 1, "write_metadata": { "value": 805961728, "mask": 4294901760 }, "apply_actions": [ { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_SRC" }, { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_DST" } ], "write_actions": [] }, "cookie_hex": "809000020000000A" } ], "misconfigured": [], "excess": [], "proper": [
STR:
Path: No intersection : different ISLs
Actual result:
Missing rule on shared endpoint of the HA-Flow:
{ "as_expected": false, "rules": { "asExpected": false, "missing": [ { "cookie": -9182839640208441000, "table_id": 0, "priority": 24574, "flags": [], "match": { "ETH_SRC": { "value": 2681726922752 }, "ETH_TYPE": { "value": 2048 }, "IN_PORT": { "value": 13 }, "IP_PROTO": { "value": 17 }, "UDP_SRC": { "value": 5010 } }, "instructions": { "go_to_table": 1, "write_metadata": { "value": 537526272, "mask": 4026466304 }, "apply_actions": [ { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_SRC" }, { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_DST" } ], "write_actions": [] }, "cookie_hex": "809000000000000A" } ], "misconfigured": [], "excess": [], "proper": [
The similar steps for another case, but we should change the system before the 1st flow creation to have one sub-flow as y-point, then rollback to default configuration and create another flow with no intersection between sub-flows.
After sync switch (2 missing rules), and deleting the 1st flow (with intersection) another discrepancy occurs such as excess rules
{ "as_expected": false, "rules": { "asExpected": false, "missing": [], "misconfigured": [], "excess": [ { "cookie": -9182839640208441000, "table_id": 0, "priority": 24574, "flags": [], "match": { "ETH_SRC": { "value": 2681726922752 }, "ETH_TYPE": { "value": 2048 }, "IN_PORT": { "value": 13 }, "IP_PROTO": { "value": 17 }, "UDP_SRC": { "value": 5010 } }, "instructions": { "go_to_table": 1, "write_metadata": { "value": 537526272, "mask": 4026466304 }, "apply_actions": [ { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_SRC" }, { "action_type": "SET_FIELD", "value": 4700, "field": "UDP_DST" } ], "write_actions": [] }, "cookie_hex": "809000000000000A" } ], "proper": [
Another rules issue is to have excess rules after ha-flow reroute from the path when both sub-flows have no intersection to new path when one of the sub-flow is y-point.
The text was updated successfully, but these errors were encountered: