From d96867cd19221810035c48ba4cead516c39116f6 Mon Sep 17 00:00:00 2001 From: kouak Date: Wed, 25 Mar 2015 14:22:37 +0100 Subject: Refactor QoS class match templates --- Makefile.am | 1 + gen-interface-templates.pl | 2 +- gen-qos-match-templates.pl | 76 ++++++++++++++++++++++ interface-templates/redirect/node.def | 18 ----- interface-templates/traffic-policy/in/node.def | 5 -- interface-templates/traffic-policy/node.def | 1 - interface-templates/traffic-policy/out/node.def | 5 -- .../interface-templates/redirect/node.def | 18 +++++ .../interface-templates/traffic-policy/in/node.def | 5 ++ .../interface-templates/traffic-policy/node.def | 1 + .../traffic-policy/out/node.def | 5 ++ .../class/node.tag/match/node.def | 4 ++ .../node.tag/match/node.tag/description/node.def | 2 + .../match/node.tag/ether/destination/node.def | 2 + .../class/node.tag/match/node.tag/ether/node.def | 1 + .../match/node.tag/ether/protocol/node.def | 15 +++++ .../node.tag/match/node.tag/ether/source/node.def | 2 + .../node.tag/match/node.tag/interface/node.def | 7 ++ .../match/node.tag/ip/destination/address/node.def | 2 + .../match/node.tag/ip/destination/node.def | 1 + .../match/node.tag/ip/destination/port/node.def | 5 ++ .../class/node.tag/match/node.tag/ip/dscp/node.def | 18 +++++ .../class/node.tag/match/node.tag/ip/node.def | 2 + .../node.tag/match/node.tag/ip/protocol/node.def | 16 +++++ .../match/node.tag/ip/source/address/node.def | 2 + .../node.tag/match/node.tag/ip/source/node.def | 1 + .../match/node.tag/ip/source/port/node.def | 6 ++ .../node.tag/ipv6/destination/address/node.def | 2 + .../match/node.tag/ipv6/destination/node.def | 1 + .../match/node.tag/ipv6/destination/port/node.def | 5 ++ .../node.tag/match/node.tag/ipv6/dscp/node.def | 18 +++++ .../class/node.tag/match/node.tag/ipv6/node.def | 1 + .../node.tag/match/node.tag/ipv6/protocol/node.def | 16 +++++ .../match/node.tag/ipv6/source/address/node.def | 2 + .../node.tag/match/node.tag/ipv6/source/node.def | 1 + .../match/node.tag/ipv6/source/port/node.def | 6 ++ .../class/node.tag/match/node.tag/mark/node.def | 2 + .../class/node.tag/match/node.tag/vif/node.def | 5 ++ .../limiter/node.tag/class/node.tag/match/node.def | 4 -- .../node.tag/match/node.tag/description/node.def | 2 - .../match/node.tag/ether/destination/node.def | 2 - .../class/node.tag/match/node.tag/ether/node.def | 1 - .../match/node.tag/ether/protocol/node.def | 14 ---- .../node.tag/match/node.tag/ether/source/node.def | 2 - .../match/node.tag/ip/destination/address/node.def | 2 - .../match/node.tag/ip/destination/node.def | 1 - .../match/node.tag/ip/destination/port/node.def | 5 -- .../class/node.tag/match/node.tag/ip/dscp/node.def | 19 ------ .../class/node.tag/match/node.tag/ip/node.def | 2 - .../node.tag/match/node.tag/ip/protocol/node.def | 16 ----- .../match/node.tag/ip/source/address/node.def | 2 - .../node.tag/match/node.tag/ip/source/node.def | 1 - .../match/node.tag/ip/source/port/node.def | 6 -- .../node.tag/ipv6/destination/address/node.def | 2 - .../match/node.tag/ipv6/destination/node.def | 1 - .../match/node.tag/ipv6/destination/port/node.def | 5 -- .../node.tag/match/node.tag/ipv6/dscp/node.def | 19 ------ .../class/node.tag/match/node.tag/ipv6/node.def | 1 - .../node.tag/match/node.tag/ipv6/protocol/node.def | 17 ----- .../match/node.tag/ipv6/source/address/node.def | 2 - .../node.tag/match/node.tag/ipv6/source/node.def | 1 - .../match/node.tag/ipv6/source/port/node.def | 6 -- .../class/node.tag/match/node.tag/vif/node.def | 5 -- .../node.tag/class/node.tag/match/node.def | 4 -- .../node.tag/match/node.tag/description/node.def | 2 - .../match/node.tag/ether/destination/node.def | 2 - .../class/node.tag/match/node.tag/ether/node.def | 1 - .../match/node.tag/ether/protocol/node.def | 15 ----- .../node.tag/match/node.tag/ether/source/node.def | 2 - .../node.tag/match/node.tag/interface/node.def | 7 -- .../match/node.tag/ip/destination/address/node.def | 2 - .../match/node.tag/ip/destination/node.def | 1 - .../match/node.tag/ip/destination/port/node.def | 5 -- .../class/node.tag/match/node.tag/ip/dscp/node.def | 18 ----- .../class/node.tag/match/node.tag/ip/node.def | 2 - .../node.tag/match/node.tag/ip/protocol/node.def | 16 ----- .../match/node.tag/ip/source/address/node.def | 2 - .../node.tag/match/node.tag/ip/source/node.def | 1 - .../match/node.tag/ip/source/port/node.def | 6 -- .../node.tag/ipv6/destination/address/node.def | 2 - .../match/node.tag/ipv6/destination/node.def | 1 - .../match/node.tag/ipv6/destination/port/node.def | 5 -- .../node.tag/match/node.tag/ipv6/dscp/node.def | 18 ----- .../class/node.tag/match/node.tag/ipv6/node.def | 1 - .../node.tag/match/node.tag/ipv6/protocol/node.def | 16 ----- .../match/node.tag/ipv6/source/address/node.def | 2 - .../node.tag/match/node.tag/ipv6/source/node.def | 1 - .../match/node.tag/ipv6/source/port/node.def | 6 -- .../class/node.tag/match/node.tag/mark/node.def | 2 - .../class/node.tag/match/node.tag/vif/node.def | 5 -- .../node.tag/class/node.tag/match/node.def | 4 -- .../node.tag/match/node.tag/description/node.def | 2 - .../match/node.tag/ether/destination/node.def | 2 - .../class/node.tag/match/node.tag/ether/node.def | 1 - .../match/node.tag/ether/protocol/node.def | 14 ---- .../node.tag/match/node.tag/ether/source/node.def | 2 - .../node.tag/match/node.tag/interface/node.def | 7 -- .../match/node.tag/ip/destination/address/node.def | 2 - .../match/node.tag/ip/destination/node.def | 1 - .../match/node.tag/ip/destination/port/node.def | 5 -- .../class/node.tag/match/node.tag/ip/dscp/node.def | 18 ----- .../class/node.tag/match/node.tag/ip/node.def | 2 - .../node.tag/match/node.tag/ip/protocol/node.def | 16 ----- .../match/node.tag/ip/source/address/node.def | 2 - .../node.tag/match/node.tag/ip/source/node.def | 1 - .../match/node.tag/ip/source/port/node.def | 6 -- .../node.tag/ipv6/destination/address/node.def | 2 - .../match/node.tag/ipv6/destination/node.def | 1 - .../match/node.tag/ipv6/destination/port/node.def | 5 -- .../node.tag/match/node.tag/ipv6/dscp/node.def | 18 ----- .../class/node.tag/match/node.tag/ipv6/node.def | 1 - .../node.tag/match/node.tag/ipv6/protocol/node.def | 16 ----- .../match/node.tag/ipv6/source/address/node.def | 2 - .../node.tag/match/node.tag/ipv6/source/node.def | 1 - .../match/node.tag/ipv6/source/port/node.def | 6 -- .../class/node.tag/match/node.tag/mark/node.def | 2 - .../class/node.tag/match/node.tag/vif/node.def | 5 -- .../node.tag/class/node.tag/match/node.def | 4 -- .../node.tag/match/node.tag/description/node.def | 2 - .../match/node.tag/ether/destination/node.def | 2 - .../class/node.tag/match/node.tag/ether/node.def | 1 - .../match/node.tag/ether/protocol/node.def | 15 ----- .../node.tag/match/node.tag/ether/source/node.def | 2 - .../node.tag/match/node.tag/interface/node.def | 7 -- .../match/node.tag/ip/destination/address/node.def | 2 - .../match/node.tag/ip/destination/node.def | 1 - .../match/node.tag/ip/destination/port/node.def | 5 -- .../class/node.tag/match/node.tag/ip/dscp/node.def | 18 ----- .../class/node.tag/match/node.tag/ip/node.def | 2 - .../node.tag/match/node.tag/ip/protocol/node.def | 16 ----- .../match/node.tag/ip/source/address/node.def | 2 - .../node.tag/match/node.tag/ip/source/node.def | 1 - .../match/node.tag/ip/source/port/node.def | 6 -- .../node.tag/ipv6/destination/address/node.def | 2 - .../match/node.tag/ipv6/destination/node.def | 1 - .../match/node.tag/ipv6/destination/port/node.def | 5 -- .../node.tag/match/node.tag/ipv6/dscp/node.def | 18 ----- .../class/node.tag/match/node.tag/ipv6/node.def | 1 - .../node.tag/match/node.tag/ipv6/protocol/node.def | 16 ----- .../match/node.tag/ipv6/source/address/node.def | 2 - .../node.tag/match/node.tag/ipv6/source/node.def | 1 - .../match/node.tag/ipv6/source/port/node.def | 6 -- .../class/node.tag/match/node.tag/mark/node.def | 2 - .../class/node.tag/match/node.tag/vif/node.def | 5 -- .../shaper/node.tag/class/node.tag/match/node.def | 4 -- .../node.tag/match/node.tag/description/node.def | 2 - .../match/node.tag/ether/destination/node.def | 2 - .../class/node.tag/match/node.tag/ether/node.def | 1 - .../match/node.tag/ether/protocol/node.def | 15 ----- .../node.tag/match/node.tag/ether/source/node.def | 2 - .../node.tag/match/node.tag/interface/node.def | 7 -- .../match/node.tag/ip/destination/address/node.def | 2 - .../match/node.tag/ip/destination/node.def | 1 - .../match/node.tag/ip/destination/port/node.def | 5 -- .../class/node.tag/match/node.tag/ip/dscp/node.def | 18 ----- .../class/node.tag/match/node.tag/ip/node.def | 2 - .../node.tag/match/node.tag/ip/protocol/node.def | 16 ----- .../match/node.tag/ip/source/address/node.def | 2 - .../node.tag/match/node.tag/ip/source/node.def | 1 - .../match/node.tag/ip/source/port/node.def | 6 -- .../node.tag/ipv6/destination/address/node.def | 2 - .../match/node.tag/ipv6/destination/node.def | 1 - .../match/node.tag/ipv6/destination/port/node.def | 5 -- .../node.tag/match/node.tag/ipv6/dscp/node.def | 18 ----- .../class/node.tag/match/node.tag/ipv6/node.def | 1 - .../node.tag/match/node.tag/ipv6/protocol/node.def | 16 ----- .../match/node.tag/ipv6/source/address/node.def | 2 - .../node.tag/match/node.tag/ipv6/source/node.def | 1 - .../match/node.tag/ipv6/source/port/node.def | 6 -- .../class/node.tag/match/node.tag/mark/node.def | 2 - .../class/node.tag/match/node.tag/vif/node.def | 5 -- 171 files changed, 252 insertions(+), 747 deletions(-) create mode 100755 gen-qos-match-templates.pl delete mode 100644 interface-templates/redirect/node.def delete mode 100644 interface-templates/traffic-policy/in/node.def delete mode 100644 interface-templates/traffic-policy/node.def delete mode 100644 interface-templates/traffic-policy/out/node.def create mode 100644 templates-skeleton/interface-templates/redirect/node.def create mode 100644 templates-skeleton/interface-templates/traffic-policy/in/node.def create mode 100644 templates-skeleton/interface-templates/traffic-policy/node.def create mode 100644 templates-skeleton/interface-templates/traffic-policy/out/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/description/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/destination/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/protocol/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/source/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/interface/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/address/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/port/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/dscp/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/protocol/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/source/address/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/source/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/source/port/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/destination/address/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/destination/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/destination/port/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/dscp/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/protocol/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/source/address/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/source/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/source/port/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/mark/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/vif/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/description/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/destination/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/source/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/protocol/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/source/address/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/source/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/source/port/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ipv6/destination/address/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ipv6/destination/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ipv6/destination/port/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ipv6/dscp/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ipv6/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ipv6/protocol/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ipv6/source/address/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ipv6/source/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ipv6/source/port/node.def delete mode 100644 templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/vif/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/description/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/destination/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/source/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/interface/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/protocol/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/source/address/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/source/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/source/port/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ipv6/destination/address/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ipv6/destination/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ipv6/destination/port/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ipv6/dscp/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ipv6/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ipv6/protocol/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ipv6/source/address/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ipv6/source/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ipv6/source/port/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/mark/node.def delete mode 100644 templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/vif/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/description/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/destination/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/source/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/interface/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/protocol/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/source/address/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/source/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/source/port/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ipv6/destination/address/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ipv6/destination/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ipv6/destination/port/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ipv6/dscp/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ipv6/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ipv6/protocol/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ipv6/source/address/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ipv6/source/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ipv6/source/port/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/mark/node.def delete mode 100644 templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/vif/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/description/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/destination/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/source/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/interface/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/protocol/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/source/address/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/source/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/source/port/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ipv6/destination/address/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ipv6/destination/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ipv6/destination/port/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ipv6/dscp/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ipv6/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ipv6/protocol/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ipv6/source/address/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ipv6/source/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ipv6/source/port/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/mark/node.def delete mode 100644 templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/vif/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/description/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/destination/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/source/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/interface/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/protocol/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/source/address/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/source/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/source/port/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ipv6/destination/address/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ipv6/destination/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ipv6/destination/port/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ipv6/dscp/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ipv6/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ipv6/protocol/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ipv6/source/address/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ipv6/source/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ipv6/source/port/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/mark/node.def delete mode 100644 templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/vif/node.def diff --git a/Makefile.am b/Makefile.am index 2f83537..c18e814 100644 --- a/Makefile.am +++ b/Makefile.am @@ -34,6 +34,7 @@ cpiop = find . ! -regex '\(.*~\|.*\.bak\|.*\.swp\|.*\#.*\#\)' -print0 | \ all-local: rm -rf $(gentmpdir) ./gen-interface-templates.pl $(gentmpdir) + ./gen-qos-match-templates.pl $(gentmpdir) clean-local: rm -rf $(gentmpdir) diff --git a/gen-interface-templates.pl b/gen-interface-templates.pl index 9c9c4d9..879303e 100755 --- a/gen-interface-templates.pl +++ b/gen-interface-templates.pl @@ -133,7 +133,7 @@ sub mkdir_p { } foreach my $if_tree ( keys %interface_hash ) { - my $inpath = "interface-templates"; + my $inpath = "templates-skeleton/interface-templates"; my $outpath = "$outdir/interfaces/$if_tree"; ( -d $outpath ) or mkdir_p($outpath) diff --git a/gen-qos-match-templates.pl b/gen-qos-match-templates.pl new file mode 100755 index 0000000..bd2a640 --- /dev/null +++ b/gen-qos-match-templates.pl @@ -0,0 +1,76 @@ +#!/usr/bin/perl +# +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2009 Vyatta, Inc. +# All Rights Reserved. +# +# Author: Stephen Hemminger +# Date: March 2009 +# Description: Script to automatically generate per-interface qos templates. +# +# **** End License **** + +use strict; +use warnings; + +# set DEBUG in environment to test script +my $debug = $ENV{'DEBUG'}; + +my @qos_array = ( + 'limiter', + 'round-robin', + 'shaper-hfsc', + 'priority-queue', + 'shaper' +); + +sub gen_template { + my ( $inpath, $outpath, $qos_tree ) = @_; + + # Open output path + print $outpath, "\n" if ($debug); + opendir my $d, $inpath + or die "Can't open: $inpath:$!"; + + print "cp -R $inpath/* $outpath\n"; + system("cp -R $inpath/* $outpath"); + + closedir $d; +} + +die "Usage: $0 output_directory\n" if ( $#ARGV < 0 ); + +my $outdir = $ARGV[0]; + +sub mkdir_p { + my $path = shift; + + return 1 if ( mkdir($path) ); + + my $pos = rindex( $path, "/" ); + return unless $pos != -1; + return unless mkdir_p( substr( $path, 0, $pos ) ); + return mkdir($path); +} + +# Loop through templates array +foreach my $qos_tree ( @qos_array ) { + my $inpath = "templates-skeleton/qos-match-templates"; + my $outpath = "$outdir/traffic-policy/$qos_tree/node.tag"; + ( -d $outpath ) + or mkdir_p($outpath) + or die "Can't create $outpath:$!"; + + gen_template( $inpath, $outpath, $qos_tree ); + +} diff --git a/interface-templates/redirect/node.def b/interface-templates/redirect/node.def deleted file mode 100644 index daff346..0000000 --- a/interface-templates/redirect/node.def +++ /dev/null @@ -1,18 +0,0 @@ -type: txt -help: Incoming packet redirection destination -allowed: /opt/vyatta/sbin/vyatta-interfaces.pl --show=input - -syntax:expression: $VAR(@) != "$IFNAME" ;\ - "interface $IFNAME: redirect to same interface not allowed" -val_help: Interface for packet redirection - -commit:expression: $VAR(../mirror) == "";\ - "interface $IFNAME : can not do both redirect and mirror" - -commit:expression: $VAR(../traffic-policy/in) == ""; \ - "interface $IFNAME : can not use ingress policy and redirect" - -commit:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --dev $VAR(@) --check=all" - -update: /opt/vyatta/sbin/vyatta-qos.pl --update-action $IFNAME -delete: /opt/vyatta/sbin/vyatta-qos.pl --delete-action $IFNAME diff --git a/interface-templates/traffic-policy/in/node.def b/interface-templates/traffic-policy/in/node.def deleted file mode 100644 index 61cdc0a..0000000 --- a/interface-templates/traffic-policy/in/node.def +++ /dev/null @@ -1,5 +0,0 @@ -type: txt -help: 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 deleted file mode 100644 index 2b2cf68..0000000 --- a/interface-templates/traffic-policy/node.def +++ /dev/null @@ -1 +0,0 @@ -help: Traffic-policy for interface diff --git a/interface-templates/traffic-policy/out/node.def b/interface-templates/traffic-policy/out/node.def deleted file mode 100644 index 37eaa5b..0000000 --- a/interface-templates/traffic-policy/out/node.def +++ /dev/null @@ -1,5 +0,0 @@ -type: txt -help: 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 diff --git a/templates-skeleton/interface-templates/redirect/node.def b/templates-skeleton/interface-templates/redirect/node.def new file mode 100644 index 0000000..daff346 --- /dev/null +++ b/templates-skeleton/interface-templates/redirect/node.def @@ -0,0 +1,18 @@ +type: txt +help: Incoming packet redirection destination +allowed: /opt/vyatta/sbin/vyatta-interfaces.pl --show=input + +syntax:expression: $VAR(@) != "$IFNAME" ;\ + "interface $IFNAME: redirect to same interface not allowed" +val_help: Interface for packet redirection + +commit:expression: $VAR(../mirror) == "";\ + "interface $IFNAME : can not do both redirect and mirror" + +commit:expression: $VAR(../traffic-policy/in) == ""; \ + "interface $IFNAME : can not use ingress policy and redirect" + +commit:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --dev $VAR(@) --check=all" + +update: /opt/vyatta/sbin/vyatta-qos.pl --update-action $IFNAME +delete: /opt/vyatta/sbin/vyatta-qos.pl --delete-action $IFNAME diff --git a/templates-skeleton/interface-templates/traffic-policy/in/node.def b/templates-skeleton/interface-templates/traffic-policy/in/node.def new file mode 100644 index 0000000..61cdc0a --- /dev/null +++ b/templates-skeleton/interface-templates/traffic-policy/in/node.def @@ -0,0 +1,5 @@ +type: txt +help: 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/templates-skeleton/interface-templates/traffic-policy/node.def b/templates-skeleton/interface-templates/traffic-policy/node.def new file mode 100644 index 0000000..2b2cf68 --- /dev/null +++ b/templates-skeleton/interface-templates/traffic-policy/node.def @@ -0,0 +1 @@ +help: Traffic-policy for interface diff --git a/templates-skeleton/interface-templates/traffic-policy/out/node.def b/templates-skeleton/interface-templates/traffic-policy/out/node.def new file mode 100644 index 0000000..37eaa5b --- /dev/null +++ b/templates-skeleton/interface-templates/traffic-policy/out/node.def @@ -0,0 +1,5 @@ +type: txt +help: 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 diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.def new file mode 100644 index 0000000..cde128f --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.def @@ -0,0 +1,4 @@ +tag: +type: txt +syntax:expression: pattern $VAR(@) "^[^-]" ; "Match queue name cannot start with \"-\"" +help: Class matching rule name diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/description/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/description/node.def new file mode 100644 index 0000000..903f260 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/description/node.def @@ -0,0 +1,2 @@ +type: txt +help: Description for this match diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/destination/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/destination/node.def new file mode 100644 index 0000000..92fb9a9 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/destination/node.def @@ -0,0 +1,2 @@ +type: macaddr +help: Ethernet destination address for this match diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/node.def new file mode 100644 index 0000000..454c1ed --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/node.def @@ -0,0 +1 @@ +help: Ethernet header match diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/protocol/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/protocol/node.def new file mode 100644 index 0000000..9da50a6 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/protocol/node.def @@ -0,0 +1,15 @@ +type: txt +help: Ethernet protocol for this match +allowed: echo \ + all 802.1Q 802_2 802_3 aarp aoe arp atalk \ + dec ip ipv6 ipx lat localtalk rarp snap x25 + +val_help: u32:0-65535; Ethernet protocol number +val_help: txt; Ethernet protocol name +val_help: all; Any protocol +val_help: ip; Internet IP (IPv4) +val_help: _ipv6; Internet IP (IPv6) +val_help: arp; Address Resolution Protocol +val_help: atalk; Appletalk +val_help: ipx; Novell Internet Packet Exchange +val_help: 802.1Q; 802.1Q VLAN tag diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/source/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/source/node.def new file mode 100644 index 0000000..3094167 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ether/source/node.def @@ -0,0 +1,2 @@ +type: macaddr +help: Ethernet source address for this match diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/interface/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/interface/node.def new file mode 100644 index 0000000..f12c59c --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/interface/node.def @@ -0,0 +1,7 @@ +type: txt +help: Interface name for this match +syntax:expression: exec "[ -f /sys/class/net/$VAR(@)/ifindex ]" ; "Interface must already exist" +allowed: local -a array + array=( /sys/class/net/* ) + echo -n ${array[@]##*/} + diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/address/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/address/node.def new file mode 100644 index 0000000..8d02285 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/address/node.def @@ -0,0 +1,2 @@ +type: ipv4net +help: IP destination address for this match diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/node.def new file mode 100644 index 0000000..54eef5b --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/node.def @@ -0,0 +1 @@ +help: Match on destination port or address diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/port/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/port/node.def new file mode 100644 index 0000000..fc85c5f --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/destination/port/node.def @@ -0,0 +1,5 @@ +type: txt +help: TCP (or UDP) destination port for this match + +val_help: u32:1-65535; Numeric IP port +val_help: txt; Assigned TCP (or UDP) port name diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/dscp/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/dscp/node.def new file mode 100644 index 0000000..224b002 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/dscp/node.def @@ -0,0 +1,18 @@ +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 }' = 0 && $VAR(@) <= 4095; \ + "VLAN ID must be between 0 and 4095" +val_help: u32:0-4095; Virtual Local Area Network (VLAN) tag diff --git a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.def deleted file mode 100644 index cde128f..0000000 --- a/templates/traffic-policy/limiter/node.tag/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: Class matching rule name diff --git a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/description/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/description/node.def deleted file mode 100644 index 903f260..0000000 --- a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/description/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: txt -help: Description for this match diff --git a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/destination/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/destination/node.def deleted file mode 100644 index 92fb9a9..0000000 --- a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/destination/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet destination address for this match diff --git a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/node.def deleted file mode 100644 index 454c1ed..0000000 --- a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/node.def +++ /dev/null @@ -1 +0,0 @@ -help: Ethernet header match 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 deleted file mode 100644 index ceadb5b..0000000 --- a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def +++ /dev/null @@ -1,14 +0,0 @@ -type: txt -help: Ethernet protocol for this match -allowed: echo \ - all 802.1Q 802_2 802_3 aarp aoe arp atalk \ - dec ip ipv6 ipx lat localtalk rarp snap x25 -val_help: u32:0-65535; Ethernet protocol number -val_help: txt; Ethernet protocol name -val_help: all; Any protocol -val_help: ip; Internet IP (IPv4) -val_help: _ipv6; Internet IP (IPv6) -val_help: arp; Address Resolution Protocol -val_help: atalk; Appletalk -val_help: ipx; Novell Internet Packet Exchange -val_help: 802.1Q; 802.1Q VLAN tag diff --git a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/source/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/source/node.def deleted file mode 100644 index 3094167..0000000 --- a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ether/source/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet source address for this match diff --git a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def deleted file mode 100644 index 8d02285..0000000 --- a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: ipv4net -help: IP destination address for this match diff --git a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/node.def deleted file mode 100644 index 54eef5b..0000000 --- a/templates/traffic-policy/limiter/node.tag/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/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def deleted file mode 100644 index fc85c5f..0000000 --- a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def +++ /dev/null @@ -1,5 +0,0 @@ -type: txt -help: TCP (or UDP) destination port for this match - -val_help: u32:1-65535; Numeric IP port -val_help: txt; Assigned TCP (or UDP) port name diff --git a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def b/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def deleted file mode 100644 index c55127c..0000000 --- a/templates/traffic-policy/limiter/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def +++ /dev/null @@ -1,19 +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 }' = 0 && $VAR(@) <= 4095; "VLAN ID must be between 0 and 4095" - -val_help: u32:0-4095; Virtual Local Area Network (VLAN) tag diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.def deleted file mode 100644 index cde128f..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/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: Class matching rule name diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/description/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/description/node.def deleted file mode 100644 index 903f260..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/description/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: txt -help: Description for this match diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/destination/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/destination/node.def deleted file mode 100644 index 92fb9a9..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/destination/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet destination address for this match diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/node.def deleted file mode 100644 index 454c1ed..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/node.def +++ /dev/null @@ -1 +0,0 @@ -help: Ethernet header match diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def deleted file mode 100644 index 9da50a6..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def +++ /dev/null @@ -1,15 +0,0 @@ -type: txt -help: Ethernet protocol for this match -allowed: echo \ - all 802.1Q 802_2 802_3 aarp aoe arp atalk \ - dec ip ipv6 ipx lat localtalk rarp snap x25 - -val_help: u32:0-65535; Ethernet protocol number -val_help: txt; Ethernet protocol name -val_help: all; Any protocol -val_help: ip; Internet IP (IPv4) -val_help: _ipv6; Internet IP (IPv6) -val_help: arp; Address Resolution Protocol -val_help: atalk; Appletalk -val_help: ipx; Novell Internet Packet Exchange -val_help: 802.1Q; 802.1Q VLAN tag diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/source/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/source/node.def deleted file mode 100644 index 3094167..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ether/source/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet source address for this match diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/interface/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/interface/node.def deleted file mode 100644 index f12c59c..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/interface/node.def +++ /dev/null @@ -1,7 +0,0 @@ -type: txt -help: Interface name for this match -syntax:expression: exec "[ -f /sys/class/net/$VAR(@)/ifindex ]" ; "Interface must already exist" -allowed: local -a array - array=( /sys/class/net/* ) - echo -n ${array[@]##*/} - diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def deleted file mode 100644 index 8d02285..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: ipv4net -help: IP destination address for this match diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/node.def deleted file mode 100644 index 54eef5b..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/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/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def deleted file mode 100644 index fc85c5f..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def +++ /dev/null @@ -1,5 +0,0 @@ -type: txt -help: TCP (or UDP) destination port for this match - -val_help: u32:1-65535; Numeric IP port -val_help: txt; Assigned TCP (or UDP) port name diff --git a/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def b/templates/traffic-policy/priority-queue/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def deleted file mode 100644 index 224b002..0000000 --- a/templates/traffic-policy/priority-queue/node.tag/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 }' = 0 && $VAR(@) <= 4095; \ - "VLAN ID must be between 0 and 4095" -val_help: u32:0-4095; Virtual Local Area Network (VLAN) tag diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.def deleted file mode 100644 index cde128f..0000000 --- a/templates/traffic-policy/round-robin/node.tag/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: Class matching rule name diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/description/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/description/node.def deleted file mode 100644 index 903f260..0000000 --- a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/description/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: txt -help: Description for this match diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/destination/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/destination/node.def deleted file mode 100644 index 92fb9a9..0000000 --- a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/destination/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet destination address for this match diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/node.def deleted file mode 100644 index 454c1ed..0000000 --- a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/node.def +++ /dev/null @@ -1 +0,0 @@ -help: Ethernet header match 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 deleted file mode 100644 index ceadb5b..0000000 --- a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def +++ /dev/null @@ -1,14 +0,0 @@ -type: txt -help: Ethernet protocol for this match -allowed: echo \ - all 802.1Q 802_2 802_3 aarp aoe arp atalk \ - dec ip ipv6 ipx lat localtalk rarp snap x25 -val_help: u32:0-65535; Ethernet protocol number -val_help: txt; Ethernet protocol name -val_help: all; Any protocol -val_help: ip; Internet IP (IPv4) -val_help: _ipv6; Internet IP (IPv6) -val_help: arp; Address Resolution Protocol -val_help: atalk; Appletalk -val_help: ipx; Novell Internet Packet Exchange -val_help: 802.1Q; 802.1Q VLAN tag diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/source/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/source/node.def deleted file mode 100644 index 3094167..0000000 --- a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ether/source/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet source address for this match diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/interface/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/interface/node.def deleted file mode 100644 index f12c59c..0000000 --- a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/interface/node.def +++ /dev/null @@ -1,7 +0,0 @@ -type: txt -help: Interface name for this match -syntax:expression: exec "[ -f /sys/class/net/$VAR(@)/ifindex ]" ; "Interface must already exist" -allowed: local -a array - array=( /sys/class/net/* ) - echo -n ${array[@]##*/} - diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def deleted file mode 100644 index 8d02285..0000000 --- a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: ipv4net -help: IP destination address for this match diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/node.def deleted file mode 100644 index 54eef5b..0000000 --- a/templates/traffic-policy/round-robin/node.tag/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/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def deleted file mode 100644 index fc85c5f..0000000 --- a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def +++ /dev/null @@ -1,5 +0,0 @@ -type: txt -help: TCP (or UDP) destination port for this match - -val_help: u32:1-65535; Numeric IP port -val_help: txt; Assigned TCP (or UDP) port name diff --git a/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def b/templates/traffic-policy/round-robin/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def deleted file mode 100644 index 27d880b..0000000 --- a/templates/traffic-policy/round-robin/node.tag/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 }' = 0 && $VAR(@) <= 4095; \ - "VLAN ID must be between 0 and 4095" -val_help: u32:0-4095; Virtual Local Area Network (VLAN) tag diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.def deleted file mode 100644 index cde128f..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/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: Class matching rule name diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/description/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/description/node.def deleted file mode 100644 index 903f260..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/description/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: txt -help: Description for this match diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/destination/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/destination/node.def deleted file mode 100644 index 92fb9a9..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/destination/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet destination address for this match diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/node.def deleted file mode 100644 index 454c1ed..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/node.def +++ /dev/null @@ -1 +0,0 @@ -help: Ethernet header match diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def deleted file mode 100644 index 9da50a6..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def +++ /dev/null @@ -1,15 +0,0 @@ -type: txt -help: Ethernet protocol for this match -allowed: echo \ - all 802.1Q 802_2 802_3 aarp aoe arp atalk \ - dec ip ipv6 ipx lat localtalk rarp snap x25 - -val_help: u32:0-65535; Ethernet protocol number -val_help: txt; Ethernet protocol name -val_help: all; Any protocol -val_help: ip; Internet IP (IPv4) -val_help: _ipv6; Internet IP (IPv6) -val_help: arp; Address Resolution Protocol -val_help: atalk; Appletalk -val_help: ipx; Novell Internet Packet Exchange -val_help: 802.1Q; 802.1Q VLAN tag diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/source/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/source/node.def deleted file mode 100644 index 3094167..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ether/source/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet source address for this match diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/interface/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/interface/node.def deleted file mode 100644 index f12c59c..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/interface/node.def +++ /dev/null @@ -1,7 +0,0 @@ -type: txt -help: Interface name for this match -syntax:expression: exec "[ -f /sys/class/net/$VAR(@)/ifindex ]" ; "Interface must already exist" -allowed: local -a array - array=( /sys/class/net/* ) - echo -n ${array[@]##*/} - diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def deleted file mode 100644 index 8d02285..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: ipv4net -help: IP destination address for this match diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/node.def deleted file mode 100644 index 54eef5b..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/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/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def deleted file mode 100644 index fc85c5f..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def +++ /dev/null @@ -1,5 +0,0 @@ -type: txt -help: TCP (or UDP) destination port for this match - -val_help: u32:1-65535; Numeric IP port -val_help: txt; Assigned TCP (or UDP) port name diff --git a/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def b/templates/traffic-policy/shaper-hfsc/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def deleted file mode 100644 index 224b002..0000000 --- a/templates/traffic-policy/shaper-hfsc/node.tag/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 }' = 0 && $VAR(@) <= 4095; \ - "VLAN ID must be between 0 and 4095" -val_help: u32:0-4095; Virtual Local Area Network (VLAN) tag diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.def deleted file mode 100644 index cde128f..0000000 --- a/templates/traffic-policy/shaper/node.tag/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: Class matching rule name diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/description/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/description/node.def deleted file mode 100644 index 903f260..0000000 --- a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/description/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: txt -help: Description for this match diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/destination/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/destination/node.def deleted file mode 100644 index 92fb9a9..0000000 --- a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/destination/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet destination address for this match diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/node.def deleted file mode 100644 index 454c1ed..0000000 --- a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/node.def +++ /dev/null @@ -1 +0,0 @@ -help: Ethernet header match 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 deleted file mode 100644 index 9da50a6..0000000 --- a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/protocol/node.def +++ /dev/null @@ -1,15 +0,0 @@ -type: txt -help: Ethernet protocol for this match -allowed: echo \ - all 802.1Q 802_2 802_3 aarp aoe arp atalk \ - dec ip ipv6 ipx lat localtalk rarp snap x25 - -val_help: u32:0-65535; Ethernet protocol number -val_help: txt; Ethernet protocol name -val_help: all; Any protocol -val_help: ip; Internet IP (IPv4) -val_help: _ipv6; Internet IP (IPv6) -val_help: arp; Address Resolution Protocol -val_help: atalk; Appletalk -val_help: ipx; Novell Internet Packet Exchange -val_help: 802.1Q; 802.1Q VLAN tag diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/source/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/source/node.def deleted file mode 100644 index 3094167..0000000 --- a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ether/source/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: macaddr -help: Ethernet source address for this match diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/interface/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/interface/node.def deleted file mode 100644 index f12c59c..0000000 --- a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/interface/node.def +++ /dev/null @@ -1,7 +0,0 @@ -type: txt -help: Interface name for this match -syntax:expression: exec "[ -f /sys/class/net/$VAR(@)/ifindex ]" ; "Interface must already exist" -allowed: local -a array - array=( /sys/class/net/* ) - echo -n ${array[@]##*/} - diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def deleted file mode 100644 index 8d02285..0000000 --- a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/address/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: ipv4net -help: IP destination address for this match diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/node.def deleted file mode 100644 index 54eef5b..0000000 --- a/templates/traffic-policy/shaper/node.tag/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/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def deleted file mode 100644 index fc85c5f..0000000 --- a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/destination/port/node.def +++ /dev/null @@ -1,5 +0,0 @@ -type: txt -help: TCP (or UDP) destination port for this match - -val_help: u32:1-65535; Numeric IP port -val_help: txt; Assigned TCP (or UDP) port name diff --git a/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def b/templates/traffic-policy/shaper/node.tag/class/node.tag/match/node.tag/ip/dscp/node.def deleted file mode 100644 index 224b002..0000000 --- a/templates/traffic-policy/shaper/node.tag/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 }' = 0 && $VAR(@) <= 4095; \ - "VLAN ID must be between 0 and 4095" -val_help: u32:0-4095; Virtual Local Area Network (VLAN) tag -- cgit v1.2.3 From 0ca79b8de754d36f4c666a51ca321f7186ca7110 Mon Sep 17 00:00:00 2001 From: kouak Date: Wed, 25 Mar 2015 14:23:51 +0100 Subject: Add TCP SYN/ACK and IP max length matching (#513) --- lib/Vyatta/Qos/Match.pm | 47 +++++++++++++++++++++- .../node.tag/match/node.tag/ip/max-length/node.def | 5 +++ .../node.tag/match/node.tag/ip/tcp/ack/node.def | 1 + .../class/node.tag/match/node.tag/ip/tcp/node.def | 1 + .../node.tag/match/node.tag/ip/tcp/syn/node.def | 1 + .../match/node.tag/ipv6/max-length/node.def | 5 +++ .../node.tag/match/node.tag/ipv6/tcp/ack/node.def | 1 + .../node.tag/match/node.tag/ipv6/tcp/node.def | 1 + .../node.tag/match/node.tag/ipv6/tcp/syn/node.def | 1 + 9 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/max-length/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/ack/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/syn/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/max-length/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/ack/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/node.def create mode 100644 templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/syn/node.def diff --git a/lib/Vyatta/Qos/Match.pm b/lib/Vyatta/Qos/Match.pm index 176748c..c8078b6 100644 --- a/lib/Vyatta/Qos/Match.pm +++ b/lib/Vyatta/Qos/Match.pm @@ -67,13 +67,25 @@ sub new { my $dst = $config->returnValue("$af destination address"); my $sport = $config->returnValue("$af source port"); my $dport = $config->returnValue("$af destination port"); - + my $maxlen = $config->returnValue("$af max-length"); + my $tcpsyn = $config->exists("$af tcp syn"); + my $tcpack = $config->exists("$af tcp ack"); + $fields{dsfield} = getDsfield($dsfield) if $dsfield; $fields{protocol} = getProtocol($ipprot) if $ipprot; $fields{src} = $src if $src; $fields{dst} = $dst if $dst; $fields{sport} = getPort( $sport, $ipprot ) if $sport; $fields{dport} = getPort( $dport, $ipprot ) if $dport; + $fields{maxlen} = $maxlen if $maxlen; + $fields{tcpsyn} = $tcpsyn; + $fields{tcpack} = $tcpack; + + # Reject any protocol apart from tcp if tcp syn or tcp ack are set + if($tcpsyn or $tcpack) { + die "Protocol cannot be different from tcp" if defined $fields{protocol} and $fields{protocol} ne getProtocol('tcp'); + $fields{protocol} = getProtocol('tcp'); + } } # if the hash is empty then we didn't generate a match rule @@ -141,7 +153,7 @@ sub filter { my $type = $$p{protocol}; $type = 'all' unless $type; - print " protocol $type u32"; + print " protocol $type u32"; if ( defined( $$p{src} ) || defined( $$p{dst} ) ) { print " match ether src $$p{src}" if $$p{src}; print " match ether dst $$p{dst}" if $$p{dst}; @@ -166,6 +178,37 @@ sub filter { print " match $sel sport $$p{sport} 0xffff" if $$p{sport}; print " match $sel dst $$p{dst}" if $$p{dst}; print " match $sel dport $$p{dport} 0xffff" if $$p{dport}; + # Max Length : + # Will match against total length of an IPv4 packet and payload length of an IPv6 packet. + # IPv4 : match u16 0x0000 ~MAXLEN at 2 + # IPv6 : match u16 0x0000 ~MAXLEN at 4 + if ($$p{maxlen}) { + if ( $proto eq 'ip' ) { + printf " match u16 0x0000 %#.4x at 2", (hex('0xFFFF') & ~($$p{maxlen})); + } elsif ( $proto eq 'ipv6' ) { + printf " match u16 0x0000 %#.4x at 4", (hex('0xFFFF') & ~($$p{maxlen})); + } + } + # TCP Flags : + # Will match against specific TCP flags + # We will assume the IPv4 header length is 20 bytes + # We will assume the IPv6 packet is not using extension headers (hence a ip header length of 40 bytes) + # TCP Flags are set on byte 13 of the TCP header. + # IPv4 : match u8 X X at 33 + # IPv6 : match u8 X X at 53 + # with X = 0x02 for SYN and X = 0x10 for ACK + if ($$p{tcpsyn} or $$p{tcpack}) { + # Let's build the binary mask + my $mask = 0; + $mask |= 0x02 if $$p{tcpsyn}; + $mask |= 0x10 if $$p{tcpack}; + + if ( $proto eq 'ip' ) { + printf " match u8 %#.2x %#.2x at 33", $mask, $mask; + } elsif ( $proto eq 'ipv6' ) { + printf " match u8 %#.2x %#.2x at 53", $mask, $mask; + } + } } print " match mark $fwmark 0xff" if $fwmark; diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/max-length/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/max-length/node.def new file mode 100644 index 0000000..35bc356 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/max-length/node.def @@ -0,0 +1,5 @@ +type: u32 +help: Maximum packet length (ipv4) +syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 65535; \ + "Maximum IPv4 total packet length is 65535" +val_help: u32:0-65535; Maximum packet/payload length diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/ack/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/ack/node.def new file mode 100644 index 0000000..8ba48e0 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/ack/node.def @@ -0,0 +1 @@ +help: Match TCP ACK diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/node.def new file mode 100644 index 0000000..983f832 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/node.def @@ -0,0 +1 @@ +help: TCP Flags matching diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/syn/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/syn/node.def new file mode 100644 index 0000000..f6b37dc --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ip/tcp/syn/node.def @@ -0,0 +1 @@ +help: Match TCP SYN diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/max-length/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/max-length/node.def new file mode 100644 index 0000000..8e4416f --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/max-length/node.def @@ -0,0 +1,5 @@ +type: u32 +help: Maximum payload length +syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 65535; \ + "Maximum payload length must be >= 0 and < 65535" +val_help: u32:0-65535; Maximum packet/payload length diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/ack/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/ack/node.def new file mode 100644 index 0000000..8ba48e0 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/ack/node.def @@ -0,0 +1 @@ +help: Match TCP ACK diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/node.def new file mode 100644 index 0000000..983f832 --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/node.def @@ -0,0 +1 @@ +help: TCP Flags matching diff --git a/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/syn/node.def b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/syn/node.def new file mode 100644 index 0000000..f6b37dc --- /dev/null +++ b/templates-skeleton/qos-match-templates/class/node.tag/match/node.tag/ipv6/tcp/syn/node.def @@ -0,0 +1 @@ +help: Match TCP SYN -- cgit v1.2.3