Overview of Link Aggregation Simulator

 
 
Link Aggregation Simulator
Version  2
Stephen Haddock
March 16,  2017
1
Link Aggregation Simulator
This presentation gives an overview of a Link Aggregation
Simulator developed to demonstrate and test LACP and DRCP
operation.
The source code is on Github:
The code is one person’s interpretation of 802.1AX, but
The code is not the standard and the standard always takes
precedence
On the other hand the code can help “debug” the standard.
https://github.com/srhaddock/LinkAggSim
Step 1:  Create some Devices
A “Device” is just a shell to network components
Step 1a:  Put some MACs in each
All Devices contain MACs to allow interconnection of Devices.
MACs have a Service Access Point (SAP) internal to the Device.
Step 1b:  Add some Components
End Station Components have a single SAP pointer.
Bridge Components have a SAP pointer for each Bridge Port.
Can have multiple components in a Device.
Step 1c:  Add Link Aggregation
A Link Aggregation Component is a “shim” with a SAP in each
Aggregator and SAP pointer in each Aggregation Port.
Step 2:  Schedule Events
Specify times to create/destroy links between MACs, modify
managed objects in Components, or generate data Frames.
About Time
The main loop of the simulation increments a Time variable
on every iteration.  Each iteration executes any scheduled
events, and then calls “timerTick” and  “run” in each Device.
Each Device then calls “timerTick” and “run” in each Component.
Each component calls “timerTick” and “run” in each object.
Each object calls “timerTick” and “run” in each state machine.
timerTick():
Decrements any timer that is running.
run(bool singleStep):
Calls any periodic functions or state machines, and propagates Frames
If singleStep is true a state machine will make at most one state transition.
If singleStep is false a state machine will re-evaluate transition conditions after any
transition, and loop until no transitions occur or a maximum loop count is reached.
Step 3:  Run the Simulation
Link Aggregation Groups are built, destroyed, rebuilt, etc. in
response to the scheduled events.
Link Aggregation Service Sublayer
Aggregator
Ports
Aggregation
Ports
LinkAgg
Class/Object
Aggregator
Class/Objects
AggPort
Class/Objects
Agg
Port
Agg
Port
Agg
Port
Agg
Port
Agg
Port
Agg
Port
Aggregator
Aggregator
Aggregator
Aggregator
Aggregator
Aggregator
Aggregator
maintains a list
of attached AggPorts
AggPort maintains
the identifier of the
selected Aggregator
Link Aggregation code structure
LinkAgg Class
Includes vector of Aggregator objects and vector of AggPort objects
Aggregator and AggPort objects always come in a pairs
Implements functions that use parameters of multiple Aggregator and/or
AggPort objects
E.g.  Simulation Logic, Conversation Sensitive Collection and Distribution
Aggregator Class
Provides the Aggregator Port SAP
By inheriting the IssQ class which inherits the Iss class
Stores Aggregator specific state, but no significant functions.
AggPort Class
Client of the Aggregation Port SAP
Has a pointer to the Iss of a class that provides the Port SAP (typically a MAC)
Contains nested classes that implement LACP per-port state machines
“Canned” Tests
Edit main program to define simulation scenarios.
Can create customized scenarios.
There are a number of “canned” scenarios provided:
Basic LAG test
LAG Loopback test
Non-Aggregatable Port test
Preferred Aggregator test
Limited Aggregators test
Dual-homing test
802.1AXbk (LAG of LAGs) test
Dual-Homing test
End Station Components have a single SAP pointer.
Therefore Link Agg configured so only one Aggregator shares a key value with the
Aggregation Ports.  (Assures Ports don’t select an Aggregator with no client.)
Both links become operational, but only one can select the Aggregator.
Since the Bridges have different System IDs, the two links cannot be in the same LAG.
One link will attach to the Aggregator and provide connectivity to the End Station; the
other link waits …
If the link initially attached goes down, the other link will select the Aggregator and
continue to provide connectivity to the End Station.
802.1AXbk (LAG of LAGs) test
The bad news …
The User Interface is basically non-existent.
“Input” means editing the main program to create the
desired simulation scenarios, then re-compile.
“Output” is a text file containing reports of significant
events, state changes, etc.
Volume of reports controlled by setting a “debug level”
It is a windows console program, so …
a console window opens with notifications of Aggregation
Links going up or down and Aggregators going up or down
(mostly just to let you know something is happening when
you run the program)
Backup Slides
 
 
 
 
Bridge
BridgePort
BridgePort
BridgePort
BridgePort
Aggregator
Aggregator
Aggregator
Aggregator
AggPort
AggPort
AggPort
AggPort
MAC
MAC
MAC
MAC
Slide Note
Embed
Share

This presentation provides an overview of a Link Aggregation Simulator designed to demonstrate and test LACP and DRCP operation. It guides users through creating devices, adding components, including link aggregation, and scheduling events. The simulator allows for testing of network components and debugging of 802.1AX standards through simulation. Source code is available on Github for further exploration and customization.

  • Network Simulation
  • Link Aggregation
  • LACP
  • DRCP
  • Debugging

