rbeapi 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/.gitignore +3 -0
  2. data/CHANGELOG.md +20 -0
  3. data/Gemfile +1 -1
  4. data/README.md +11 -11
  5. data/Rakefile +19 -0
  6. data/guide/Makefile +177 -0
  7. data/guide/_static/arista_logo_11-trans-w.png +0 -0
  8. data/guide/_static/arista_logo_jpg-11.jpg +0 -0
  9. data/guide/_static/favicon.ico +0 -0
  10. data/guide/conf.py +279 -0
  11. data/guide/cookbook.rst +4 -0
  12. data/guide/developing.rst +4 -0
  13. data/guide/faq.rst +4 -0
  14. data/guide/index.rst +23 -0
  15. data/guide/installation.rst +4 -0
  16. data/guide/license.rst +5 -0
  17. data/guide/overview.rst +20 -0
  18. data/guide/quickstart.rst +4 -0
  19. data/guide/release-notes-0.5.0.rst +60 -0
  20. data/guide/release-notes.rst +6 -0
  21. data/guide/testing.rst +4 -0
  22. data/guide/troubleshooting.rst +1 -0
  23. data/lib/rbeapi/api/aaa.rb +54 -18
  24. data/lib/rbeapi/api/acl.rb +60 -2
  25. data/lib/rbeapi/api/bgp.rb +81 -0
  26. data/lib/rbeapi/api/dns.rb +48 -2
  27. data/lib/rbeapi/api/interfaces.rb +97 -32
  28. data/lib/rbeapi/api/ipinterfaces.rb +13 -2
  29. data/lib/rbeapi/api/logging.rb +11 -2
  30. data/lib/rbeapi/api/mlag.rb +20 -10
  31. data/lib/rbeapi/api/ntp.rb +4 -3
  32. data/lib/rbeapi/api/ospf.rb +102 -10
  33. data/lib/rbeapi/api/prefixlists.rb +47 -4
  34. data/lib/rbeapi/api/radius.rb +9 -9
  35. data/lib/rbeapi/api/routemaps.rb +7 -5
  36. data/lib/rbeapi/api/snmp.rb +13 -4
  37. data/lib/rbeapi/api/staticroutes.rb +1 -1
  38. data/lib/rbeapi/api/stp.rb +39 -14
  39. data/lib/rbeapi/api/switchports.rb +126 -2
  40. data/lib/rbeapi/api/system.rb +24 -3
  41. data/lib/rbeapi/api/tacacs.rb +9 -10
  42. data/lib/rbeapi/api/users.rb +12 -3
  43. data/lib/rbeapi/api/varp.rb +40 -8
  44. data/lib/rbeapi/api/vlans.rb +15 -5
  45. data/lib/rbeapi/client.rb +19 -11
  46. data/lib/rbeapi/eapilib.rb +8 -0
  47. data/lib/rbeapi/utils.rb +10 -0
  48. data/lib/rbeapi/version.rb +1 -1
  49. data/spec/fixtures/eapi.conf.yaml +6 -0
  50. data/spec/fixtures/empty.conf +0 -0
  51. data/spec/fixtures/env_path.conf +5 -0
  52. data/spec/fixtures/test.conf +39 -0
  53. data/spec/fixtures/wildcard.conf +43 -0
  54. data/spec/system/rbeapi/api/aaa_groups_spec.rb +122 -0
  55. data/spec/system/rbeapi/api/aaa_spec.rb +90 -0
  56. data/spec/system/{api_acl_spec.rb → rbeapi/api/acl_spec.rb} +0 -0
  57. data/spec/system/rbeapi/api/bgp_neighbors_spec.rb +354 -0
  58. data/spec/system/rbeapi/api/bgp_spec.rb +275 -0
  59. data/spec/system/rbeapi/api/dns_spec.rb +17 -1
  60. data/spec/system/rbeapi/api/interfaces_base_spec.rb +46 -5
  61. data/spec/system/rbeapi/api/interfaces_ethernet_spec.rb +14 -0
  62. data/spec/system/rbeapi/api/interfaces_portchannel_spec.rb +68 -0
  63. data/spec/system/rbeapi/api/interfaces_vxlan_spec.rb +0 -1
  64. data/spec/system/{api_ospf_interfaces_spec.rb → rbeapi/api/ospf_interfaces_spec.rb} +3 -2
  65. data/spec/system/{api_ospf_spec.rb → rbeapi/api/ospf_spec.rb} +11 -2
  66. data/spec/system/rbeapi/api/routemaps_spec.rb +3 -4
  67. data/spec/system/rbeapi/api/snmp_spec.rb +65 -0
  68. data/spec/system/rbeapi/api/staticroutes_spec.rb +177 -0
  69. data/spec/system/rbeapi/api/stp_instances_spec.rb +20 -0
  70. data/spec/system/rbeapi/api/stp_interfaces_spec.rb +7 -0
  71. data/spec/system/rbeapi/api/switchports_spec.rb +86 -16
  72. data/spec/system/rbeapi/api/users_spec.rb +324 -0
  73. data/spec/system/rbeapi/api/varp_interfaces_spec.rb +34 -0
  74. data/spec/system/rbeapi/api/vrrp_spec.rb +707 -0
  75. data/spec/system/rbeapi/client_spec.rb +367 -0
  76. data/spec/unit/rbeapi/api/aaa/aaa_groups_spec.rb +111 -0
  77. data/spec/unit/rbeapi/api/aaa/aaa_spec.rb +77 -0
  78. data/spec/unit/rbeapi/api/aaa/fixture_aaa.text +3 -0
  79. data/spec/unit/rbeapi/api/switchports/default_spec.rb +249 -0
  80. data/spec/unit/rbeapi/api/switchports/fixture_switchports.text +284 -0
  81. data/spec/unit/rbeapi/api/users/default_spec.rb +1 -1
  82. data/spec/unit/rbeapi/client_spec.rb +211 -0
  83. metadata +65 -10
