Skip to content

Commit 7e9e9a0

Browse files
authored
Merge pull request #61 from stackhpc/zed-backports
Zed backports
2 parents 7971e2c + deb3bc7 commit 7e9e9a0

21 files changed

+1577
-17
lines changed

doc/source/configuration.rst

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,16 @@ for the Dell Force10 device::
9292
password = password
9393
secret = secret
9494

95+
for the Dell OS10 device::
96+
97+
[genericswitch:dell-hostname]
98+
device_type = netmiko_dell_os10
99+
ngs_mac_address = <switch mac address>
100+
ip = <switch mgmt ip address>
101+
username = admin
102+
password = password
103+
secret = secret
104+
95105
for the Dell PowerConnect device::
96106

97107
[genericswitch:dell-hostname]
@@ -108,8 +118,9 @@ for the Dell PowerConnect device::
108118
ngs_switchport_mode = access
109119

110120
Dell PowerConnect devices have been seen to have issues with multiple
111-
concurrent configuration sessions. See :ref:`synchronization` for details on
112-
how to limit the number of concurrent active connections to each device.
121+
concurrent configuration sessions. See :ref:`synchronization` and
122+
:ref:`batching` for details on how to limit the number of concurrent active
123+
connections to each device.
113124

114125
for the Brocade FastIron (ICX) device::
115126

@@ -207,8 +218,16 @@ connection URL for the backend should be configured as follows::
207218
[ngs_coordination]
208219
backend_url = <backend URL>
209220

210-
The default is to limit the number of concurrent active connections to each
211-
device to one, but the number may be configured per-device as follows::
221+
The backend URL format includes the Tooz driver as the scheme, with driver
222+
options passed using query string parameters. For example, to use the
223+
``etcd3gw`` driver with an API version of ``v3`` and a path to a CA
224+
certificate::
225+
226+
[ngs_coordination]
227+
backend_url = etcd3+https://etcd.example.com?api_version=v3,ca_cert=/path/to/ca/cert.crt
228+
229+
The default behaviour is to limit the number of concurrent active connections
230+
to each device to one, but the number may be configured per-device as follows::
212231

213232
[genericswitch:device-hostname]
214233
ngs_max_connections = <max connections>
@@ -222,6 +241,35 @@ timeout of 60 seconds before failing. This timeout can be configured as follows
222241
...
223242
acquire_timeout = <timeout in seconds>
224243

244+
.. _batching:
245+
246+
Batching
247+
========
248+
249+
For many network devices there is a significant SSH connection overhead which
250+
is incurred for each network or port configuration change. In a large scale
251+
system with many concurrent changes, this overhead adds up quickly. Since the
252+
Antelope release, the Generic Switch driver includes support to batch up switch
253+
configuration changes and apply them together using a single SSH connection.
254+
255+
This is implemented using etcd as a queueing system. Commands are added
256+
to an input key, then a worker thread processes the available commands
257+
for a particular switch device. We pull off the queue using the version
258+
at which the keys were added, giving a FIFO style queue. The result of
259+
each command set are added to an output key, which the original request
260+
thread is watching. Distributed locks are used to serialise the
261+
processing of commands for each switch device.
262+
263+
The etcd endpoint is configured using the same ``[ngs_coordination]
264+
backend_url`` option used in :ref:`synchronization`, with the limitation that
265+
only ``etcd3gw`` is supported.
266+
267+
Additionally, each device that will use batched configuration should include
268+
the following option::
269+
270+
[genericswitch:device-hostname]
271+
ngs_batch_requests = True
272+
225273
Disabling Inactive Ports
226274
========================
227275

doc/source/supported-devices.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ The following devices are supported by this plugin:
1010
* Cisco IOS switches
1111
* Cumulus Linux (via NCLU)
1212
* Dell Force10
13+
* Dell OS10
1314
* Dell PowerConnect
1415
* HPE 5900 Series switches
1516
* Huawei switches

0 commit comments

Comments
 (0)