From 381dcdcc46b8652135d59342e33535d1aa750e05 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 15 Jul 2010 12:06:43 -0700 Subject: Allow match on Ethernet protocol name Allow using common values supported by TC filter. --- lib/Vyatta/Qos/Match.pm | 3 +-- .../node.tag/match/node.tag/ether/protocol/node.def | 16 ++++++++++++++-- .../node.tag/match/node.tag/ether/protocol/node.def | 16 ++++++++++++++-- .../node.tag/match/node.tag/ether/protocol/node.def | 16 ++++++++++++++-- 4 files changed, 43 insertions(+), 8 deletions(-) diff --git a/lib/Vyatta/Qos/Match.pm b/lib/Vyatta/Qos/Match.pm index 79cd0d3..591c2b0 100644 --- a/lib/Vyatta/Qos/Match.pm +++ b/lib/Vyatta/Qos/Match.pm @@ -34,8 +34,7 @@ sub new { my %fields; if ( $proto eq 'ether' ) { - $fields{protocol} = - getProtocol( $config->returnValue("ether protocol") ); + $fields{protocol} = $config->returnValue("ether protocol"); $fields{src} = $config->returnValue("ether source"); $fields{dst} = $config->returnValue("ether destination"); } else { diff --git a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def index 05d6511..824405b 100644 --- a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def +++ b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def @@ -1,3 +1,15 @@ -type: u32 +type: txt help: Set Ethernet protocol for this match -syntax:expression: ($VAR(@) >= 0 && $VAR(@) < 65536) ; "protocol must be between 0 and 65535" +allowed: echo \ + all 802.1Q 802_2 802_3 aarp aoe arp atalk \ + dec ip ipv6 ipx lat localtalk rarp snap x25 + +comp_help: <0-65536> Ethernet protocol value or name +Common names: + all Any protocol + ip Internet IP (IPv4) + ipv6 Internet IP (IPv6) + arp Address Resolution Protocol + atalk Appletalk + ipx Novell Internet Packet Exchange + 802.1Q 802.1Q VLAN tag diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def index 05d6511..824405b 100644 --- a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def +++ b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def @@ -1,3 +1,15 @@ -type: u32 +type: txt help: Set Ethernet protocol for this match -syntax:expression: ($VAR(@) >= 0 && $VAR(@) < 65536) ; "protocol must be between 0 and 65535" +allowed: echo \ + all 802.1Q 802_2 802_3 aarp aoe arp atalk \ + dec ip ipv6 ipx lat localtalk rarp snap x25 + +comp_help: <0-65536> Ethernet protocol value or name +Common names: + all Any protocol + ip Internet IP (IPv4) + ipv6 Internet IP (IPv6) + arp Address Resolution Protocol + atalk Appletalk + ipx Novell Internet Packet Exchange + 802.1Q 802.1Q VLAN tag diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def index 05d6511..824405b 100644 --- a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def +++ b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def @@ -1,3 +1,15 @@ -type: u32 +type: txt help: Set Ethernet protocol for this match -syntax:expression: ($VAR(@) >= 0 && $VAR(@) < 65536) ; "protocol must be between 0 and 65535" +allowed: echo \ + all 802.1Q 802_2 802_3 aarp aoe arp atalk \ + dec ip ipv6 ipx lat localtalk rarp snap x25 + +comp_help: <0-65536> Ethernet protocol value or name +Common names: + all Any protocol + ip Internet IP (IPv4) + ipv6 Internet IP (IPv6) + arp Address Resolution Protocol + atalk Appletalk + ipx Novell Internet Packet Exchange + 802.1Q 802.1Q VLAN tag -- cgit v1.2.3