[
    "action: 15_SET_MPLS_TTL",
    {
        "description": "ethernet/mpls(ttl=64)/ipv4/tcp-->'eth_type=0x8847,actions=set_mpls_ttl:127,output:2'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionSetMplsTtl":{
                                            "mpls_ttl":127
                                        }
                                    },
                                    {
                                        "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=127)",
                    "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(ttl=64)/ipv6/tcp-->'eth_type=0x8847,actions=set_mpls_ttl:127,output:2'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionSetMplsTtl":{
                                            "mpls_ttl":127
                                        }
                                    },
                                    {
                                        "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=127)",
                    "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(ttl=64)/arp-->'eth_type=0x8847,actions=set_mpls_ttl:127,output:2'",
        "prerequisite":[
            {
                "OFPFlowMod":{
                    "table_id":0,
                    "match":{
                        "OFPMatch":{
                            "oxm_fields":[
                                {
                                    "OXMTlv":{
                                        "field":"eth_type",
                                        "value":34887
                                    }
                                }
                            ]
                        }
                    },
                    "instructions":[
                        {
                            "OFPInstructionActions":{
                                "actions":[
                                    {
                                        "OFPActionSetMplsTtl":{
                                            "mpls_ttl":127
                                        }
                                    },
                                    {
                                        "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=127)",
                    "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)"
                ]
            }
        ]
    }
]