@@ -0,0 +1,77 @@
1
+ #
2
+ # Copyright (c) 2015, Arista Networks, Inc.
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are
7
+ # met:
8
+ #
9
+ # Redistributions of source code must retain the above copyright notice,
10
+ # this list of conditions and the following disclaimer.
11
+ #
12
+ # Redistributions in binary form must reproduce the above copyright
13
+ # notice, this list of conditions and the following disclaimer in the
14
+ # documentation and/or other materials provided with the distribution.
15
+ #
16
+ # Neither the name of Arista Networks nor the names of its
17
+ # contributors may be used to endorse or promote products derived from
18
+ # this software without specific prior written permission.
19
+ #
20
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ARISTA NETWORKS
24
+ # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
27
+ # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28
+ # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
29
+ # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
30
+ # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ #
32
+ require 'spec_helper'
33
+
34
+ require 'rbeapi/api/aaa'
35
+
36
+ include FixtureHelpers
37
+
38
+ describe Rbeapi::Api::Aaa do
39
+ subject { described_class.new(node) }
40
+
41
+ let(:node) { double('node') }
42
+
43
+ let(:test) do
44
+ {
45
+ groups: {
46
+ 'blah' => {
47
+ type: 'radius',
48
+ servers: []
49
+ }
50
+ }
51
+ }
52
+ end
53
+
54
+ def aaa
55
+ aaa = Fixtures[:aaa]
56
+ return aaa if aaa
57
+ fixture('aaa', format: :text, dir: File.dirname(__FILE__))
58
+ end
59
+
60
+ before :each do
61
+ allow(subject.node).to receive(:running_config).and_return(aaa)
62
+ end
63
+
64
+ describe '#get' do
65
+ it 'returns the resource for given name' do
66
+ expect(subject.get).to eq(test)
67
+ end
68
+
69
+ it 'returns a hash' do
70
+ expect(subject.get).to be_a_kind_of(Hash)
71
+ end
72
+
73
+ it 'has two entries' do
74
+ expect(subject.get.size).to eq(1)
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,3 @@
1
+ aaa group server radius blah
2
+ no aaa root
3
+ aaa authentication policy local allow-nopassword-remote-login
@@ -0,0 +1,249 @@
1
+ #
2
+ # Copyright (c) 2016, Arista Networks, Inc.
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are
7
+ # met:
8
+ #
9
+ # Redistributions of source code must retain the above copyright notice,
10
+ # this list of conditions and the following disclaimer.
11
+ #
12
+ # Redistributions in binary form must reproduce the above copyright
13
+ # notice, this list of conditions and the following disclaimer in the
14
+ # documentation and/or other materials provided with the distribution.
15
+ #
16
+ # Neither the name of Arista Networks nor the names of its
17
+ # contributors may be used to endorse or promote products derived from
18
+ # this software without specific prior written permission.
19
+ #
20
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ARISTA NETWORKS
24
+ # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
27
+ # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28
+ # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
29
+ # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
30
+ # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ #
32
+ require 'spec_helper'
33
+
34
+ require 'rbeapi/api/switchports'
35
+
36
+ include FixtureHelpers
37
+
38
+ describe Rbeapi::Api::Switchports do
39
+ subject { described_class.new(node) }
40
+
41
+ let(:node) { double('node') }
42
+
43
+ def switchports
44
+ switchports = Fixtures[:switchports]
45
+ return switchports if switchports
46
+ fixture('switchports', format: :text, dir: File.dirname(__FILE__))
47
+ end
48
+
49
+ before :each do
50
+ allow(subject.node).to receive(:running_config).and_return(switchports)
51
+ end
52
+
53
+ describe '#get' do
54
+ let(:keys) do
55
+ [:mode, :access_vlan, :trunk_native_vlan, :trunk_allowed_vlans,
56
+ :trunk_groups]
57
+ end
58
+
59
+ context 'vlan as an integer range' do
60
+ it 'returns the switchport resource' do
61
+ expect(subject.get('Ethernet1')).not_to be_nil
62
+ end
63
+
64
+ it 'does not return a nonswitchport resource' do
65
+ expect(subject.get('Ethernet2')).to be_nil
66
+ end
67
+
68
+ it 'has all required keys' do
69
+ expect(subject.get('Ethernet1').keys).to eq(keys)
70
+ end
71
+
72
+ it 'returns allowed_vlans as an array' do
73
+ expect(subject.get('Ethernet1')[:trunk_allowed_vlans])
74
+ .to be_a_kind_of(Array)
75
+ end
76
+ end
77
+
78
+ context 'vlan as an integer' do
79
+ it 'returns the switchport resource' do
80
+ expect(subject.get('Ethernet1')).not_to be_nil
81
+ end
82
+ end
83
+ end
84
+
85
+ describe '#getall' do
86
+ it 'returns the switchport collection' do
87
+ expect(subject.getall).to include('Ethernet1')
88
+ end
89
+
90
+ it 'returns a hash collection' do
91
+ expect(subject.getall).to be_a_kind_of(Hash)
92
+ end
93
+
94
+ it 'returns a hash collection' do
95
+ expect(subject.getall.count).to eq(1)
96
+ end
97
+ end
98
+
99
+ describe '#create' do
100
+ it 'creates a new switchport resource' do
101
+ expect(node).to receive(:config)
102
+ .with(['interface Ethernet1', 'no ip address', 'switchport'])
103
+ expect(subject.create('Ethernet1')).to be_truthy
104
+ end
105
+ end
106
+
107
+ describe '#delete' do
108
+ it 'deletes a switchport resource' do
109
+ expect(node).to receive(:config)
110
+ .with(['interface Ethernet1', 'no switchport'])
111
+ expect(subject.delete('Ethernet1')).to be_truthy
112
+ end
113
+ end
114
+
115
+ describe '#default' do
116
+ it 'sets Ethernet1 to default' do
117
+ expect(node).to receive(:config)
118
+ .with(['interface Ethernet1', 'default switchport'])
119
+ expect(subject.default('Ethernet1')).to be_truthy
120
+ end
121
+ end
122
+
123
+ describe '#set_mode' do
124
+ it 'sets mode value to access' do
125
+ expect(node).to receive(:config)
126
+ .with(['interface Ethernet1', 'switchport mode access'])
127
+ expect(subject.set_mode('Ethernet1', value: 'access')).to be_truthy
128
+ end
129
+
130
+ it 'sets the mode value to trunk' do
131
+ expect(node).to receive(:config)
132
+ .with(['interface Ethernet1', 'switchport mode trunk'])
133
+ expect(subject.set_mode('Ethernet1', value: 'trunk')).to be_truthy
134
+ end
135
+
136
+ it 'negate the mode value' do
137
+ expect(node).to receive(:config)
138
+ .with(['interface Ethernet1', 'no switchport mode'])
139
+ expect(subject.set_mode('Ethernet1', enable: false)).to be_truthy
140
+ end
141
+
142
+ it 'default the mode value' do
143
+ expect(node).to receive(:config)
144
+ .with(['interface Ethernet1', 'default switchport mode'])
145
+ expect(subject.set_mode('Ethernet1', default: true)).to be_truthy
146
+ end
147
+ end
148
+
149
+ describe '#set_access_vlan' do
150
+ it 'sets the access vlan value to 100' do
151
+ expect(node).to receive(:config)
152
+ .with(['interface Ethernet1', 'switchport access vlan 100'])
153
+ expect(subject.set_access_vlan('Ethernet1', value: '100')).to be_truthy
154
+ end
155
+
156
+ it 'negates the access vlan value' do
157
+ expect(node).to receive(:config)
158
+ .with(['interface Ethernet1', 'no switchport access vlan'])
159
+ expect(subject.set_access_vlan('Ethernet1', enable: false)).to be_truthy
160
+ end
161
+
162
+ it 'defaults the access vlan value' do
163
+ expect(node).to receive(:config)
164
+ .with(['interface Ethernet1', 'default switchport access vlan'])
165
+ expect(subject.set_access_vlan('Ethernet1', default: true)).to be_truthy
166
+ end
167
+ end
168
+
169
+ describe '#set_trunk_native_vlan' do
170
+ it 'sets the trunk native vlan to 100' do
171
+ expect(node).to receive(:config)
172
+ .with(['interface Ethernet1', 'switchport trunk native vlan 100'])
173
+ expect(subject.set_trunk_native_vlan('Ethernet1', value: '100'))
174
+ .to be_truthy
175
+ end
176
+
177
+ it 'negates the trunk native vlan' do
178
+ expect(node).to receive(:config)
179
+ .with(['interface Ethernet1', 'no switchport trunk native vlan'])
180
+ expect(subject.set_trunk_native_vlan('Ethernet1', enable: false))
181
+ .to be_truthy
182
+ end
183
+
184
+ it 'defaults the trunk native vlan' do
185
+ expect(node).to receive(:config)
186
+ .with(['interface Ethernet1', 'default switchport trunk native vlan'])
187
+ expect(subject.set_trunk_native_vlan('Ethernet1', default: true))
188
+ .to be_truthy
189
+ end
190
+ end
191
+
192
+ describe '#set_trunk_allowed_vlans' do
193
+ it 'raises an ArgumentError if value is not an array' do
194
+ expect { subject.set_trunk_allowed_vlans('Ethernet1', value: '1-100') }
195
+ .to raise_error(ArgumentError)
196
+ end
197
+
198
+ it 'sets vlan 8 and 9 to the trunk allowed vlans' do
199
+ expect(node).to receive(:config)
200
+ .with(['interface Ethernet1', 'switchport trunk allowed vlan none',
201
+ 'switchport trunk allowed vlan 8,9'])
202
+ expect(subject.set_trunk_allowed_vlans('Ethernet1', value: [8, 9]))
203
+ .to be_truthy
204
+ end
205
+
206
+ it 'negate switchport trunk allowed vlan' do
207
+ expect(node).to receive(:config)
208
+ .with(['interface Ethernet1', 'no switchport trunk allowed vlan'])
209
+ expect(subject.set_trunk_allowed_vlans('Ethernet1', enable: false))
210
+ .to be_truthy
211
+ end
212
+
213
+ it 'default switchport trunk allowed vlan' do
214
+ expect(node).to receive(:config)
215
+ .with(['interface Ethernet1', 'default switchport trunk allowed vlan'])
216
+ expect(subject.set_trunk_allowed_vlans('Ethernet1', default: true))
217
+ .to be_truthy
218
+ end
219
+ end
220
+
221
+ describe '#set_trunk_groups' do
222
+ it 'raises an ArgumentError if value is not an array' do
223
+ expect { subject.set_trunk_groups('Ethernet1', value: 'foo') }
224
+ .to raise_error(ArgumentError)
225
+ end
226
+
227
+ it 'sets trunk group to foo bar bang' do
228
+ expect(node).to receive(:config)
229
+ .with(['interface Ethernet1', 'switchport trunk group foo',
230
+ 'switchport trunk group bar', 'switchport trunk group bang'])
231
+ expect(subject.set_trunk_groups('Ethernet1', value: %w(foo bar bang)))
232
+ .to be_truthy
233
+ end
234
+
235
+ it 'negate switchport trunk group' do
236
+ expect(node).to receive(:config)
237
+ .with(['interface Ethernet1', 'no switchport trunk group'])
238
+ expect(subject.set_trunk_groups('Ethernet1', enable: false))
239
+ .to be_truthy
240
+ end
241
+
242
+ it 'default switchport trunk group' do
243
+ expect(node).to receive(:config)
244
+ .with(['interface Ethernet1', 'default switchport trunk group'])
245
+ expect(subject.set_trunk_groups('Ethernet1', default: true))
246
+ .to be_truthy
247
+ end
248
+ end
249
+ end
@@ -0,0 +1,284 @@
1
+ interface Ethernet1
2
+ no description
3
+ no shutdown
4
+ default load-interval
5
+ logging event link-status use-global
6
+ no dcbx mode
7
+ no mac-address
8
+ no link-debounce
9
+ no flowcontrol send
10
+ no flowcontrol receive
11
+ no mac timestamp
12
+ no speed
13
+ no l2 mtu
14
+ default logging event congestion-drops
15
+ default unidirectional
16
+ switchport access vlan 1
17
+ switchport trunk native vlan 1
18
+ switchport trunk allowed vlan 1-4094
19
+ switchport mode access
20
+ switchport mac address learning
21
+ no switchport private-vlan mapping
22
+ switchport
23
+ default encapsulation dot1q vlan
24
+ no l2-protocol encapsulation dot1q vlan 0
25
+ snmp trap link-status
26
+ no channel-group
27
+ lacp rate normal
28
+ lacp port-priority 32768
29
+ lldp transmit
30
+ lldp receive
31
+ no msrp
32
+ no mvrp
33
+ no switchport port-security
34
+ switchport port-security maximum 1
35
+ default qos trust
36
+ qos cos 5
37
+ qos dscp 2
38
+ no shape rate
39
+ mc-tx-queue 0
40
+ priority strict
41
+ no bandwidth percent
42
+ no shape rate
43
+ no bandwidth guaranteed
44
+ !
45
+ mc-tx-queue 1
46
+ priority strict
47
+ no bandwidth percent
48
+ no shape rate
49
+ no bandwidth guaranteed
50
+ !
51
+ mc-tx-queue 2
52
+ priority strict
53
+ no bandwidth percent
54
+ no shape rate
55
+ no bandwidth guaranteed
56
+ !
57
+ mc-tx-queue 3
58
+ priority strict
59
+ no bandwidth percent
60
+ no shape rate
61
+ no bandwidth guaranteed
62
+ !
63
+ uc-tx-queue 0
64
+ priority strict
65
+ no bandwidth percent
66
+ no shape rate
67
+ no bandwidth guaranteed
68
+ !
69
+ uc-tx-queue 1
70
+ priority strict
71
+ no bandwidth percent
72
+ no shape rate
73
+ no bandwidth guaranteed
74
+ !
75
+ uc-tx-queue 2
76
+ priority strict
77
+ no bandwidth percent
78
+ no shape rate
79
+ no bandwidth guaranteed
80
+ !
81
+ uc-tx-queue 3
82
+ priority strict
83
+ no bandwidth percent
84
+ no shape rate
85
+ no bandwidth guaranteed
86
+ !
87
+ uc-tx-queue 4
88
+ priority strict
89
+ no bandwidth percent
90
+ no shape rate
91
+ no bandwidth guaranteed
92
+ !
93
+ uc-tx-queue 5
94
+ priority strict
95
+ no bandwidth percent
96
+ no shape rate
97
+ no bandwidth guaranteed
98
+ !
99
+ uc-tx-queue 6
100
+ priority strict
101
+ no bandwidth percent
102
+ no shape rate
103
+ no bandwidth guaranteed
104
+ !
105
+ uc-tx-queue 7
106
+ priority strict
107
+ no bandwidth percent
108
+ no shape rate
109
+ no bandwidth guaranteed
110
+ sflow enable
111
+ no spanning-tree portfast
112
+ spanning-tree portfast auto
113
+ no spanning-tree link-type
114
+ no spanning-tree bpduguard
115
+ no spanning-tree bpdufilter
116
+ no spanning-tree cost
117
+ spanning-tree port-priority 128
118
+ no spanning-tree guard
119
+ no spanning-tree bpduguard rate-limit
120
+ logging event spanning-tree use-global
121
+ switchport tap native vlan 1
122
+ no switchport tap identity
123
+ switchport tap allowed vlan 1-4094
124
+ switchport tool allowed vlan 1-4094
125
+ no switchport tool identity
126
+ no switchport tap truncation
127
+ no switchport tool truncation
128
+ no switchport tap default group
129
+ no switchport tool group
130
+ no switchport tool dot1q remove outer
131
+ !
132
+ interface Ethernet2
133
+ no description
134
+ no shutdown
135
+ default load-interval
136
+ mtu 1500
137
+ logging event link-status use-global
138
+ no dcbx mode
139
+ no mac-address
140
+ no link-debounce
141
+ no flowcontrol send
142
+ no flowcontrol receive
143
+ no mac timestamp
144
+ no speed
145
+ no l2 mtu
146
+ default logging event congestion-drops
147
+ default unidirectional
148
+ no switchport
149
+ default encapsulation dot1q vlan
150
+ no l2-protocol encapsulation dot1q vlan 0
151
+ snmp trap link-status
152
+ no ip proxy-arp
153
+ no ip local-proxy-arp
154
+ no ip address
155
+ no ip verify unicast
156
+ default arp timeout 14400
157
+ default ipv6 nd cache expire 14400
158
+ bfd interval 300 min_rx 300 multiplier 3
159
+ no bfd echo
160
+ default ip dhcp smart-relay
161
+ no ip helper-address
162
+ no ipv6 dhcp relay destination
163
+ ip dhcp relay information option circuit-id Ethernet2
164
+ no ip igmp
165
+ ip igmp version 3
166
+ ip igmp last-member-query-count 2
167
+ ip igmp last-member-query-interval 10
168
+ ip igmp query-max-response-time 100
169
+ ip igmp query-interval 125
170
+ ip igmp startup-query-count 2
171
+ ip igmp startup-query-interval 310
172
+ ip igmp router-alert optional connected
173
+ ip igmp host-proxy
174
+ no ip igmp host-proxy report-interval
175
+ ip igmp host-proxy version 3
176
+ no ip igmp host-proxy
177
+ no ipv6 enable
178
+ no ipv6 address
179
+ no ipv6 verify unicast
180
+ no ipv6 nd ra suppress
181
+ ipv6 nd ra interval msec 200000
182
+ ipv6 nd ra lifetime 1800
183
+ no ipv6 nd ra mtu suppress
184
+ no ipv6 nd managed-config-flag
185
+ no ipv6 nd other-config-flag
186
+ ipv6 nd reachable-time 0
187
+ ipv6 nd router-preference medium
188
+ ipv6 nd ra dns-servers lifetime 300
189
+ ipv6 nd ra dns-suffixes lifetime 300
190
+ ipv6 nd ra hop-limit 64
191
+ no channel-group
192
+ lacp rate normal
193
+ lacp port-priority 32768
194
+ lldp transmit
195
+ lldp receive
196
+ ip mfib fastdrop
197
+ no msrp
198
+ no mvrp
199
+ default ntp serve
200
+ no ip pim sparse-mode
201
+ no ip pim border-router
202
+ ip pim query-interval 30
203
+ ip pim join-prune-interval 60
204
+ ip pim dr-priority 1
205
+ no ip pim neighbor-filter
206
+ default ip pim bfd-instance
207
+ no ip pim bsr-border
208
+ default qos trust
209
+ qos cos 5
210
+ qos dscp 2
211
+ no shape rate
212
+ mc-tx-queue 0
213
+ priority strict
214
+ no bandwidth percent
215
+ no shape rate
216
+ no bandwidth guaranteed
217
+ !
218
+ mc-tx-queue 1
219
+ priority strict
220
+ no bandwidth percent
221
+ no shape rate
222
+ no bandwidth guaranteed
223
+ !
224
+ mc-tx-queue 2
225
+ priority strict
226
+ no bandwidth percent
227
+ no shape rate
228
+ no bandwidth guaranteed
229
+ !
230
+ mc-tx-queue 3
231
+ priority strict
232
+ no bandwidth percent
233
+ no shape rate
234
+ no bandwidth guaranteed
235
+ !
236
+ uc-tx-queue 0
237
+ priority strict
238
+ no bandwidth percent
239
+ no shape rate
240
+ no bandwidth guaranteed
241
+ !
242
+ uc-tx-queue 1
243
+ priority strict
244
+ no bandwidth percent
245
+ no shape rate
246
+ no bandwidth guaranteed
247
+ !
248
+ uc-tx-queue 2
249
+ priority strict
250
+ no bandwidth percent
251
+ no shape rate
252
+ no bandwidth guaranteed
253
+ !
254
+ uc-tx-queue 3
255
+ priority strict
256
+ no bandwidth percent
257
+ no shape rate
258
+ no bandwidth guaranteed
259
+ !
260
+ uc-tx-queue 4
261
+ priority strict
262
+ no bandwidth percent
263
+ no shape rate
264
+ no bandwidth guaranteed
265
+ !
266
+ uc-tx-queue 5
267
+ priority strict
268
+ no bandwidth percent
269
+ no shape rate
270
+ no bandwidth guaranteed
271
+ !
272
+ uc-tx-queue 6
273
+ priority strict
274
+ no bandwidth percent
275
+ no shape rate
276
+ no bandwidth guaranteed
277
+ !
278
+ uc-tx-queue 7
279
+ priority strict
280
+ no bandwidth percent
281
+ no shape rate
282
+ no bandwidth guaranteed
283
+ sflow enable
284
+ !