# ip6 dscp cs1
[
{
"match": {
"left": {
"payload": {
"field": "dscp",
"protocol": "ip6"
}
},
"op": "==",
"right": "cs1"
}
}
]
# ip6 dscp != cs1
[
{
"match": {
"left": {
"payload": {
"field": "dscp",
"protocol": "ip6"
}
},
"op": "!=",
"right": "cs1"
}
}
]
# ip6 dscp 0x38
[
{
"match": {
"left": {
"payload": {
"field": "dscp",
"protocol": "ip6"
}
},
"op": "==",
"right": "0x38"
}
}
]
# ip6 dscp != 0x20
[
{
"match": {
"left": {
"payload": {
"field": "dscp",
"protocol": "ip6"
}
},
"op": "!=",
"right": "0x20"
}
}
]
# ip6 dscp {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, ef}
[
{
"match": {
"left": {
"payload": {
"field": "dscp",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
"cs0",
"cs1",
"cs2",
"cs3",
"cs4",
"cs5",
"cs6",
"cs7",
"af11",
"af12",
"af13",
"af21",
"af22",
"af23",
"af31",
"af32",
"af33",
"af41",
"af42",
"af43",
"ef"
]
}
}
}
]
# ip6 dscp vmap { 0x04 : accept, 0x3f : continue } counter
[
{
"vmap": {
"key": {
"payload": {
"field": "dscp",
"protocol": "ip6"
}
},
"data": {
"set": [
[
"0x04",
{
"accept": null
}
],
[
"0x3f",
{
"continue": null
}
]
]
}
}
},
{
"counter": null
}
]
# ip6 flowlabel 22
[
{
"match": {
"left": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"op": "==",
"right": 22
}
}
]
# ip6 flowlabel != 233
[
{
"match": {
"left": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"op": "!=",
"right": 233
}
}
]
# ip6 flowlabel { 33, 55, 67, 88}
[
{
"match": {
"left": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
33,
55,
67,
88
]
}
}
}
]
# ip6 flowlabel != { 33, 55, 67, 88}
[
{
"match": {
"left": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"set": [
33,
55,
67,
88
]
}
}
}
]
# ip6 flowlabel { 33-55}
[
{
"match": {
"left": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
{ "range": [ 33, 55 ] }
]
}
}
}
]
# ip6 flowlabel != { 33-55}
[
{
"match": {
"left": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"set": [
{ "range": [ 33, 55 ] }
]
}
}
}
]
# ip6 flowlabel vmap { 0 : accept, 2 : continue }
[
{
"vmap": {
"key": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"data": {
"set": [
[
0,
{
"accept": null
}
],
[
2,
{
"continue": null
}
]
]
}
}
}
]
# ip6 length 22
[
{
"match": {
"left": {
"payload": {
"field": "length",
"protocol": "ip6"
}
},
"op": "==",
"right": 22
}
}
]
# ip6 length != 233
[
{
"match": {
"left": {
"payload": {
"field": "length",
"protocol": "ip6"
}
},
"op": "!=",
"right": 233
}
}
]
# ip6 length 33-45
[
{
"match": {
"left": {
"payload": {
"field": "length",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"range": [ 33, 45 ]
}
}
}
]
# ip6 length != 33-45
[
{
"match": {
"left": {
"payload": {
"field": "length",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"range": [ 33, 45 ]
}
}
}
]
# ip6 length { 33, 55, 67, 88}
[
{
"match": {
"left": {
"payload": {
"field": "length",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
33,
55,
67,
88
]
}
}
}
]
# ip6 length != {33, 55, 67, 88}
[
{
"match": {
"left": {
"payload": {
"field": "length",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"set": [
33,
55,
67,
88
]
}
}
}
]
# ip6 length { 33-55}
[
{
"match": {
"left": {
"payload": {
"field": "length",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
{
"range": [ 33, 55 ]
}
]
}
}
}
]
# ip6 length != { 33-55}
[
{
"match": {
"left": {
"payload": {
"field": "length",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"set": [
{ "range": [ 33, 55 ] }
]
}
}
}
]
# ip6 nexthdr {udp, ah, comp, udplite, tcp, dccp, sctp}
[
{
"match": {
"left": {
"payload": {
"field": "nexthdr",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
"udp",
"ah",
"comp",
"udplite",
"tcp",
"dccp",
"sctp"
]
}
}
}
]
# ip6 nexthdr {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6}
[
{
"match": {
"left": {
"payload": {
"field": "nexthdr",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
"esp",
"ah",
"comp",
"udp",
"udplite",
"tcp",
"dccp",
"sctp",
"icmpv6"
]
}
}
}
]
# ip6 nexthdr != {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6}
[
{
"match": {
"left": {
"payload": {
"field": "nexthdr",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"set": [
"esp",
"ah",
"comp",
"udp",
"udplite",
"tcp",
"dccp",
"sctp",
"icmpv6"
]
}
}
}
]
# ip6 nexthdr esp
[
{
"match": {
"left": {
"payload": {
"field": "nexthdr",
"protocol": "ip6"
}
},
"op": "==",
"right": "esp"
}
}
]
# ip6 nexthdr != esp
[
{
"match": {
"left": {
"payload": {
"field": "nexthdr",
"protocol": "ip6"
}
},
"op": "!=",
"right": "esp"
}
}
]
# ip6 nexthdr { 33-44}
[
{
"match": {
"left": {
"payload": {
"field": "nexthdr",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
{ "range": [ 33, 44 ] }
]
}
}
}
]
# ip6 nexthdr != { 33-44}
[
{
"match": {
"left": {
"payload": {
"field": "nexthdr",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"set": [
{ "range": [ 33, 44 ] }
]
}
}
}
]
# ip6 nexthdr 33-44
[
{
"match": {
"left": {
"payload": {
"field": "nexthdr",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"range": [ 33, 44 ]
}
}
}
]
# ip6 nexthdr != 33-44
[
{
"match": {
"left": {
"payload": {
"field": "nexthdr",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"range": [ 33, 44 ]
}
}
}
]
# ip6 hoplimit 1
[
{
"match": {
"left": {
"payload": {
"field": "hoplimit",
"protocol": "ip6"
}
},
"op": "==",
"right": 1
}
}
]
# ip6 hoplimit != 233
[
{
"match": {
"left": {
"payload": {
"field": "hoplimit",
"protocol": "ip6"
}
},
"op": "!=",
"right": 233
}
}
]
# ip6 hoplimit 33-45
[
{
"match": {
"left": {
"payload": {
"field": "hoplimit",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"range": [ 33, 45 ]
}
}
}
]
# ip6 hoplimit != 33-45
[
{
"match": {
"left": {
"payload": {
"field": "hoplimit",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"range": [ 33, 45 ]
}
}
}
]
# ip6 hoplimit {33, 55, 67, 88}
[
{
"match": {
"left": {
"payload": {
"field": "hoplimit",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
33,
55,
67,
88
]
}
}
}
]
# ip6 hoplimit != {33, 55, 67, 88}
[
{
"match": {
"left": {
"payload": {
"field": "hoplimit",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"set": [
33,
55,
67,
88
]
}
}
}
]
# ip6 hoplimit {33-55}
[
{
"match": {
"left": {
"payload": {
"field": "hoplimit",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"set": [
{ "range": [ 33, 55 ] }
]
}
}
}
]
# ip6 hoplimit != {33-55}
[
{
"match": {
"left": {
"payload": {
"field": "hoplimit",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"set": [
{ "range": [ 33, 55 ] }
]
}
}
}
]
# ip6 saddr 1234:1234:1234:1234:1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234:1234:1234:1234:1234"
}
}
]
# ip6 saddr ::1234:1234:1234:1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "::1234:1234:1234:1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234::1234:1234:1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234::1234:1234:1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234::1234:1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234::1234:1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234:0:1234:1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:0:1234:1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234::1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234::1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234:0:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234:0:1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234:1234::1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234:1234::1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234:1234:1234:0:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234:1234:1234:0:1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234:1234:1234:1234::
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234:1234:1234:1234::"
}
}
]
# ip6 saddr ::1234:1234:1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "::1234:1234:1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234::1234:1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234::1234:1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234::1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234::1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234::1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234::1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234::1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234::1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234:1234::1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234:1234::1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234:1234:1234::
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234:1234:1234::"
}
}
]
# ip6 saddr ::1234:1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "::1234:1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234::1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234::1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234::1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234::1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234::1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234::1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234::1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234::1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234:1234::
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234:1234::"
}
}
]
# ip6 saddr ::1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "::1234:1234:1234:1234"
}
}
]
# ip6 saddr 1234::1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234::1234:1234:1234"
}
}
]
# ip6 saddr 1234:1234::1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234::1234:1234"
}
}
]
# ip6 saddr 1234:1234:1234::1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234::1234"
}
}
]
# ip6 saddr 1234:1234:1234:1234::
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234:1234::"
}
}
]
# ip6 saddr ::1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "::1234:1234:1234"
}
}
]
# ip6 saddr 1234::1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234::1234:1234"
}
}
]
# ip6 saddr 1234:1234::1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234::1234"
}
}
]
# ip6 saddr 1234:1234:1234::
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234:1234::"
}
}
]
# ip6 saddr ::1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "::1234:1234"
}
}
]
# ip6 saddr 1234::1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234::1234"
}
}
]
# ip6 saddr 1234:1234::
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234:1234::"
}
}
]
# ip6 saddr ::1234
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "::1234"
}
}
]
# ip6 saddr 1234::
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "1234::"
}
}
]
# ip6 saddr ::/64
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": {
"prefix": {
"addr": "::",
"len": 64
}
}
}
}
]
# ip6 saddr ::1 ip6 daddr ::2
[
{
"match": {
"left": {
"payload": {
"field": "saddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "::1"
}
},
{
"match": {
"left": {
"payload": {
"field": "daddr",
"protocol": "ip6"
}
},
"op": "==",
"right": "::2"
}
}
]
# ip6 daddr != {::1234:1234:1234:1234:1234:1234:1234, 1234:1234::1234:1234:1234:1234:1234 }
[
{
"match": {
"left": {
"payload": {
"field": "daddr",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"set": [
"::1234:1234:1234:1234:1234:1234:1234",
"1234:1234::1234:1234:1234:1234:1234"
]
}
}
}
]
# ip6 daddr != ::1234:1234:1234:1234:1234:1234:1234-1234:1234::1234:1234:1234:1234:1234
[
{
"match": {
"left": {
"payload": {
"field": "daddr",
"protocol": "ip6"
}
},
"op": "!=",
"right": {
"range": [ "::1234:1234:1234:1234:1234:1234:1234", "1234:1234::1234:1234:1234:1234:1234" ]
}
}
}
]
# iif "lo" ip6 daddr set ::1
[
{
"match": {
"left": {
"meta": { "key": "iif" }
},
"op": "==",
"right": "lo"
}
},
{
"mangle": {
"key": {
"payload": {
"field": "daddr",
"protocol": "ip6"
}
},
"value": "::1"
}
}
]
# iif "lo" ip6 hoplimit set 1
[
{
"match": {
"left": {
"meta": { "key": "iif" }
},
"op": "==",
"right": "lo"
}
},
{
"mangle": {
"key": {
"payload": {
"field": "hoplimit",
"protocol": "ip6"
}
},
"value": 1
}
}
]
# iif "lo" ip6 dscp set af42
[
{
"match": {
"left": {
"meta": { "key": "iif" }
},
"op": "==",
"right": "lo"
}
},
{
"mangle": {
"key": {
"payload": {
"field": "dscp",
"protocol": "ip6"
}
},
"value": "af42"
}
}
]
# iif "lo" ip6 dscp set 63
[
{
"match": {
"left": {
"meta": { "key": "iif" }
},
"op": "==",
"right": "lo"
}
},
{
"mangle": {
"key": {
"payload": {
"field": "dscp",
"protocol": "ip6"
}
},
"value": 63
}
}
]
# iif "lo" ip6 ecn set ect0
[
{
"match": {
"left": {
"meta": { "key": "iif" }
},
"op": "==",
"right": "lo"
}
},
{
"mangle": {
"key": {
"payload": {
"field": "ecn",
"protocol": "ip6"
}
},
"value": "ect0"
}
}
]
# iif "lo" ip6 ecn set ce
[
{
"match": {
"left": {
"meta": { "key": "iif" }
},
"op": "==",
"right": "lo"
}
},
{
"mangle": {
"key": {
"payload": {
"field": "ecn",
"protocol": "ip6"
}
},
"value": "ce"
}
}
]
# iif "lo" ip6 flowlabel set 0
[
{
"match": {
"left": {
"meta": { "key": "iif" }
},
"op": "==",
"right": "lo"
}
},
{
"mangle": {
"key": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"value": 0
}
}
]
# iif "lo" ip6 flowlabel set 12345
[
{
"match": {
"left": {
"meta": { "key": "iif" }
},
"op": "==",
"right": "lo"
}
},
{
"mangle": {
"key": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"value": 12345
}
}
]
# iif "lo" ip6 flowlabel set 0xfffff
[
{
"match": {
"left": {
"meta": { "key": "iif" }
},
"op": "==",
"right": "lo"
}
},
{
"mangle": {
"key": {
"payload": {
"field": "flowlabel",
"protocol": "ip6"
}
},
"value": "0xfffff"
}
}
]