{ "id":"/axapi/v3/ddos/dst/entry/{dst-entry-name}/l4-type/{protocol}", "type":"object", "node-type":"list", "title":"l4-type", "partition-visibility":"shared", "description":"DDOS L4 type", "properties":{ "protocol":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'tcp': L4-Type TCP; 'udp': L4-Type UDP; 'icmp': L4-Type ICMP; 'other': L4-Type OTHER; ", "enum":[ "tcp", "udp", "icmp", "other" ], "optional":false }, "glid":{ "type":"string", "format":"string-rlx", "plat-neg-list":["softax-ddet"], "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/glid", "description":"Global limit ID", "optional":true }, "glid-exceed-action":{ "type":"object", "properties":{ "stateless-encap-action-cfg":{ "type":"object", "properties":{ "stateless-encap-action":{ "type":"string", "format":"enum", "plat-neg-list":["softax-ddet"], "partition-visibility":"shared", "description":"'stateless-tunnel-encap': Encapsulate all packets; 'stateless-tunnel-encap-scrubbed': Encapsulate all packets and allow packets to go through other DDoS checks before sent (conn-limit exceeded packet can not be scrubbed, it will default to stateless-tunnel-encap); ", "enum":[ "stateless-tunnel-encap", "stateless-tunnel-encap-scrubbed" ] }, "encap-template":{ "type":"string", "format":"string-rlx", "plat-neg-list":["softax-ddet"], "minLength":1, "maxLength":128, "partition-visibility":"shared", "$ref":"/axapi/v3/ddos/template/encap", "description":"Apply legacy encap template for encap action" } } } } }, "deny":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Blacklist and Drop all incoming packets for protocol", "optional":true }, "max-rexmit-syn-per-flow":{ "type":"number", "format":"number", "plat-neg-list":["softax-ddet"], "minimum":1, "maximum":6, "partition-visibility":"shared", "description":"Maximum number of re-transmit SYN per flow", "optional":true }, "max-rexmit-syn-per-flow-exceed-action":{ "type":"string", "format":"enum", "plat-neg-list":["softax-ddet"], "partition-visibility":"shared", "description":"'drop': Drop the packet; 'black-list': Add the source IP into black list; ", "enum":[ "drop", "black-list" ], "optional":true }, "disable-syn-auth":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Disable TCP SYN Authentication", "optional":true }, "syn-auth":{ "type":"string", "format":"enum", "plat-neg-list":["softax-ddet"], "default":"send-rst", "partition-visibility":"shared", "description":"'send-rst': Send RST to client upon client ACK; 'force-rst-by-ack': Force client RST via the use of ACK; 'force-rst-by-synack': Force client RST via the use of bad SYN|ACK; 'disable': Disable TCP SYN Authentication; ", "enum":[ "send-rst", "force-rst-by-ack", "force-rst-by-synack", "disable" ], "optional":true }, "syn-cookie":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Enable SYN Cookie", "optional":true }, "tcp-reset-client":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Send reset to client when rate exceeds or session ages out", "optional":true }, "tcp-reset-server":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Send reset to server when rate exceeds or session ages out", "optional":true }, "drop-on-no-port-match":{ "type":"string", "format":"enum", "plat-neg-list":["softax-ddet"], "default":"enable", "partition-visibility":"shared", "description":"'disable': disable; 'enable': enable; ", "enum":[ "disable", "enable" ], "optional":true }, "stateful":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Enable stateful tracking of sessions (Default is stateless)", "optional":true }, "tunnel-decap":{ "type":"object", "properties":{ "ip-decap":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Enable IP Tunnel decapsulation" }, "gre-decap":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Enable GRE Tunnel decapsulation" }, "key-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "key":{ "type":"string", "format":"string", "plat-neg-list":["softax-ddet"], "minLength":1, "maxLength":10, "partition-visibility":"shared", "description":"Only decapsulate GRE packet with this key (Hexadecimal 0x0-0xFFFFFFFF,decimal 0-4294967295)" } } } ] } } }, "tunnel-rate-limit":{ "type":"object", "properties":{ "ip-rate-limit":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Enable inner IP rate limiting on IPinIP traffic" }, "gre-rate-limit":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Enable inner IP rate limiting on GRE traffic" } } }, "drop-frag-pkt":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Drop fragmented packets", "optional":true }, "undefined-port-hit-statistics":{ "type":"object", "properties":{ "undefined-port-hit-statistics":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Enable port scanning statistics" }, "reset-interval":{ "type":"number", "format":"number", "plat-neg-list":["softax-ddet"], "minimum":1, "maximum":64000, "default":60, "partition-visibility":"shared", "description":"Configure port scanning counter reset interval (minutes), Default 60 mins" } } }, "template":{ "type":"object", "properties":{ "template-icmp-v4":{ "type":"string", "format":"string-rlx", "plat-neg-list":["softax-ddet"], "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"DDOS icmp-v4 template" }, "template-icmp-v6":{ "type":"string", "format":"string-rlx", "plat-neg-list":["softax-ddet"], "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"DDOS icmp-v6 template" } } }, "detection-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable ddos detection", "optional":true }, "enable-top-k":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable ddos top-k entries", "optional":true }, "topk-num-records":{ "type":"number", "format":"number", "minimum":1, "maximum":100, "default":20, "partition-visibility":"shared", "description":"Maximum number of records to show in topk", "optional":true }, "set-counter-base-val":{ "type":"number", "format":"number", "plat-neg-list":["softax-ddet"], "minimum":1, "maximum":4294967295, "partition-visibility":"shared", "description":"Set T2 counter value of current context to specified value", "optional":true }, "ip-filtering-policy":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/ddos/ip-filtering-policy", "description":"Configure IP Filter", "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 }, "ip-filtering-policy-oper":{ "type":"object", "$ref":"/axapi/v3/ddos/dst/entry/{dst-entry-name}/l4-type/{protocol}/ip-filtering-policy-oper", "properties":{ "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "port-ind":{ "type":"object", "$ref":"/axapi/v3/ddos/dst/entry/{dst-entry-name}/l4-type/{protocol}/port-ind", "properties":{ "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" }, "sampling-enable":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "counters1":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'all': all; 'ip-proto-type': IP Protocol Type; 'ddet_ind_pkt_rate_current': Pkt Rate Current; 'ddet_ind_pkt_rate_min': Pkt Rate Min; 'ddet_ind_pkt_rate_max': Pkt Rate Max; 'ddet_ind_pkt_drop_rate_current': Pkt Drop Rate Current; 'ddet_ind_pkt_drop_rate_min': Pkt Drop Rate Min; 'ddet_ind_pkt_drop_rate_max': Pkt Drop Rate Max; 'ddet_ind_syn_rate_current': TCP SYN Rate Current; 'ddet_ind_syn_rate_min': TCP SYN Rate Min; 'ddet_ind_syn_rate_max': TCP SYN Rate Max; 'ddet_ind_fin_rate_current': TCP FIN Rate Current; 'ddet_ind_fin_rate_min': TCP FIN Rate Min; 'ddet_ind_fin_rate_max': TCP FIN Rate Max; 'ddet_ind_rst_rate_current': TCP RST Rate Current; 'ddet_ind_rst_rate_min': TCP RST Rate Min; 'ddet_ind_rst_rate_max': TCP RST Rate Max; 'ddet_ind_small_window_ack_rate_current': TCP Small Window ACK Rate Current; 'ddet_ind_small_window_ack_rate_min': TCP Small Window ACK Rate Min; 'ddet_ind_small_window_ack_rate_max': TCP Small Window ACK Rate Max; 'ddet_ind_empty_ack_rate_current': TCP Empty ACK Rate Current; 'ddet_ind_empty_ack_rate_min': TCP Empty ACK Rate Min; 'ddet_ind_empty_ack_rate_max': TCP Empty ACK Rate Max; 'ddet_ind_small_payload_rate_current': TCP Small Payload Rate Current; 'ddet_ind_small_payload_rate_min': TCP Small Payload Rate Min; 'ddet_ind_small_payload_rate_max': TCP Small Payload Rate Max; 'ddet_ind_pkt_drop_ratio_current': Pkt Drop / Pkt Rcvd Current; 'ddet_ind_pkt_drop_ratio_min': Pkt Drop / Pkt Rcvd Min; 'ddet_ind_pkt_drop_ratio_max': Pkt Drop / Pkt Rcvd Max; 'ddet_ind_inb_per_outb_current': Bytes-to / Bytes-from Current; 'ddet_ind_inb_per_outb_min': Bytes-to / Bytes-from Min; 'ddet_ind_inb_per_outb_max': Bytes-to / Bytes-from Max; 'ddet_ind_syn_per_fin_rate_current': TCP SYN Rate / FIN Rate Current; 'ddet_ind_syn_per_fin_rate_min': TCP SYN Rate / FIN Rate Min; 'ddet_ind_syn_per_fin_rate_max': TCP SYN Rate / FIN Rate Max; 'ddet_ind_conn_miss_rate_current': TCP Session Miss Rate Current; 'ddet_ind_conn_miss_rate_min': TCP Session Miss Rate Min; 'ddet_ind_conn_miss_rate_max': TCP Session Miss Rate Max; 'ddet_ind_concurrent_conns_current': TCP/UDP Concurrent Sessions Current; 'ddet_ind_concurrent_conns_min': TCP/UDP Concurrent Sessions Min; 'ddet_ind_concurrent_conns_max': TCP/UDP Concurrent Sessions Max; 'ddet_ind_data_cpu_util_current': Data CPU Utilization Current; 'ddet_ind_data_cpu_util_min': Data CPU Utilization Min; 'ddet_ind_data_cpu_util_max': Data CPU Utilization Max; 'ddet_ind_outside_intf_util_current': Outside Interface Utilization Current; 'ddet_ind_outside_intf_util_min': Outside Interface Utilization Min; 'ddet_ind_outside_intf_util_max': Outside Interface Utilization Max; 'ddet_ind_frag_rate_current': Frag Pkt Rate Current; 'ddet_ind_frag_rate_min': Frag Pkt Rate Min; 'ddet_ind_frag_rate_max': Frag Pkt Rate Max; 'ddet_ind_bit_rate_current': Bit Rate Current; 'ddet_ind_bit_rate_min': Bit Rate Min; 'ddet_ind_bit_rate_max': Bit Rate Max; ", "enum":[ "all", "ip-proto-type", "ddet_ind_pkt_rate_current", "ddet_ind_pkt_rate_min", "ddet_ind_pkt_rate_max", "ddet_ind_pkt_drop_rate_current", "ddet_ind_pkt_drop_rate_min", "ddet_ind_pkt_drop_rate_max", "ddet_ind_syn_rate_current", "ddet_ind_syn_rate_min", "ddet_ind_syn_rate_max", "ddet_ind_fin_rate_current", "ddet_ind_fin_rate_min", "ddet_ind_fin_rate_max", "ddet_ind_rst_rate_current", "ddet_ind_rst_rate_min", "ddet_ind_rst_rate_max", "ddet_ind_small_window_ack_rate_current", "ddet_ind_small_window_ack_rate_min", "ddet_ind_small_window_ack_rate_max", "ddet_ind_empty_ack_rate_current", "ddet_ind_empty_ack_rate_min", "ddet_ind_empty_ack_rate_max", "ddet_ind_small_payload_rate_current", "ddet_ind_small_payload_rate_min", "ddet_ind_small_payload_rate_max", "ddet_ind_pkt_drop_ratio_current", "ddet_ind_pkt_drop_ratio_min", "ddet_ind_pkt_drop_ratio_max", "ddet_ind_inb_per_outb_current", "ddet_ind_inb_per_outb_min", "ddet_ind_inb_per_outb_max", "ddet_ind_syn_per_fin_rate_current", "ddet_ind_syn_per_fin_rate_min", "ddet_ind_syn_per_fin_rate_max", "ddet_ind_conn_miss_rate_current", "ddet_ind_conn_miss_rate_min", "ddet_ind_conn_miss_rate_max", "ddet_ind_concurrent_conns_current", "ddet_ind_concurrent_conns_min", "ddet_ind_concurrent_conns_max", "ddet_ind_data_cpu_util_current", "ddet_ind_data_cpu_util_min", "ddet_ind_data_cpu_util_max", "ddet_ind_outside_intf_util_current", "ddet_ind_outside_intf_util_min", "ddet_ind_outside_intf_util_max", "ddet_ind_frag_rate_current", "ddet_ind_frag_rate_min", "ddet_ind_frag_rate_max", "ddet_ind_bit_rate_current", "ddet_ind_bit_rate_min", "ddet_ind_bit_rate_max" ] } } } ] } } }, "topk-sources":{ "type":"object", "$ref":"/axapi/v3/ddos/dst/entry/{dst-entry-name}/l4-type/{protocol}/topk-sources", "properties":{ "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "progression-tracking":{ "type":"object", "$ref":"/axapi/v3/ddos/dst/entry/{dst-entry-name}/l4-type/{protocol}/progression-tracking", "properties":{ "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } }, "object-keys":[ "protocol" ], "required":[ "protocol" ] }