Uploaded on Oct 10, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Link Aggregation Simulator Version 2 Stephen Haddock March 16, 2017 1

  2. Link Aggregation Simulator This presentation gives an overview of a Link Aggregation Simulator developed to demonstrate and test LACP and DRCP operation. The source code is on Github: https://github.com/srhaddock/LinkAggSim The code is one person s interpretation of 802.1AX, but The code is not the standard and the standard always takes precedence On the other hand the code can help debug the standard.

  3. Step 1: Create some Devices A Device is just a shell to network components

  4. Step 1a: Put some MACs in each All Devices contain MACs to allow interconnection of Devices. MACs have a Service Access Point (SAP) internal to the Device.

  5. Step 1b: Add some Components End Stn End Stn Bridge Bridge End Station Components have a single SAP pointer. Bridge Components have a SAP pointer for each Bridge Port. Can have multiple components in a Device.

  6. Step 1c: Add Link Aggregation End Stn End Stn Link Agg Link Agg Bridge Bridge Link Agg Link Agg A Link Aggregation Component is a shim with a SAP in each Aggregator and SAP pointer in each Aggregation Port.

  7. Step 2: Schedule Events End Stn End Stn Link Agg Link Agg Bridge Bridge Link Agg Link Agg Specify times to create/destroy links between MACs, modify managed objects in Components, or generate data Frames.

  8. About Time The main loop of the simulation increments a Time variable on every iteration. Each iteration executes any scheduled events, and then calls timerTick and run in each Device. Each Device then calls timerTick and run in each Component. Each component calls timerTick and run in each object. Each object calls timerTick and run in each state machine. timerTick(): Decrements any timer that is running. run(bool singleStep): Calls any periodic functions or state machines, and propagates Frames If singleStep is true a state machine will make at most one state transition. If singleStep is false a state machine will re-evaluate transition conditions after any transition, and loop until no transitions occur or a maximum loop count is reached.

  9. Step 3: Run the Simulation End Stn End Stn Link Agg Link Agg Bridge Bridge Link Agg Link Agg Link Aggregation Groups are built, destroyed, rebuilt, etc. in response to the scheduled events.

  10. Link Aggregation Service Sublayer LinkAgg Class/Object Aggregator Ports Aggregator Class/Objects Aggregator Aggregator Aggregator Aggregator Aggregator Aggregator AggPort maintains the identifier of the selected Aggregator Aggregator maintains a list of attached AggPorts AggPort Class/Objects Agg Port Agg Port Agg Port Agg Port Agg Port Agg Port Aggregation Ports

  11. Link Aggregation code structure LinkAgg Class Includes vector of Aggregator objects and vector of AggPort objects Aggregator and AggPort objects always come in a pairs Implements functions that use parameters of multiple Aggregator and/or AggPort objects E.g. Simulation Logic, Conversation Sensitive Collection and Distribution Aggregator Class Provides the Aggregator Port SAP By inheriting the IssQ class which inherits the Iss class Stores Aggregator specific state, but no significant functions. AggPort Class Client of the Aggregation Port SAP Has a pointer to the Iss of a class that provides the Port SAP (typically a MAC) Contains nested classes that implement LACP per-port state machines

  12. Canned Tests Edit main program to define simulation scenarios. Can create customized scenarios. There are a number of canned scenarios provided: Basic LAG test LAG Loopback test Non-Aggregatable Port test Preferred Aggregator test Limited Aggregators test Dual-homing test 802.1AXbk (LAG of LAGs) test

  13. Dual-Homing test End Stn Bridge Bridge Link Agg Link Agg Link Agg End Station Components have a single SAP pointer. Therefore Link Agg configured so only one Aggregator shares a key value with the Aggregation Ports. (Assures Ports don t select an Aggregator with no client.) Both links become operational, but only one can select the Aggregator. Since the Bridges have different System IDs, the two links cannot be in the same LAG. One link will attach to the Aggregator and provide connectivity to the End Station; the other link waits If the link initially attached goes down, the other link will select the Aggregator and continue to provide connectivity to the End Station.

  14. 802.1AXbk (LAG of LAGs) test End Stn End Stn S-VLAN Bridge Link Agg Link Agg Link Agg Link Agg Link Agg Inner Link Agg shim uses Slow Protocols DA Outer Link Agg shim uses Nearest Customer Bridge DA S-VLAN Bridge Link Agg

  15. The bad news The User Interface is basically non-existent. Input means editing the main program to create the desired simulation scenarios, then re-compile. Output is a text file containing reports of significant events, state changes, etc. Volume of reports controlled by setting a debug level It is a windows console program, so a console window opens with notifications of Aggregation Links going up or down and Aggregators going up or down (mostly just to let you know something is happening when you run the program)

  16. Backup Slides

  17. Bridge

  18. Bridge BridgePort BridgePort BridgePort BridgePort Aggregator Aggregator Aggregator Aggregator AggPort AggPort AggPort AggPort MAC MAC MAC MAC

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#