{{ form.source_ports|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' | escapeangular_safe }}
{% if form.source_ports.errors %}
{% for error in form.source_ports.errors %}
{{ error }}
{% endfor %}
{% endif %}
Destination ports
{{ form.destination_ports|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' | escapeangular_safe }}
{% if form.destination_ports.errors %}
{% for error in form.destination_ports.errors %}
{{ error }}
{% endfor %}
{% endif %}
ICMP type
{{ form.icmp_type|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{% if form.icmp_type.errors %}
{% for error in form.icmp_type.errors %}
{{ error }}
{% endfor %}
{% endif %}
TCP flags
Match
{{ form.tcp_flags_match }}
{% if form.tcp_flags_match.errors %}
{% for error in form.tcp_flags_match.errors %}
{{ error }}
{% endfor %}
{% endif %}
Service request (DSCP)
{{ form.dscp_class|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{% if form.dscp_class.errors %}
{% for error in form.dscp_class.errors %}
{{ error }}
{% endfor %}
{% endif %}
Global frequency
Match up to {{ form.limit_rate_value|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
/
{{ form.limit_rate_unit|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
Burst to
{{ form.limit_burst|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{% if form.limit_rate_value.errors or form.limit_rate_unit.errors or form.limit_burst.errors %}
{% for error in form.limit_rate_value.errors %}
{{ error }}
{% endfor %}
{% for error in form.limit_rate_unit.errors %}
{{ error }}
{% endfor %}
{% for error in form.limit_burst.errors %}
{{ error }}
{% endfor %}
{% endif %}
Connection frequency
Match {{ form.hashlimit_value_type|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{{ form.hashlimit_value|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
/
{{ form.hashlimit_rate_unit|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
Burst to
{{ form.hashlimit_burst|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{% if form.hashlimit_value_type.errors or form.hashlimit_value.errors or form.hashlimit_rate_unit.errors %}
{% for error in form.hashlimit_value_type.errors %}
{{ error }}
{% endfor %}
{% for error in form.hashlimit_value.errors %}
{{ error }}
{% endfor %}
{% for error in form.hashlimit_rate_unit.errors %}
{{ error }}
{% endfor %}
{% endif %}
{{ form.hashlimit_mode_srcip|bootstrap_inline }}
{{ form.hashlimit_mode_srcport|bootstrap_inline }}
Source Mask
{{ form.hashlimit_srcmask|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{% if form.hashlimit_srcmask.errors %}
{% for error in form.hashlimit_srcmask.errors %}
{{ error }}
{% endfor %}
{% endif %}
{{ form.hashlimit_mode_dstip|bootstrap_inline }}
{{ form.hashlimit_mode_dstport|bootstrap_inline }}
Destination Mask
{{ form.hashlimit_dstmask|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{% if form.hashlimit_dstmask.errors %}
{% for error in form.hashlimit_dstmask.errors %}
{{ error }}
{% endfor %}
{% endif %}
Connection bytes
Size {{ form.connbytes_size|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
Mode
{{ form.connbytes_mode|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
Direction
{{ form.connbytes_dir|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{% if form.connbytes_size.errors or form.connbytes_mode.errors or form.connbytes_dir.errors %}
{% for error in form.connbytes_size.errors %}
{{ error }}
{% endfor %}
{% for error in form.connbytes_mode.errors %}
{{ error }}
{% endfor %}
{% for error in form.connbytes_dir.errors %}
{{ error }}
{% endfor %}
{% endif %}
Connection tracking
State {{ form.conntrack_state|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
Protocol {{ form.conntrack_protocol|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{% if form.conntrack_state.errors or form.conntrack_protocol.errors %}
{% for error in form.conntrack_state.errors %}
{{ error }}
{% endfor %}
{% for error in form.conntrack_protocol.errors %}
{{ error }}
{% endfor %}
{% endif %}
Protocol helper
{{ form.helper|add_class:'form-control'|add_class:'input-sm'|add_class:'qos-input-medium'|add_class:'qos-input-inline' }}
{% if form.helper.errors %}
{% for error in form.helper.errors %}
{{ error }}
{% endfor %}
{% endif %}