# HG changeset patch # User "Tomas Zeman " # Date 1257500778 -3600 # Node ID c13b1f7bebc16663468dcf4a3f74f39013452e81 # Parent 3a26769e5d6f6bd458f8eb4f31146434bc651975 ciena.grammar: simpler per-port vlans diff -r 3a26769e5d6f -r c13b1f7bebc1 ciena.grammar --- a/ciena.grammar Fri Nov 06 09:56:53 2009 +0100 +++ b/ciena.grammar Fri Nov 06 10:46:18 2009 +0100 @@ -272,17 +272,12 @@ } $vlan_range = {}; } - | "vlan" "add" "vlan" vlan_range "port" port_num + | "vlan" /add|remove/ "vlan" vlan_range "port" port_num { + my $action = ($item[2] =~ /remove/) ? 0 : 1; foreach my $vlan (keys %$vlan_range) { - $::res->{port}->{$item{port_num}}->{vlans}->{$vlan} = 1; + $::res->{port}->{$item{port_num}}->{vlans}->{$vlan} = $action; } $vlan_range = {}; } - | "vlan" "remove" "vlan" vlan_range "port" port_num - { - foreach my $vlan (keys %$vlan_range) { - delete $::res->{port}->{$item{port_num}}->{vlans}->{$vlan}; - } - $vlan_range = {}; - } +