Link Aggregation Simulator Version 1

Slides:



Advertisements
Similar presentations
Link Selection and OAM Version 01 Stephen Haddock July 18,
Advertisements

LACP Project Proposal.
Chapter Chapter 4. Think back to any very difficult quantitative problem that you had to solve in some science class How long did it take? How many times.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Computer Science 1620 Loops.
Chapter 5: Loops and Files.
1 Capstone projects supervised by Yinong Chen (1) Implementation of a Shell on Palm Hand Held Device (2) Building a Programmer’s Interface to the Palm.
While Loops and Do Loops. Suppose you wanted to repeat the same code over and over again? System.out.println(“text”); System.out.println(“text”); System.out.println(“text”);
Microsoft ® Official Course Module XA Using Windows PowerShell ®
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Cisco S2 C4 Router Components. Configure a Router You can configure a router from –from the console terminal (a computer connected to the router –through.
Introduction to the Adapter Server Rob Mace June, 2008.
Rough Outline for a Intra-Portal Protocol Version 02 Stephen Haddock August 23,
CE Operating Systems Lecture 3 Overview of OS functions and structure.
A Brief Documentation.  Provides basic information about connection, server, and client.
© 2006 Pearson Education 1 More Operators  To round out our knowledge of Java operators, let's examine a few more  In particular, we will examine the.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 5 Looping.
STORE AND FORWARD & CUT THROUGH FORWARD Switches can use different forwarding techniques— two of these are store-and-forward switching and cut-through.
We will focus on operating system concepts What does it do? How is it implemented? Apply to Windows, Linux, Unix, Solaris, Mac OS X. Will discuss differences.
Pascal Programming Pascal Loops and Debugging. Pascal Programming Pascal Loops In our first brush with the while do loops, simple comparisons were used.
 In computer programming, a loop is a sequence of instruction s that is continually repeated until a certain condition is reached.  PHP Loops :  In.
Loops and Files. 5.1 The Increment and Decrement Operators.
1 Standard Version of Starting Out with C++, 4th Brief Edition Chapter 5 Looping.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
The Development Process Compilation. Compilation - Dr. Craig A. Struble 2 Programming Process Problem Solving Phase We will spend significant time on.
Announcements Assignment 2 Out Today Quiz today - so I need to shut up at 4:25 1.
Chapter 5: Looping. Using the while Loop Loop – A structure that allows repeated execution of a block of statements Loop body – A block of statements.
Computer System Structures
Chapter Objectives In this chapter, you will learn:
Implementing Singly Linked
Welcome! Workshop 3 of 7.
Lecture 1: Operating System Services
TrueTime.
802.1AX -- Link Aggregation: Editor’s Report: July 2017 Version 3
CHAPTER 6: REPETITION AND LOOP STATEMENTS
Topics Introduction to Repetition Structures
802-1AX-2014-Cor-1-d0-5 Sponsor Ballot Comments Version 2
Loop Structures.
Plans for next Editor’s draft Version 1
Introduction to Algorithms
The Linux Operating System
Deploying and Configuring SSIS Packages
Chapter 5: Repetition Structures
Chapter 5: Looping Starting Out with C++ Early Objects Seventh Edition
Chapter 5: Looping Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Topics Introduction to Repetition Structures
802-1AX-2014-Cor-1-d0-5 Sponsor Ballot Comments Version 2
Chapter 5: Switch Configuration
While loops The while loop executes the statement over and over as long as the boolean expression is true. The expression is evaluated first, so the statement.
Software Programming J. Holvikivi 2014.
Chapter 2: The Linux System Part 2
802-1AX-2014-Cor-1-d0-5 Sponsor Ballot Comments Version 1
Intro. To Operating Systems
Operating Systems.
Chapter 6: Repetition Structures
Chapter 5: Repetition Structures
Stephen Haddock September 13, 2012
Loops CIS 40 – Introduction to Programming in Python
Lecture Topics: 11/1 General Operating System Concepts Processes
Algorithm and Ambiguity
TIME-SHARED LINK – DRNI LEARNING
Topics Introduction to Repetition Structures
Based on slides created by Bjarne Stroustrup & Tony Gaddis
Based on slides created by Bjarne Stroustrup & Tony Gaddis
CSE 153 Design of Operating Systems Winter 2019
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Chapter 13 Control Structures
Implementation Plan system integration required for each iteration
Presentation transcript:

Link Aggregation Simulator Version 1 Stephen Haddock January 19, 2017

Link Aggregation Simulator This presentation gives an overview of a Link Aggregation Simulator developed to demonstrate and test LACP and DRCP operation. My hope is to post this on Github (or somewhere) as open source code. But still trying to understand software licensing implications. 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.

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 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.

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.

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.

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 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.

Link Aggregation Service Sublayer 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

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. 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.

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

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

Bridge BridgePort BridgePort BridgePort BridgePort Aggregator Aggregator Aggregator Aggregator AggPort AggPort AggPort AggPort MAC MAC MAC MAC