124 { $arg{ctx}->{$arg{key}}->{$item[1]} = 1 } |
125 { $arg{ctx}->{$arg{key}}->{$item[1]} = 1 } |
125 vlan_range: vlan_s_range","vlan_range |
126 vlan_range: vlan_s_range","vlan_range |
126 | vlan_s_range |
127 | vlan_s_range |
127 |
128 |
128 # interface section |
129 # interface section |
129 iface_name: /\w+\d+[0-9\/\.:]*/ |
130 iface_name: /\w+(-\w+)?\d+[0-9\/\.:]*/ |
130 { $item[1] } |
131 { $item[1] } |
131 |
132 |
132 s_interface: "0" "interface" iface_name /\S*/ eol s_interface_l[ctx => ctx("interface", $item{iface_name}) ](s) "0" "!" eol |
133 s_interface: "0" "interface" iface_name /\S*/ eol s_interface_l[ctx => ctx("interface", $item{iface_name}) ](s) "0" "!" eol |
133 { |
134 { |
134 $::res->{interface}->{$item{iface_name}}->{type} = $item[4] |
135 $::res->{interface}->{$item{iface_name}}->{type} = $item[4] |
162 | "switchport" "access" "vlan" num |
163 | "switchport" "access" "vlan" num |
163 { $arg{ctx}->{vlan} = $item{num} } |
164 { $arg{ctx}->{vlan} = $item{num} } |
164 | "switchport" "trunk" "encapsulation" keyword |
165 | "switchport" "trunk" "encapsulation" keyword |
165 { $arg{ctx}->{"trunk-encap"} = $item{keyword} } |
166 { $arg{ctx}->{"trunk-encap"} = $item{keyword} } |
166 | "switchport" "trunk" "allowed" "vlan" vlan_range[ctx => $arg{ctx}, key => "vlan"] |
167 | "switchport" "trunk" "allowed" "vlan" vlan_range[ctx => $arg{ctx}, key => "vlan"] |
|
168 | "channel-group" num "mode" keyword |
|
169 { $arg{ctx}->{"channel-group"}->{$item{num}}->{mode} = $item{keyword} } |
|
170 | "ip" "vrf" "forwarding" word |
|
171 { $arg{ctx}->{"ip-vrf-fwd"} = $item{word} } |
|
172 |
|
173 # vrf section |
|
174 s_vrf: "0" "ip" "vrf" keyword eol s_vrf_l[ctx => ctx("vrf", $item{keyword}) ](s) "0" "!" eol |
|
175 |
|
176 s_vrf_l: "1" s_vrf_content[ctx => $arg{ctx}] eol |
|
177 | l_section |
|
178 |
|
179 rd_val: /\d+:\d+/ |
|
180 { $item[1] } |
|
181 |
|
182 s_vrf_content: l_description[ctx => $arg{ctx}] |
|
183 | "rd" rd_val |
|
184 { $arg{ctx}->{rd} = $item{rd_val} } |
|
185 | "export" "map" keyword |
|
186 { $arg{ctx}->{"export-map"} = $item{keyword} } |
|
187 | "route-target" /export|import/ rd_val |
|
188 { |
|
189 $arg{ctx}->{"route-target"}->{$item[2]} = [] |
|
190 unless exists $arg{ctx}->{"route-target"}->{$item[2]}; |
|
191 push @{$arg{ctx}->{"route-target"}->{$item[2]}}, $item{rd_val}; |
|
192 } |
|
193 |