sw test tool: Enable IPv6 flow label maskable

OF 1.3.4 spec (B.15.1 Changes) says:

    Make IPv6 flow label maskable (EXT-101).

This patch makes IPv6 flow label maskable, and adds a test file for IPv6 flow label with masks.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
Yuichi Ito
2014-06-18 13:04:45 +09:00
committed by FUJITA Tomonori
parent a2fc54bd79
commit cc6dcbabaa
2 changed files with 928 additions and 0 deletions

View File

@@ -0,0 +1,927 @@
[
"match: 28_IPV6_FLABEL (Mask)",
{
"description":"ethernet/ipv6(flow_label=100)/tcp-->'ipv6_flabel=96(mask=0x000ffff0),actions=output:2'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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/ipv6(flow_label=100)/tcp-->'ipv6_flabel=96(mask=0x000ffff0),actions=output:CONTROLLER'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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/ipv6(flow_label=203)/tcp-->'ipv6_flabel=96(mask=0x000ffff0),actions=output:2'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=34525)",
"ipv6(dst='b0::b0', flow_label=203, src='a0::a0', nxt=6, hop_limit=127, traffic_class=65)",
"tcp(dst_port=6789, option=str('\\x11' * 4), src_port=12345)",
"'\\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/vlan/ipv6(flow_label=100)/tcp-->'ipv6_flabel=96(mask=0x000ffff0),actions=output:2'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=33024)",
"vlan(pcp=3, cfi=0, vid=100, ethertype=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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=33024)",
"vlan(pcp=3, cfi=0, vid=100, ethertype=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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/vlan/ipv6(flow_label=100)/tcp-->'ipv6_flabel=96(mask=0x000ffff0),actions=output:CONTROLLER'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=33024)",
"vlan(pcp=3, cfi=0, vid=100, ethertype=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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=33024)",
"vlan(pcp=3, cfi=0, vid=100, ethertype=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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/vlan/ipv6(flow_label=203)/tcp-->'ipv6_flabel=96(mask=0x000ffff0),actions=output:2'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=33024)",
"vlan(pcp=5, cfi=0, vid=203, ethertype=34525)",
"ipv6(dst='b0::b0', flow_label=203, src='a0::a0', nxt=6, hop_limit=127, traffic_class=65)",
"tcp(dst_port=6789, option=str('\\x11' * 4), src_port=12345)",
"'\\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/ipv6(flow_label=100)/tcp-->'actions=pop_mpls:0x86dd,goto_table:1','table_id:1,ipv6_flabel=96(mask=0x000ffff0),actions=output:2'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34887
}
}
]
}
},
"instructions":[
{
"OFPInstructionActions":{
"actions":[
{
"OFPActionPopMpls":{
"ethertype":34525
}
}
],
"type":4
}
},
{
"OFPInstructionGotoTable":{
"table_id":1
}
}
]
}
},
{
"OFPFlowMod":{
"table_id":1,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=str('\\x00' * 4), src_port=11111)",
"'\\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=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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/ipv6(flow_label=100)/tcp-->'actions=pop_mpls:0x86dd,goto_table:1','table_id:1,ipv6_flabel=96(mask=0x000ffff0),actions=output:CONTROLLER'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34887
}
}
]
}
},
"instructions":[
{
"OFPInstructionActions":{
"actions":[
{
"OFPActionPopMpls":{
"ethertype":34525
}
}
],
"type":4
}
},
{
"OFPInstructionGotoTable":{
"table_id":1
}
}
]
}
},
{
"OFPFlowMod":{
"table_id":1,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=str('\\x00' * 4), src_port=11111)",
"'\\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=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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/ipv6(flow_label=203)/tcp-->'actions=pop_mpls:0x86dd,goto_table:1','table_id:1,ipv6_flabel=96(mask=0x000ffff0),actions=output:2'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34887
}
}
]
}
},
"instructions":[
{
"OFPInstructionActions":{
"actions":[
{
"OFPActionPopMpls":{
"ethertype":34525
}
}
],
"type":4
}
},
{
"OFPInstructionGotoTable":{
"table_id":1
}
}
]
}
},
{
"OFPFlowMod":{
"table_id":1,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=str('\\x11' * 4), src_port=12345)",
"'\\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":[
1
]
}
]
},
{
"description":"ethernet/itag/ethernet/ipv6(flow_label=100)/tcp-->'actions=pop_pbb,goto_table:1','table_id:1,ipv6_flabel=96(mask=0x000ffff0),actions=output:2'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":35047
}
}
]
}
},
"instructions":[
{
"OFPInstructionActions":{
"actions":[
{
"OFPActionPopPbb":{}
}
],
"type":4
}
},
{
"OFPInstructionGotoTable":{
"table_id":1
}
}
]
}
},
{
"OFPFlowMod":{
"table_id":1,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=35047)",
"itag(sid=100)",
"ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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/itag/ethernet/ipv6(flow_label=100)/tcp-->'actions=pop_pbb,goto_table:1','table_id:1,ipv6_flabel=96(mask=0x000ffff0),actions=output:CONTROLLER'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":35047
}
}
]
}
},
"instructions":[
{
"OFPInstructionActions":{
"actions":[
{
"OFPActionPopPbb":{}
}
],
"type":4
}
},
{
"OFPInstructionGotoTable":{
"table_id":1
}
}
]
}
},
{
"OFPFlowMod":{
"table_id":1,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=35047)",
"itag(sid=100)",
"ethernet(dst='22:22:22:22:22:22', src='12:11:11:11:11:11', ethertype=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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=34525)",
"ipv6(dst='20::20', flow_label=100, src='10::10', nxt=6, hop_limit=64, traffic_class=32)",
"tcp(dst_port=2222, option=str('\\x00' * 4), src_port=11111)",
"'\\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/itag/ethernet/ipv6(flow_label=203)/tcp-->'actions=pop_pbb,goto_table:1','table_id:1,ipv6_flabel=96(mask=0x000ffff0),actions=output:2'",
"prerequisite":[
{
"OFPFlowMod":{
"table_id":0,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":35047
}
}
]
}
},
"instructions":[
{
"OFPInstructionActions":{
"actions":[
{
"OFPActionPopPbb":{}
}
],
"type":4
}
},
{
"OFPInstructionGotoTable":{
"table_id":1
}
}
]
}
},
{
"OFPFlowMod":{
"table_id":1,
"match":{
"OFPMatch":{
"oxm_fields":[
{
"OXMTlv":{
"field":"eth_type",
"value":34525
}
},
{
"OXMTlv":{
"field":"ipv6_flabel",
"mask":1048560,
"value":96
}
}
]
}
},
"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=35047)",
"itag(sid=203)",
"ethernet(dst='ba:bb:bb:bb:bb:bb', src='aa:aa:aa:aa:aa:aa', ethertype=34525)",
"ipv6(dst='b0::b0', flow_label=203, src='a0::a0', nxt=6, hop_limit=127, traffic_class=65)",
"tcp(dst_port=6789, option=str('\\x11' * 4), src_port=12345)",
"'\\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":[
1
]
}
]
}
]

View File

@@ -798,6 +798,7 @@ class OfTester(app_manager.RyuApp):
def __reasm_match(match):
""" reassemble match_fields. """
mask_lengths = {'vlan_vid': 12 + 1,
'ipv6_flabel': 20,
'ipv6_exthdr': 9}
match_fields = list()
for key, united_value in match.iteritems():