Anybody knows how vpp classify table chaining works?


Marek Gradzki -X (mgradzki - PANTHEON TECHNOLOGIES@Cisco) <mgradzki@...>
 

Hi,

 

It is more question to vpp guys (YANG model is almost 1-1 with binary api). Last time I checked behavior was following:

Packet goes to node defined as miss_next if none of table’s session match and next table is not defined.

 

So, assuming you assign table0 (not table1!) to some interface,

packet will go to next_table (table1) if there is no match in session defined for table0.

Packet will never go to miss_next of table0, because table1 is defined as next in chain.

Packet can go to miss_next of table1 if there is no match for sessions defined for table0 and table1.

 

Regards,

Marek

 

From: vpp-dev-bounces@... [mailto:vpp-dev-bounces@...] On Behalf Of Yang, Yi Y
Sent: 15 lutego 2017 09:17
To: vpp-dev@...
Cc: hc2vpp@...
Subject: [vpp-dev] Anybody knows how vpp classify table chaining works?

 

Hi, folks

 

I need to match two flows, ICMP and TCP, by vpp classify tables and sessions, here are my classify tables and classify sessions, I want to know in what case the packet will go to next table and in what case the packet will go to miss_next in table 0 and table 1, respectively? Thank you in advance.

 

{

    "vpp-classifier-state": {

        "classify-table": [

            {

                "name": "table1",

                "classifier-node": "l2-input-classify",

                "mask": "00:00:00:00:00:00:00:00:00:00:00:00:ff:ff:00:00:00:00:00:00:00:00:00:ff:00:00:ff:ff:ff:ff:ff:ff:ff:ff:00:00:ff:ff:00:00:00:00:00:00:00:00:00:00",

                "active_sessions": 1,

                "miss_next": "deny",

                "nbuckets": 2,

                "classify-session": [

                    {

                        "match": "00:00:00:00:00:00:00:00:00:00:00:00:08:00:00:00:00:00:00:00:00:00:00:06:00:00:c0:a8:02:00:c0:a8:02:00:00:00:00:50:00:00:00:00:00:00:00:00:00:00",

                        "hit_next": "nsh-classifier",

                        "opaque_index": “47168”,

                        "advance": 0

                    }

                ],

                "skip_n_vectors": 0

            },

            {

                "name": "table0",

                "next_table": "table1",

                "classifier-node": "l2-input-classify",

                "mask": "00:00:00:00:00:00:00:00:00:00:00:00:ff:ff:00:00:00:00:00:00:00:00:00:ff:00:00:ff:ff:ff:ff:ff:ff:ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00",

                "active_sessions": 1,

                "miss_next": "deny",

                "nbuckets": 2,

                "classify-session": [

                    {

                        "match": "00:00:00:00:00:00:00:00:00:00:00:00:08:00:00:00:00:00:00:00:00:00:00:01:00:00:c0:a8:02:00:c0:a8:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00",

                        "hit_next": "nsh-classifier",

                        "opaque_index": “47168”,

                        "advance": 0

                    }

                ],

                "skip_n_vectors": 0

            }

        ]

    }

}