[
    "match: 34_MPLS_LABEL",
    {
        "description":"ethernet/mpls(label=100)/ipv4/tcp-->'mpls_label=100,actions=output:2'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                },
                                {
                                    "OXMTlv":{
                                        "field":"mpls_label",
                                        "value":100
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionOutput":{
                                            "port":2
                                        }
                                    }
                                ],
                                "type":4
                            }
                        }
                    ]
                }
            }
        ],
        "tests":[
            {
                "ingress":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "ipv4(tos=32, proto=6, src='192.168.10.10', dst='192.168.20.20', ttl=64)",
                    "tcp(dst_port=2222, option=bytes(b'\\x00' * 4), src_port=11111)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ],
                "egress":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "ipv4(tos=32, proto=6, src='192.168.10.10', dst='192.168.20.20', ttl=64)",
                    "tcp(dst_port=2222, option=bytes(b'\\x00' * 4), src_port=11111)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ]
            }
        ]
    },
    {
        "description":"ethernet/mpls(label=100)/ipv4/tcp-->'mpls_label=100,actions=output:CONTROLLER'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                },
                                {
                                    "OXMTlv":{
                                        "field":"mpls_label",
                                        "value":100
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionOutput":{
                                            "max_len":65535,
                                            "port":4294967293
                                        }
                                    }
                                ],
                                "type":4
                            }
                        }
                    ]
                }
            }
        ],
        "tests":[
            {
                "ingress":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "ipv4(tos=32, proto=6, src='192.168.10.10', dst='192.168.20.20', ttl=64)",
                    "tcp(dst_port=2222, option=bytes(b'\\x00' * 4), src_port=11111)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ],
                "PACKET_IN":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "ipv4(tos=32, proto=6, src='192.168.10.10', dst='192.168.20.20', ttl=64)",
                    "tcp(dst_port=2222, option=bytes(b'\\x00' * 4), src_port=11111)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ]
            }
        ]
    },
    {
        "description":"ethernet/mpls(label=203)/ipv4/tcp-->'mpls_label=100,actions=output:2'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                },
                                {
                                    "OXMTlv":{
                                        "field":"mpls_label",
                                        "value":100
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionOutput":{
                                            "port":2
                                        }
                                    }
                                ],
                                "type":4
                            }
                        }
                    ]
                }
            }
        ],
        "tests":[
            {
                "ingress":[
                    "ethernet(dst='ba:bb:bb:bb:bb:bb', src='aa:aa:aa:aa:aa:aa', ethertype=34887)",
                    "mpls(bsb=1, label=203, exp=5, ttl=127)",
                    "ipv4(tos=65, proto=6, src='10.10.10.10', dst='10.10.20.20', ttl=127)",
                    "tcp(dst_port=6789, option=bytes(b'\\x01' * 4), src_port=12345)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ],
                "table-miss":[
                    0
                ]
            }
        ]
    },
    {
        "description":"ethernet/mpls(label=100)/ipv6/tcp-->'mpls_label=100,actions=output:2'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                },
                                {
                                    "OXMTlv":{
                                        "field":"mpls_label",
                                        "value":100
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionOutput":{
                                            "port":2
                                        }
                                    }
                                ],
                                "type":4
                            }
                        }
                    ]
                }
            }
        ],
        "tests":[
            {
                "ingress":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
                    "tcp(dst_port=2222, option=bytes(b'\\x00' * 4), src_port=11111)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ],
                "egress":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
                    "tcp(dst_port=2222, option=bytes(b'\\x00' * 4), src_port=11111)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ]
            }
        ]
    },
    {
        "description":"ethernet/mpls(label=100)/ipv6/tcp-->'mpls_label=100,actions=output:CONTROLLER'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                },
                                {
                                    "OXMTlv":{
                                        "field":"mpls_label",
                                        "value":100
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionOutput":{
                                            "max_len":65535,
                                            "port":4294967293
                                        }
                                    }
                                ],
                                "type":4
                            }
                        }
                    ]
                }
            }
        ],
        "tests":[
            {
                "ingress":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
                    "tcp(dst_port=2222, option=bytes(b'\\x00' * 4), src_port=11111)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ],
                "PACKET_IN":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
                    "tcp(dst_port=2222, option=bytes(b'\\x00' * 4), src_port=11111)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ]
            }
        ]
    },
    {
        "description":"ethernet/mpls(label=203)/ipv6/tcp-->'mpls_label=100,actions=output:2'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                },
                                {
                                    "OXMTlv":{
                                        "field":"mpls_label",
                                        "value":100
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionOutput":{
                                            "port":2
                                        }
                                    }
                                ],
                                "type":4
                            }
                        }
                    ]
                }
            }
        ],
        "tests":[
            {
                "ingress":[
                    "ethernet(dst='ba:bb:bb:bb:bb:bb', src='aa:aa:aa:aa:aa:aa', ethertype=34887)",
                    "mpls(bsb=1, label=203, exp=5, ttl=127)",
                    "ipv6(dst='b0::b0', flow_label=203, src='a0::a0', nxt=6, hop_limit=127, traffic_class=65)",
                    "tcp(dst_port=6789, option=bytes(b'\\x01' * 4), src_port=12345)",
                    "b'\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f'"
                ],
                "table-miss":[
                    0
                ]
            }
        ]
    },
    {
        "description":"ethernet/mpls(label=100)/arp-->'mpls_label=100,actions=output:2'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                },
                                {
                                    "OXMTlv":{
                                        "field":"mpls_label",
                                        "value":100
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionOutput":{
                                            "port":2
                                        }
                                    }
                                ],
                                "type":4
                            }
                        }
                    ]
                }
            }
        ],
        "tests":[
            {
                "ingress":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "arp(dst_ip='192.168.20.20',dst_mac='22:22:22:22:22:22', opcode=1, src_ip='192.168.10.10',src_mac='12:11:11:11:11:11')",
                    "bytes(b'\\x00' * 30)"
                ],
                "egress":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "arp(dst_ip='192.168.20.20',dst_mac='22:22:22:22:22:22', opcode=1, src_ip='192.168.10.10',src_mac='12:11:11:11:11:11')",
                    "bytes(b'\\x00' * 30)"
                ]
            }
        ]
    },
    {
        "description":"ethernet/mpls(label=100)/arp-->'mpls_label=100,actions=output:CONTROLLER'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                },
                                {
                                    "OXMTlv":{
                                        "field":"mpls_label",
                                        "value":100
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionOutput":{
                                            "max_len":65535,
                                            "port":4294967293
                                        }
                                    }
                                ],
                                "type":4
                            }
                        }
                    ]
                }
            }
        ],
        "tests":[
            {
                "ingress":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "arp(dst_ip='192.168.20.20',dst_mac='22:22:22:22:22:22', opcode=1, src_ip='192.168.10.10',src_mac='12:11:11:11:11:11')",
                    "bytes(b'\\x00' * 30)"
                ],
                "PACKET_IN":[
                    "ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34887)",
                    "mpls(bsb=1, label=100, exp=3, ttl=64)",
                    "arp(dst_ip='192.168.20.20',dst_mac='22:22:22:22:22:22', opcode=1, src_ip='192.168.10.10',src_mac='12:11:11:11:11:11')",
                    "bytes(b'\\x00' * 30)"
                ]
            }
        ]
    },
    {
        "description":"ethernet/mpls(label=203)/arp-->'mpls_label=100,actions=output:2'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                },
                                {
                                    "OXMTlv":{
                                        "field":"mpls_label",
                                        "value":100
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionOutput":{
                                            "port":2
                                        }
                                    }
                                ],
                                "type":4
                            }
                        }
                    ]
                }
            }
        ],
        "tests":[
            {
                "ingress":[
                    "ethernet(dst='ba:bb:bb:bb:bb:bb', src='aa:aa:aa:aa:aa:aa', ethertype=34887)",
                    "mpls(bsb=1, label=203, exp=5, ttl=127)",
                    "arp(dst_ip='10.10.20.20',dst_mac='ba:bb:bb:bb:bb:bb', opcode=2, src_ip='10.10.10.10',src_mac='aa:aa:aa:aa:aa:aa')",
                    "bytes(b'\\x00' * 30)"
                ],
                "table-miss":[
                    0
                ]
            }
        ]
    }
]
