summaryrefslogtreecommitdiff
path: root/interface-templates
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2010-06-09 10:51:56 -0700
committerStephen Hemminger <stephen.hemminger@vyatta.com>2010-06-09 10:51:56 -0700
commit0eb4bb917c2cdb0c7563e5082a82fae9319da08e (patch)
tree751c08fccb1cabed9ea18fe97e24711d4fc8cd9c /interface-templates
parent0e4f6a846a42796887706e46f82664a46bf706b7 (diff)
parentded90a0249827911e86c343ad67ae0d2074b6008 (diff)
downloadvyatta-cfg-qos-0eb4bb917c2cdb0c7563e5082a82fae9319da08e.tar.gz
vyatta-cfg-qos-0eb4bb917c2cdb0c7563e5082a82fae9319da08e.zip
Merge branch 'larkspur' of vm:git/vyatta-cfg-qos into larkspur
Diffstat (limited to 'interface-templates')
-rw-r--r--interface-templates/input-policy/limit/class/node.def6
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/bandwidth/node.def8
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/burst/node.def7
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/description/node.def2
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.def4
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/description/node.def2
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/destination/node.def2
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/protocol/node.def3
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/source/node.def2
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/address/node.def2
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/node.def1
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/port/node.def3
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/dscp/node.def18
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/protocol/node.def17
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/address/node.def2
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/node.def1
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/port/node.def3
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/address/node.def2
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/node.def1
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/port/node.def3
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/dscp/node.def18
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/protocol/node.def17
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/address/node.def2
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/node.def1
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/port/node.def3
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/match/node.tag/vif/node.def5
-rw-r--r--interface-templates/input-policy/limit/class/node.tag/priority/node.def8
-rw-r--r--interface-templates/input-policy/limit/description/node.def2
-rw-r--r--interface-templates/input-policy/mirror/node.def3
-rw-r--r--interface-templates/input-policy/node.def4
-rw-r--r--interface-templates/input-policy/redirect/node.def3
-rw-r--r--interface-templates/mirror/node.def18
-rw-r--r--interface-templates/redirect/node.def16
-rw-r--r--interface-templates/traffic-policy/in/node.def (renamed from interface-templates/qos-policy/node.def)8
-rw-r--r--interface-templates/traffic-policy/node.def1
-rw-r--r--interface-templates/traffic-policy/out/node.def5
36 files changed, 44 insertions, 159 deletions
diff --git a/interface-templates/input-policy/limit/class/node.def b/interface-templates/input-policy/limit/class/node.def
deleted file mode 100644
index 2a77af0..0000000
--- a/interface-templates/input-policy/limit/class/node.def
+++ /dev/null
@@ -1,6 +0,0 @@
-tag:
-type: u32
-help: Set class handle
-syntax:expression: $VAR(@) >= 1 && $VAR(@) < 4096; "Class identifier must be between 1 and 4095"
-comp_help: possible completions
- <1-4095> Class ID
diff --git a/interface-templates/input-policy/limit/class/node.tag/bandwidth/node.def b/interface-templates/input-policy/limit/class/node.tag/bandwidth/node.def
deleted file mode 100644
index 13c70ee..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/bandwidth/node.def
+++ /dev/null
@@ -1,8 +0,0 @@
-type: txt
-help: Set the traffic-limit used for this class [REQUIRED]
-syntax:expression: exec "/opt/vyatta/sbin/vyatta-qos-util.pl --rate $VAR(@)"
-comp_help: Allowed values:
- <number> Bandwidth in Kbps
- <number><suffix> Value with scaling suffix
- bits per sec (kbit, mbit, gbit)
- bytes per sec (kbps, mbps, gbps)
diff --git a/interface-templates/input-policy/limit/class/node.tag/burst/node.def b/interface-templates/input-policy/limit/class/node.tag/burst/node.def
deleted file mode 100644
index e22453c..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/burst/node.def
+++ /dev/null
@@ -1,7 +0,0 @@
-type: txt
-help: Set the burst size for this class (default: 15kb)
-default: "15k"
-syntax:expression: exec "/opt/vyatta/sbin/vyatta-qos-util.pl --burst $VAR(@)"
-comp_help: Allowed values:
- <number> Burst size in bytes
- <number><suffix> Size with scaling suffix (kb, mb, gb)
diff --git a/interface-templates/input-policy/limit/class/node.tag/description/node.def b/interface-templates/input-policy/limit/class/node.tag/description/node.def
deleted file mode 100644
index d4241e7..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/description/node.def
+++ /dev/null
@@ -1,2 +0,0 @@
-type: txt
-help: Set description for this traffic class
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.def
deleted file mode 100644
index 2a5d021..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.def
+++ /dev/null
@@ -1,4 +0,0 @@
-tag:
-type: txt
-syntax:expression: pattern $VAR(@) "^[^-]" ; "Match queue name cannot start with \"-\""
-help: Set class matching rule name
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/description/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/description/node.def
deleted file mode 100644
index a56c59c..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/description/node.def
+++ /dev/null
@@ -1,2 +0,0 @@
-type: txt
-help: Set description for this match
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/destination/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/destination/node.def
deleted file mode 100644
index e8be347..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/destination/node.def
+++ /dev/null
@@ -1,2 +0,0 @@
-type: macaddr
-help: Set the Ethernet destination address for this match
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/protocol/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/protocol/node.def
deleted file mode 100644
index 05d6511..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/protocol/node.def
+++ /dev/null
@@ -1,3 +0,0 @@
-type: u32
-help: Set Ethernet protocol for this match
-syntax:expression: ($VAR(@) >= 0 && $VAR(@) < 65536) ; "protocol must be between 0 and 65535"
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/source/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/source/node.def
deleted file mode 100644
index b993af6..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ether/source/node.def
+++ /dev/null
@@ -1,2 +0,0 @@
-type: macaddr
-help: Set the Ethernet source address for this match
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/address/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/address/node.def
deleted file mode 100644
index ccd2d14..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/address/node.def
+++ /dev/null
@@ -1,2 +0,0 @@
-type: ipv4net
-help: Set IP destination address for this match
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/node.def
deleted file mode 100644
index 54eef5b..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/node.def
+++ /dev/null
@@ -1 +0,0 @@
-help: Match on destination port or address
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/port/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/port/node.def
deleted file mode 100644
index 561899c..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/destination/port/node.def
+++ /dev/null
@@ -1,3 +0,0 @@
-type: u32
-help: Set IP destination port for this match
-syntax:expression: ($VAR(@) > 0 && $VAR(@) < 65536) ; "port must be between 1 and 65535"
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/dscp/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/dscp/node.def
deleted file mode 100644
index d02dc5c..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/dscp/node.def
+++ /dev/null
@@ -1,18 +0,0 @@
-type: txt
-help: Match on Differentiated Services Codepoint (DSCP)
-syntax:expression: exec "/opt/vyatta/sbin/vyatta-qos-util.pl --dscp $VAR(@)"
-allowed: awk '
- /^#/ { next }
- { printf "%s ", $2 }' </etc/iproute2/rt_dsfield
-comp_help: <0-63> Differentiated Services Codepoint (DSCP) value
- default match DSCP (000000)
- reliability match DSCP (000001)
- throughput match DSCP (000010)
- lowdelay match DSCP (000100)
- priority match DSCP (001000)
- immediate match DSCP (010000)
- flash match DSCP (011000)
- flash-override match DSCP (100000)
- critical match DSCP (101000)
- internet match DSCP (110000)
- network match DSCP (111000)
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/protocol/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/protocol/node.def
deleted file mode 100644
index 9c665c2..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/protocol/node.def
+++ /dev/null
@@ -1,17 +0,0 @@
-type: txt
-help: Match IP protocol name or number
-syntax:expression: exec "/opt/vyatta/sbin/vyatta-qos-util.pl --protocol $VAR(@)"
-allowed: awk '
- /^#/ { next }
- { printf "%s ", $1 }' </etc/protocols
-comp_help: <0-255> IP protocol value or name
-Common names:
- icmp Internet Control Message Protocol
- igmp Internet Group Management Protocol
- ggp Gateway-Gateway protocol
- tcp Transmission Control Protocol
- egp Exterior Gateway Protocol
- udp User Datagram Protocol
- gre General Routing Encapsulation
- ospf Open Shortest Path First IGP
- sctp Stream Control Transmission Protocol
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/address/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/address/node.def
deleted file mode 100644
index 0bc690a..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/address/node.def
+++ /dev/null
@@ -1,2 +0,0 @@
-type: ipv4net
-help: Set IP source address for this match
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/node.def
deleted file mode 100644
index 4271b94..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/node.def
+++ /dev/null
@@ -1 +0,0 @@
-help: Match on source port or address
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/port/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/port/node.def
deleted file mode 100644
index ecd96ab..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ip/source/port/node.def
+++ /dev/null
@@ -1,3 +0,0 @@
-type: u32
-help: Set IP source port for this match
-syntax:expression: ($VAR(@) > 0 && $VAR(@) < 65536) ; "port must be between 1 and 65535"
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/address/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/address/node.def
deleted file mode 100644
index 2f608f8..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/address/node.def
+++ /dev/null
@@ -1,2 +0,0 @@
-type: ipv6net
-help: Set IP destination address for this match
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/node.def
deleted file mode 100644
index 54eef5b..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/node.def
+++ /dev/null
@@ -1 +0,0 @@
-help: Match on destination port or address
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/port/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/port/node.def
deleted file mode 100644
index 561899c..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/destination/port/node.def
+++ /dev/null
@@ -1,3 +0,0 @@
-type: u32
-help: Set IP destination port for this match
-syntax:expression: ($VAR(@) > 0 && $VAR(@) < 65536) ; "port must be between 1 and 65535"
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/dscp/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/dscp/node.def
deleted file mode 100644
index d02dc5c..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/dscp/node.def
+++ /dev/null
@@ -1,18 +0,0 @@
-type: txt
-help: Match on Differentiated Services Codepoint (DSCP)
-syntax:expression: exec "/opt/vyatta/sbin/vyatta-qos-util.pl --dscp $VAR(@)"
-allowed: awk '
- /^#/ { next }
- { printf "%s ", $2 }' </etc/iproute2/rt_dsfield
-comp_help: <0-63> Differentiated Services Codepoint (DSCP) value
- default match DSCP (000000)
- reliability match DSCP (000001)
- throughput match DSCP (000010)
- lowdelay match DSCP (000100)
- priority match DSCP (001000)
- immediate match DSCP (010000)
- flash match DSCP (011000)
- flash-override match DSCP (100000)
- critical match DSCP (101000)
- internet match DSCP (110000)
- network match DSCP (111000)
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/protocol/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/protocol/node.def
deleted file mode 100644
index 9c665c2..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/protocol/node.def
+++ /dev/null
@@ -1,17 +0,0 @@
-type: txt
-help: Match IP protocol name or number
-syntax:expression: exec "/opt/vyatta/sbin/vyatta-qos-util.pl --protocol $VAR(@)"
-allowed: awk '
- /^#/ { next }
- { printf "%s ", $1 }' </etc/protocols
-comp_help: <0-255> IP protocol value or name
-Common names:
- icmp Internet Control Message Protocol
- igmp Internet Group Management Protocol
- ggp Gateway-Gateway protocol
- tcp Transmission Control Protocol
- egp Exterior Gateway Protocol
- udp User Datagram Protocol
- gre General Routing Encapsulation
- ospf Open Shortest Path First IGP
- sctp Stream Control Transmission Protocol
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/address/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/address/node.def
deleted file mode 100644
index 23c96c2..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/address/node.def
+++ /dev/null
@@ -1,2 +0,0 @@
-type: ipv6net
-help: Set IP source address for this match
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/node.def
deleted file mode 100644
index 4271b94..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/node.def
+++ /dev/null
@@ -1 +0,0 @@
-help: Match on source port or address
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/port/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/port/node.def
deleted file mode 100644
index ecd96ab..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/ipv6/source/port/node.def
+++ /dev/null
@@ -1,3 +0,0 @@
-type: u32
-help: Set IP source port for this match
-syntax:expression: ($VAR(@) > 0 && $VAR(@) < 65536) ; "port must be between 1 and 65535"
diff --git a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/vif/node.def b/interface-templates/input-policy/limit/class/node.tag/match/node.tag/vif/node.def
deleted file mode 100644
index e22250d..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/match/node.tag/vif/node.def
+++ /dev/null
@@ -1,5 +0,0 @@
-type: u32
-help: Set Virtual Local Area Network (VLAN) ID for this match
-syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 4095; "VLAN ID must be between 0 and 4095"
-comp_help: possible completions:
- <0-4095> Set VLAN ID
diff --git a/interface-templates/input-policy/limit/class/node.tag/priority/node.def b/interface-templates/input-policy/limit/class/node.tag/priority/node.def
deleted file mode 100644
index a99400d..0000000
--- a/interface-templates/input-policy/limit/class/node.tag/priority/node.def
+++ /dev/null
@@ -1,8 +0,0 @@
-type: u32
-help: Set priority for rule evaluation
-default: 20
-syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 20 ; \
- "priority must be between 0 and 20"
-help: Priority value
-comp_help: Priority for traffic limiting evaluation
- <0-20> (default 20)
diff --git a/interface-templates/input-policy/limit/description/node.def b/interface-templates/input-policy/limit/description/node.def
deleted file mode 100644
index 1e8e64f..0000000
--- a/interface-templates/input-policy/limit/description/node.def
+++ /dev/null
@@ -1,2 +0,0 @@
-type: txt
-help: Set description for this queuing policy
diff --git a/interface-templates/input-policy/mirror/node.def b/interface-templates/input-policy/mirror/node.def
deleted file mode 100644
index 49fb3df..0000000
--- a/interface-templates/input-policy/mirror/node.def
+++ /dev/null
@@ -1,3 +0,0 @@
-type: txt
-help: Set incoming packet mirroring destination
-allowed: ${vyatta_sbindir}/vyatta-interfaces.pl --show=all
diff --git a/interface-templates/input-policy/node.def b/interface-templates/input-policy/node.def
deleted file mode 100644
index 8062561..0000000
--- a/interface-templates/input-policy/node.def
+++ /dev/null
@@ -1,4 +0,0 @@
-help: Set incoming packet policy
-commit:expression:exec "/opt/vyatta/sbin/vyatta-qos.pl --check-ingress $IFNAME"
-end: /opt/vyatta/sbin/vyatta-qos.pl --update-ingress $IFNAME
-
diff --git a/interface-templates/input-policy/redirect/node.def b/interface-templates/input-policy/redirect/node.def
deleted file mode 100644
index 5582d07..0000000
--- a/interface-templates/input-policy/redirect/node.def
+++ /dev/null
@@ -1,3 +0,0 @@
-type: txt
-help: Set incoming packet redirection destination
-allowed: ${vyatta_sbindir}/vyatta-interfaces.pl --show=all
diff --git a/interface-templates/mirror/node.def b/interface-templates/mirror/node.def
new file mode 100644
index 0000000..f19ae06
--- /dev/null
+++ b/interface-templates/mirror/node.def
@@ -0,0 +1,18 @@
+type: txt
+help: Set incoming packet mirroring destination
+allowed: ${vyatta_sbindir}/vyatta-interfaces.pl --skip=$IFNAME --show=all
+
+syntax: $VAR(@) != $VAR(../@) ;\
+ "interface $VAR(../@): mirroring to same interface not allowed"
+
+syntax: /opt/vyatta/sbin/vyatta-interfaces.pl --dev=$IFNAME --check=all
+
+commit:expression: $VAR(../redirect) == ""; \
+ "interface $VAR(../@) : can not redirect and mirror on $IFNAME"
+
+commit:expression: $VAR(../traffic-policy/in) == ""; \
+ "interface $VAR(../@) : can not use ingress policy and mirror on $IFNAME"
+
+end: /opt/vyatta/sbin/vyatta-qos.pl --update-action $IFNAME
+
+
diff --git a/interface-templates/redirect/node.def b/interface-templates/redirect/node.def
new file mode 100644
index 0000000..e94e8a8
--- /dev/null
+++ b/interface-templates/redirect/node.def
@@ -0,0 +1,16 @@
+type: txt
+help: Set incoming packet redirection destination
+allowed: /opt/vyatta/sbin/vyatta-interfaces.pl --skip=$IFNAME --show=all
+
+syntax: $VAR(@) != $VAR(../@) ;\
+ "interface $VAR(../@): redirect to same interface not allowed"
+
+syntax: /opt/vyatta/sbin/vyatta-interfaces.pl --dev=$IFNAME --check=all
+
+commit:expression: $VAR(../mirror) == "";\
+ "interface $VAR(../@) : can not redirect and mirror on $IFNAME"
+
+commit:expression: $VAR(../traffic-policy/in) == ""; \
+ "interface $VAR(../@) : can not use ingress policy and redirect on $IFNAME"
+
+end: /opt/vyatta/sbin/vyatta-qos.pl --update-action $IFNAME
diff --git a/interface-templates/qos-policy/node.def b/interface-templates/traffic-policy/in/node.def
index 2b8a36f..901fae8 100644
--- a/interface-templates/qos-policy/node.def
+++ b/interface-templates/traffic-policy/in/node.def
@@ -1,5 +1,5 @@
type: txt
-help: Set outbound QOS policy for interface
-allowed: /opt/vyatta/sbin/vyatta-qos.pl --list-policy
-update: /opt/vyatta/sbin/vyatta-qos.pl --update-interface $IFNAME $VAR(@)
-delete: /opt/vyatta/sbin/vyatta-qos.pl --delete-interface $IFNAME
+help: Set ingress traffic policy for interface
+allowed: /opt/vyatta/sbin/vyatta-qos.pl --list-policy in
+update: /opt/vyatta/sbin/vyatta-qos.pl --update-interface $IFNAME in $VAR(@)
+delete: /opt/vyatta/sbin/vyatta-qos.pl --delete-interface $IFNAME in
diff --git a/interface-templates/traffic-policy/node.def b/interface-templates/traffic-policy/node.def
new file mode 100644
index 0000000..d13c6cd
--- /dev/null
+++ b/interface-templates/traffic-policy/node.def
@@ -0,0 +1 @@
+help: Set traffic-policy for interface
diff --git a/interface-templates/traffic-policy/out/node.def b/interface-templates/traffic-policy/out/node.def
new file mode 100644
index 0000000..e22793b
--- /dev/null
+++ b/interface-templates/traffic-policy/out/node.def
@@ -0,0 +1,5 @@
+type: txt
+help: Set egress traffic policy for interface
+allowed: /opt/vyatta/sbin/vyatta-qos.pl --list-policy out
+update: /opt/vyatta/sbin/vyatta-qos.pl --update-interface $IFNAME out $VAR(@)
+delete: /opt/vyatta/sbin/vyatta-qos.pl --delete-interface $IFNAME out