Blob Blame History Raw
# ip6 dscp 0x38
[
    {
        "match": {
            "left": {
                "payload": {
                    "field": "dscp",
                    "protocol": "ip6"
                }
            },
	    "op": "==",
            "right": "cs7"
        }
    }
]

# ip6 dscp != 0x20
[
    {
        "match": {
            "left": {
                "payload": {
                    "field": "dscp",
                    "protocol": "ip6"
                }
            },
            "op": "!=",
            "right": "cs4"
        }
    }
]

# 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",
                    "af11",
                    "af12",
                    "af13",
                    "cs2",
                    "af21",
                    "af22",
                    "af23",
                    "cs3",
                    "af31",
                    "af32",
                    "af33",
                    "cs4",
                    "af41",
                    "af42",
                    "af43",
                    "cs5",
                    "ef",
                    "cs6",
                    "cs7"
                ]
            }
        }
    }
]

# ip6 dscp vmap { 0x04 : accept, 0x3f : continue } counter
[
    {
        "vmap": {
            "key": {
                "payload": {
                    "field": "dscp",
                    "protocol": "ip6"
                }
            },
            "data": {
                "set": [
                    [
                        4,
                        {
                            "accept": null
                        }
                    ],
                    [
                        63,
                        {
                            "continue": null
                        }
                    ]
                ]
            }
        }
    },
    {
        "counter": null
    }
]

# ip6 nexthdr {udp, ah, comp, udplite, tcp, dccp, sctp}
[
    {
        "match": {
            "left": {
                "payload": {
                    "field": "nexthdr",
                    "protocol": "ip6"
                }
            },
	    "op": "==",
            "right": {
                "set": [
                    6,
                    17,
                    33,
                    51,
                    108,
                    132,
                    136
                ]
            }
        }
    }
]

# ip6 nexthdr {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6}
[
    {
        "match": {
            "left": {
                "payload": {
                    "field": "nexthdr",
                    "protocol": "ip6"
                }
            },
	    "op": "==",
            "right": {
                "set": [ 6, 17, 33, 50, 51, 58, 108, 132, 136 ]
            }
        }
    }
]

# ip6 nexthdr != {esp, ah, comp, udp, udplite, tcp, dccp, sctp, icmpv6}
[
    {
        "match": {
            "left": {
                "payload": {
                    "field": "nexthdr",
                    "protocol": "ip6"
                }
            },
            "op": "!=",
            "right": {
                "set": [ 6, 17, 33, 50, 51, 58, 108, 132, 136 ]
            }
        }
    }
]

# ip6 nexthdr esp
[
    {
        "match": {
            "left": {
                "payload": {
                    "field": "nexthdr",
                    "protocol": "ip6"
                }
            },
	    "op": "==",
            "right": 50
        }
    }
]

# ip6 nexthdr != esp
[
    {
        "match": {
            "left": {
                "payload": {
                    "field": "nexthdr",
                    "protocol": "ip6"
                }
            },
            "op": "!=",
            "right": 50
        }
    }
]

# ip6 saddr ::1234:1234:1234:1234:1234:1234:1234
[
    {
        "match": {
            "left": {
                "payload": {
                    "field": "saddr",
                    "protocol": "ip6"
                }
            },
	    "op": "==",
            "right": "0: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:0: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: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:0: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:0: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:0"
        }
    }
]

# ip6 saddr ::1234:1234
[
    {
        "match": {
            "left": {
                "payload": {
                    "field": "saddr",
                    "protocol": "ip6"
                }
            },
	    "op": "==",
            "right": "::18.52.18.52"
        }
    }
]

# 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": [
                    "0:1234:1234:1234:1234:1234:1234:1234",
                    "1234:1234:0: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": [ "0:1234:1234:1234:1234:1234:1234:1234", "1234:1234:0:1234:1234:1234:1234:1234" ]
            }
        }
    }
]

# iif "lo" ip6 flowlabel set 0xfffff
[
    {
        "match": {
            "left": {
                "meta": { "key": "iif" }
            },
	    "op": "==",
            "right": "lo"
        }
    },
    {
        "mangle": {
            "key": {
                "payload": {
                    "field": "flowlabel",
                    "protocol": "ip6"
                }
            },
            "value": 1048575
        }
    }
]