kytos-ng / telemetry_int

Kytos Telemetry Napp
MIT License
0 stars 2 forks source link

bug: intra-EVC symmetric vlans data plane isn't working (wrong source flow entry) #48

Closed viniarck closed 9 months ago

viniarck commented 10 months ago

In summary, for an intra-EVC, the sink flow outgoing port was sending to a wrong outgoing port (wrong loop) just after when adding the add_int_metadata action, here's an example of wrong flows:

                        +--------+
                        |        |
                        |        |
                        |        |
                        |        |
                     17 |      18|
               +--------+--------v--+
               |                    | 19
         15    |                    +-----------+
 --------------+                    |           |
               |                    |           |
               |      sw1           |           |
        16     |                    |20         |
---------------+                    <-----------+
               |                    |
               |                    |
               +--------------------+
{
    "00:00:00:00:00:00:00:01": [
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 15,
                    "dl_type": 2048,
                    "dl_vlan": 100,
                    "nw_proto": 6
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "push_int"
                            }
                        ]
                    },
                    {
                        "instruction_type": "goto_table",
                        "table_id": 2
                    }
                ],
                "table_id": 0,
                "table_group": "evpl",
                "priority": 20100,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "08041dc747a6be0cf9715ef88c8361e1",
            "id": "64c2b5344431cfdedcfb486fda596f44",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        },
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 15,
                    "dl_type": 2048,
                    "dl_vlan": 100,
                    "nw_proto": 17
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "push_int"
                            }
                        ]
                    },
                    {
                        "instruction_type": "goto_table",
                        "table_id": 2
                    }
                ],
                "table_id": 0,
                "table_group": "evpl",
                "priority": 20100,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "743fbde26dd4ef9ec9cec32aa23cec2c",
            "id": "b269e2f9f95d1b99886deebc37cfca1c",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        },
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 16,
                    "dl_type": 2048,
                    "dl_vlan": 100,
                    "nw_proto": 6
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "push_int"
                            }
                        ]
                    },
                    {
                        "instruction_type": "goto_table",
                        "table_id": 2
                    }
                ],
                "table_id": 0,
                "table_group": "evpl",
                "priority": 20100,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "193b2a8220358f86e2fff7b65ccb3f7b",
            "id": "0cdc335c641c263c160175031ca87acd",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        },
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 16,
                    "dl_type": 2048,
                    "dl_vlan": 100,
                    "nw_proto": 17
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "push_int"
                            }
                        ]
                    },
                    {
                        "instruction_type": "goto_table",
                        "table_id": 2
                    }
                ],
                "table_id": 0,
                "table_group": "evpl",
                "priority": 20100,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "34b82e4e21e30adb2fd46834f4059be4",
            "id": "7993057657b264604e278846215f9e32",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        },
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 15,
                    "dl_vlan": 100
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "add_int_metadata"
                            },
                            {
                                "action_type": "set_vlan",
                                "vlan_id": 100
                            },
                            {
                                "action_type": "output",
                                "port": 17
                            }
                        ]
                    }
                ],
                "table_id": 2,
                "table_group": "base",
                "priority": 20000,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "9ea85cfbbaac7d8010d5dcd9a3a38f53",
            "id": "09d14534e3cff8587a2da11cf54499ae",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        },
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 16,
                    "dl_vlan": 100
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "add_int_metadata"
                            },
                            {
                                "action_type": "set_vlan",
                                "vlan_id": 100
                            },
                            {
                                "action_type": "output",
                                "port": 19
                            }
                        ]
                    }
                ],
                "table_id": 2,
                "table_group": "base",
                "priority": 20000,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "ddec8ed8734632e54885f4454e12d548",
            "id": "3358aef720c67ce4cd9d1564a47d0002",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        },
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 20,
                    "dl_vlan": 100
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "send_report"
                            }
                        ]
                    },
                    {
                        "instruction_type": "goto_table",
                        "table_id": 2
                    }
                ],
                "table_id": 0,
                "table_group": "evpl",
                "priority": 20000,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "93985952efc41654052ff732ca1f71df",
            "id": "a1acb2c6566a577b2c6a635af7180faf",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        },
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 20,
                    "dl_vlan": 100
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "pop_int"
                            },
                            {
                                "action_type": "set_vlan",
                                "vlan_id": 100
                            },
                            {
                                "action_type": "output",
                                "port": 16
                            }
                        ]
                    }
                ],
                "table_id": 2,
                "table_group": "base",
                "priority": 20000,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "6f243583ac9376d272fab325fcef8ba0",
            "id": "f7f3ad2579a2ebdba31ce3cfb83bce37",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        },
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 18,
                    "dl_vlan": 100
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "send_report"
                            }
                        ]
                    },
                    {
                        "instruction_type": "goto_table",
                        "table_id": 2
                    }
                ],
                "table_id": 0,
                "table_group": "evpl",
                "priority": 20000,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "db07ece43777f3d46c318ecafa60bd1c",
            "id": "54b23e6339316e64b02f316cd0721976",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        },
        {
            "flow": {
                "owner": "telemetry_int",
                "cookie": 12159261365966814285,
                "match": {
                    "in_port": 18,
                    "dl_vlan": 100
                },
                "instructions": [
                    {
                        "instruction_type": "apply_actions",
                        "actions": [
                            {
                                "action_type": "pop_int"
                            },
                            {
                                "action_type": "set_vlan",
                                "vlan_id": 100
                            },
                            {
                                "action_type": "output",
                                "port": 15
                            }
                        ]
                    }
                ],
                "table_id": 2,
                "table_group": "base",
                "priority": 20000,
                "idle_timeout": 0,
                "hard_timeout": 0
            },
            "flow_id": "6f265b7d0e4850f071bf3d71bc5fb3eb",
            "id": "382a5e9b10b85ca1e3731ef1fdf5ded6",
            "inserted_at": "2023-08-25T19:17:19.965000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-25T19:17:20.372000"
        }
    ]
}