{ "id":"/axapi/v3/flowspec/{name}", "type":"object", "node-type":"list", "title":"flowspec", "partition-visibility":"shared", "description":"Configure Flowspec", "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"Flowspec name", "optional":false }, "src-addr-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'ip': IPv4 Address; 'ipv6': IPv6 Address; ", "enum":[ "ip", "ipv6" ], "optional":true }, "src-ip-host":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "not":"src-ip-subnet", "description":"IPv4 host address", "optional":true }, "src-ip-subnet":{ "type":"string", "format":"ipv4-cidr", "partition-visibility":"shared", "not":"src-ip-host", "description":"IPv4 Subnet address", "optional":true }, "src-ipv6-host":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "not":"src-ipv6-subnet", "description":"IPv6 host address", "optional":true }, "src-ipv6-subnet":{ "type":"string", "format":"ipv6-address-plen", "partition-visibility":"shared", "not":"src-ipv6-host", "description":"IPv6 Subnet address", "optional":true }, "dest-addr-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'ip': IPv4 Address; 'ipv6': IPv6 Address; ", "enum":[ "ip", "ipv6" ], "optional":true }, "dest-ip-host":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "not":"dest-ip-subnet", "description":"IPv4 host address", "optional":true }, "dest-ip-subnet":{ "type":"string", "format":"ipv4-cidr", "partition-visibility":"shared", "not":"dest-ip-host", "description":"IPv4 Subnet address", "optional":true }, "dest-ipv6-host":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "not":"dest-ipv6-subnet", "description":"IPv6 host address", "optional":true }, "dest-ipv6-subnet":{ "type":"string", "format":"ipv6-address-plen", "partition-visibility":"shared", "not":"dest-ipv6-host", "description":"IPv6 Subnet address", "optional":true }, "tcp-flags":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'match-all': not = 0 match = 1; 'none-of': not = 1 match = 0; 'not-match': not = 1 match = 1; 'match-any': not = 0 match = 0; ", "enum":[ "match-all", "none-of", "not-match", "match-any" ], "optional":true }, "tcp-flags-bitmask":{ "type":"string", "format":"time", "minLength":1, "maxLength":65535, "partition-visibility":"shared", "description":"Bitmask in Hex", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true }, "user-tag":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Customized tag", "optional":true }, "source-port-list":{ "type":"array", "minItems":1, "items":{ "type":"source-port" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/source-port/{port-attribute}+{port-num}", "array":[ { "properties":{ "port-attribute":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'eq': Match only packets on a given source port; 'gt': Match only packets with a greater port number; 'lt': Match only packets with a lower port number; 'range': match only packets in the range of port numbers; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "port-num":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Specify the port number", "optional":false }, "port-num-end":{ "type":"number", "format":"number", "minimum":2, "maximum":65535, "partition-visibility":"shared", "description":"Specify the port number", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "port-attribute", "port-num" ] } ] }, "destination-port-list":{ "type":"array", "minItems":1, "items":{ "type":"destination-port" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/destination-port/{port-attribute}+{port-num}", "array":[ { "properties":{ "port-attribute":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'eq': Match only packets on a given destination port; 'gt': Match only packets with a greater port number; 'lt': Match only packets with a lower port number; 'range': match only packets in the range of port numbers; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "port-num":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Specify the port number", "optional":false }, "port-num-end":{ "type":"number", "format":"number", "minimum":2, "maximum":65535, "partition-visibility":"shared", "description":"Specify the port number", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "port-attribute", "port-num" ] } ] }, "port-list":{ "type":"array", "minItems":1, "items":{ "type":"port" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/port/{port-attribute}+{port-num}", "array":[ { "properties":{ "port-attribute":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'eq': Match only packets on a given port; 'gt': Match only packets with a greater port number; 'lt': Match only packets with a lower port number; 'range': match only packets in the range of port numbers; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "port-num":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Specify the port number", "optional":false }, "port-num-end":{ "type":"number", "format":"number", "minimum":2, "maximum":65535, "partition-visibility":"shared", "description":"Specify the port number", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "port-attribute", "port-num" ] } ] }, "protocol-list":{ "type":"array", "minItems":1, "items":{ "type":"protocol" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/protocol/{proto-attribute}+{proto-num}", "array":[ { "properties":{ "proto-attribute":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'eq': Match only packets on a given protocol; 'gt': Match only packets with a greater protocol number; 'lt': Match only packets with a lower protocol number; 'range': match only packets in the range of protocol numbers; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "proto-num":{ "type":"number", "format":"number", "minimum":0, "maximum":255, "partition-visibility":"shared", "description":"Specify the protocol number(6 for TCP and 17 for UDP)", "optional":false }, "proto-num-end":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "partition-visibility":"shared", "description":"Specify the protocol number", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "proto-attribute", "proto-num" ] } ] }, "fragmentation-option-list":{ "type":"array", "minItems":1, "items":{ "type":"fragmentation-option" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/fragmentation-option/{frag-attribute}", "array":[ { "properties":{ "frag-attribute":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'is-fragment': Is fragmented packet; 'first-fragment': Is the first fragment packet; 'last-fragment': Is the last fragment; 'dont-fragment': Is DF bit set; ", "enum":[ "is-fragment", "first-fragment", "last-fragment", "dont-fragment" ], "optional":false }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "frag-attribute" ] } ] }, "icmp-type-list":{ "type":"array", "minItems":1, "items":{ "type":"icmp-type" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/icmp-type/{icmp-type-attribute}+{type}", "array":[ { "properties":{ "icmp-type-attribute":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'eq': Match only packets on a given ICMP Type; 'gt': Match only packets with a greater ICMP Type; 'lt': Match only packets with a lower ICMP Type; 'range': match only packets in the range of ICMP Types; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "type":{ "type":"number", "format":"number", "minimum":0, "maximum":255, "partition-visibility":"shared", "description":"Specify the ICMP Type", "optional":false }, "type-end":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "partition-visibility":"shared", "description":"Specify the ICMP Type", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "icmp-type-attribute", "type" ] } ] }, "icmp-code-list":{ "type":"array", "minItems":1, "items":{ "type":"icmp-code" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/icmp-code/{icmp-code-attribute}+{code}", "array":[ { "properties":{ "icmp-code-attribute":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'eq': Match only packets on a given ICMP Code; 'gt': Match only packets with a greater ICMP Code; 'lt': Match only packets with a lower ICMP Code; 'range': match only packets in the range of ICMP Codes; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "code":{ "type":"number", "format":"number", "minimum":0, "maximum":255, "partition-visibility":"shared", "description":"Specify the ICMP Code", "optional":false }, "code-end":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "partition-visibility":"shared", "description":"Specify the ICMP Code", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "icmp-code-attribute", "code" ] } ] }, "packet-length-list":{ "type":"array", "minItems":1, "items":{ "type":"packet-length" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/packet-length/{packet-length-attribute}+{length}", "array":[ { "properties":{ "packet-length-attribute":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'eq': Match only packets on a given Packet Length; 'gt': Match only packets with a greater Packet Length; 'lt': Match only packets with a lower Packet Length; 'range': match only packets in the range of Packet Lengths; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "length":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Specify the Packet Length", "optional":false }, "length-end":{ "type":"number", "format":"number", "minimum":2, "maximum":65535, "partition-visibility":"shared", "description":"Specify the Packet Length", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "packet-length-attribute", "length" ] } ] }, "dscp-list":{ "type":"array", "minItems":1, "items":{ "type":"dscp" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/dscp/{dscp-attribute}+{dscp-val}", "array":[ { "properties":{ "dscp-attribute":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'eq': Match only packets on a given DSCP; 'gt': Match only packets with a greater DSCP; 'lt': Match only packets with a lower DSCP; 'range': match only packets in the range of DSCPs; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "dscp-val":{ "type":"number", "format":"number", "minimum":1, "maximum":63, "partition-visibility":"shared", "description":"Specify the DSCP value", "optional":false }, "dscp-val-end":{ "type":"number", "format":"number", "minimum":2, "maximum":63, "partition-visibility":"shared", "description":"Specify the DSCP value", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "dscp-attribute", "dscp-val" ] } ] }, "filtering-action":{ "type":"object", "$ref":"/axapi/v3/flowspec/{name}/filtering-action", "properties":{ "terminal-action":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Evaluation stops after this rule if not set" }, "sample-log":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable traffic sampling and logging" }, "traffic-rate":{ "type":"number", "format":"number", "minimum":0, "maximum":4294967295, "partition-visibility":"shared", "description":"Type 0x8006 - Apply rate (in Bytes per second) for this class of traffic" }, "traffic-marking":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'dscp': IPv4 DSCP; 'ipv6-traffic-class': IPv6 Traffic Class; ", "enum":[ "dscp", "ipv6-traffic-class" ] }, "dscp-val":{ "type":"number", "format":"number", "minimum":1, "maximum":63, "partition-visibility":"shared", "description":"Set DSCP value" }, "traffic-class":{ "type":"number", "format":"number", "minimum":1, "maximum":128, "partition-visibility":"shared", "description":"Set IPv6 Traffic Class value" }, "redirect":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'next-hop-nlri': Type 0x0800 - IP encoded in MP_REACH_NLRI Next-hop network; 'next-hop': Type 0x0800 - Extended community Next-hop (Per v2 dated Feb 2015); 'vrf-route-target': Type 0x8008 - Redirect to VRF Route Target; ", "enum":[ "next-hop-nlri", "next-hop", "vrf-route-target" ] }, "next-hop-nlri-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'ip': Type 0x0800 - IPv4 Address; 'ipv6': Type 0x0800 - IPv6 Address; ", "enum":[ "ip", "ipv6" ] }, "ip-host-nlri":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IPv4 host address" }, "copy-ip-host-nlri":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Copy bit" }, "ipv6-host-nlri":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPv6 host address" }, "copy-ipv6-host-nlri":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Copy bit" }, "next-hop-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'ip': Type 0x0800 - IPv4 Address; 'ipv6': Type 0x0800 - IPv6 Address; ", "enum":[ "ip", "ipv6" ] }, "ip-host":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IPv4 host address" }, "copy-ip-host":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Copy bit" }, "ipv6-host":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPv6 host address" }, "copy-ipv6-host":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Copy bit" }, "vrf-target-string":{ "type":"string", "format":"string", "minLength":1, "maxLength":31, "partition-visibility":"shared", "not":"vrf-target-ip", "description":"Type 0x8008(ASN-2:Index), 0x8208(ASN-4:Index) - Route Target AS" }, "vrf-target-ip":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not":"vrf-target-string", "description":"'ip': Type 0x8108 - Redirect to route-target IP; ", "enum":[ "ip" ] }, "ip-host-rt":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"Type 0x8108 - Route Target IPv4" }, "value-ip-host":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"2-byte decimal value(local-administrator)" }, "ecomm-custom-hex":{ "type":"string", "format":"string", "minLength":2, "maxLength":48, "partition-visibility":"shared", "description":"Custom Extended Community in Hex" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "operational-mode":{ "type":"object", "$ref":"/axapi/v3/flowspec/{name}/operational-mode", "properties":{ "mode":{ "type":"string", "format":"enum", "default":"disabled", "partition-visibility":"shared", "description":"'enabled': Enable the flowspec and send the prefix to BGP; 'disabled': Disable the flowspec and remove the prefix from BGP; ", "enum":[ "enabled", "disabled" ] }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } }, "object-keys":[ "name" ], "required":[ "name" ] }