--- 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 = {};
- }
+