Recent Commits to NES-Open-Switch:master

Showing posts with label LACP. Show all posts
Showing posts with label LACP. Show all posts

Tuesday, April 5, 2016

LACP upgrade - 13: cleaning up LAG module

Cleaned up #LAG and #LACP modules with #miscellaneous #changes. Corrected the #PDU #handler in LACP module. Reordered PDU buffer data-structure. Removed definitions of the old module data-structures in LAG module. Corrected #aggregator #member-port #list iterator routine. Corrected #member-port #statistics iterator routines with direct references from member-port configuration entries. Updated #custom #aggregator configuration entries with direct reference from the aggregator configuration entries.

#LACP update 26 ...
[commit a64084632d865d7e2dbbbe553d7bc4d64f4bea43] (https://github.com/nes-repo/NES-Open-Switch/commit/a64084632d865d7e2dbbbe553d7bc4d64f4bea43)

Friday, April 1, 2016

LACP upgrade - 12: updating member port selection handler

Updated #member-port #selection #handler in #LACP module. This handler checks and #verifies whether the #peer #partner and the #peer #port #attributes are not changing. The peer port info is recorded while LACP PDU is received. While there is an #administrative #configuration change from the peer side or a #physical #connectivity #changes happens from the remote side, it has to be decided whether the #member-port can still be part of #aggregation or not. The handler reads out the attributes passed in the LACP PDU and compare them against the peer port info recorded earlier. When the attributes differ in the PDU the member-port is marked as not part of the aggregation and #member-port #selection #procedures are executed.

#LACP update 25 ...
[commit d9276967f49544b9bdec8921911edf9f52286aa3] (https://github.com/nes-repo/NES-Open-Switch/commit/d9276967f49544b9bdec8921911edf9f52286aa3)

Thursday, March 31, 2016

LACP upgrade - 11: updating member port distribution and collection handler

Updated #distribution and #collection #handler for #member-ports in #LACP module. The handler #enables the collection and distribution operations #sequentially on each port. After an #aggregator port is selected to be #attached with the member port member port moves to the #synchronized #state with the peer port. i.e. both peer agrees that same aggregator link is used for attaching from both peer systems. Once the synchronization is attained the handler #enables #collection operation on the member port and the #HAL #calls will be done for enabling collecting operation in the #hardware as well. Once this is done, informs the peer about this with an updated LACP PDU. Once both the peers are collecting data from each side of the link for the same aggregator port the #distribution operation will be started on the member port by the handler in the next step. The #HAL call will be done and the updated LACP PDU will be sent to peer to inform them as well. Once both collection and distribution operations are enabled on the member ports the link will be fully participating in the aggregation operation.

#LACP update 24 ...
[commit 10442a8c8cd0bf6e7bba44a62cf01c3fda3a99d3] (https://github.com/nes-repo/NES-Open-Switch/commit/10442a8c8cd0bf6e7bba44a62cf01c3fda3a99d3)

Wednesday, March 30, 2016

LACP upgrade - 10: updating LACP PDU partner info handler

Updated the LACP #PDU #handler in #LACP module. This handler will #process the #PDU while #received on port. The #peer #partner #info of the received port is #updated from the info received in the LACP PDU. The info in the PDU is checked against the actor port specific info to #decide whether the #peer port is in #sync with the received port. The partner info like oper-port, oper-priority, oper-system-id, oper-system-priority, oper-key and oper-stat are populated according to the values received from LDU. The actor specific info like port, port-priority, system-id, system-priority and oper-key are cross checked with the info in PDU to decide whether synchronization has been attained with the peer port.

#LACP update 23 ...
[commit 4b8005f9df419c5b8f573ca219af71cc45c67a10] (https://github.com/nes-repo/NES-Open-Switch/commit/4b8005f9df419c5b8f573ca219af71cc45c67a10)

Tuesday, March 22, 2016

LACP upgrade - 9: updating LACP PDU transmit handler

Updated the #PDU #transmit #handler in the #LACP module. Whenever updated LACP packets has to be sent to the #peer #partner node, the PDUs are #composed from the internal data-structures in this routine. This routine access the member port data-structures for #creating the individual #TLVs in the LACP PDU. The data-structure references has been corrected to the native member port structures. This routine passes the created PDUs to the appropriate #platform #handlers to send them out of the actual port.

#LACP update 22 ...
[commit 3a79dce87f1ea9b2225c02fea5d33a08a22e7d0b] (https://github.com/nes-repo/NES-Open-Switch/commit/3a79dce87f1ea9b2225c02fea5d33a08a22e7d0b)

Friday, March 18, 2016

LACP upgrade - 8: updating the LACP PDU processing routine

Updated the internal #LACP #PDU #processing routine in LACP module. This handler #disects the LACP #packet in to individual #TLVs and do the respective handling. The LACP PDU receive handler passes the incoming PDUs to this routine for processing. The routine has been upgraded to use the native member port level data-structures for it's internal processing.

#LACP update 21 ...
[commit 71ff8fe16a341f52e8887bb8abb5648f3ab1bebb] (https://github.com/nes-repo/NES-Open-Switch/commit/71ff8fe16a341f52e8887bb8abb5648f3ab1bebb)

Thursday, March 17, 2016

LACP upgrade - 7: updating the received LACP PDU handler

Updated incoming #LACP #PDU #handler in LACP module. The PDU handler has been updated to use native member port structures. The #peer #partner #data-structures on the particular member port are updated and internal LACP state on the port is updated in the handler. The routine to update the peer partner data-structures with the #administratively configured #default #values has been updated to remove references to the augmented data-structures. The #partner #info #expire #handler also has been updated in the same lines.

#LACP update 20 ...
[commit 1e4f29e70604d243bb4d80becf1e76e91007504b] (https://github.com/nes-repo/NES-Open-Switch/commit/1e4f29e70604d243bb4d80becf1e76e91007504b)

Wednesday, March 9, 2016

LACP upgrade - 6: updating member port aggregator attach handler

Updated #member #port #attach #handler with the aggregator in the #LACP module. This handler make the #hardware calls to #attach the member port with the selected aggregator and mark the member port state as attached. The #remote #peer is informed of this by sending a #new #LACP #PDU and peer is marked as #synchronized. Later, when peer responds with it's PDU the actual #distribution and #collection operations will be #started for member ports. On attaching the member port with the aggregator the LAG distribution and collection operations will be started in hardware. i.e. The traffic sent out on the aggregator port will be distributed to the member ports and traffic received on the member ports will be collected on to the combined aggregator port.

#LACP update 19 ...
[commit c4c8b0875ce3ca180a3982e850131b58f15a1451] (https://github.com/nes-repo/NES-Open-Switch/commit/c4c8b0875ce3ca180a3982e850131b58f15a1451)

Tuesday, March 8, 2016

LACP upgrade - 5: updating aggregator port state update handler

Updated #aggregator #port #status #handler in #LACP module. The data structure has been updated to use the new updated structure. This routine #updates the aggregator status as part of the #administrative or #operational #changes. The #LAG module uses this to #convey the aggregator #status #change to LACP module. When the aggregator port status changes to DOWN current aggregator selection is marked to be cleared. The remote information is marked as expired. This will cause the remote peer information to be gathered fresh again on port UP change. When port state comes as UP, the peer synchronization is marked as lost and expired and a timer is set to start operation on this port again.

#LACP update 18 ...
[commit 8eb97ea8c7dfb9c391f358e309df5bdc1f86b976] (https://github.com/nes-repo/NES-Open-Switch/commit/8eb97ea8c7dfb9c391f358e309df5bdc1f86b976)

Wednesday, February 17, 2016

LACP upgrade - 4: updated LACP member port detach handler

Updated #member-port #detach #handler in #LACP module. This handler #detaches the #port from the #hardware #aggregator and #inform the #remote #peer of the same. After this a wait timer is set for later processing. This procedure is executed as part of #protocol #state #changes or as a side effect of a management operation. The aggregator is detached from the member-port in hardware and the peer is informed that local end is not in sync anymore. The #collection and #distribution procedures are #disabled in #hardware and the peer will be known of the same when it receives the updated LACP PDU from local end.

#LACP update 17 ...
[commit 246b3ed5760ddcf5cf0765586213084eff6fd177] (https://github.com/nes-repo/NES-Open-Switch/commit/246b3ed5760ddcf5cf0765586213084eff6fd177)

Tuesday, February 16, 2016

LACP upgrade - 3: updated LACP member port initialization and reset routines

Updated #member-port #init and #reset routines in #LACP module. These routine the initialization and reset operation as part of the #LACP #protocol #operation. On init for the member-port the LAG initialization routine is also called for setting defaults for the LAG parameters. The init also causes the #member-port to be #detached from the #aggregator as well. Hence the selection process starts over again and #elects the #aggregator again.

#LACP update 16 ...
[commit 1a5e11fea1f11448ca06d1e44b62971268b366d3] (https://github.com/nes-repo/NES-Open-Switch/commit/1a5e11fea1f11448ca06d1e44b62971268b366d3)

Friday, February 12, 2016

LACP upgrade - 2: updated LACP member port initialization parameters

Updated the #member-port #initialization values in #LAG module. The member-port initialization resets the operational parameters. These parameters include the #actor-key, #partner-sys-id, #partner-sys-priority, #partner-key, #partner-port, #partner-port-priority, #actor-state and #partner-state. The member-ports are initialized on newly activating the port or when LACP state is reset during the protocol state changes.

#LACP update 15 ...
[commit 0465f3a629b1c5ec87d88e36ee0d5d2230633487] (https://github.com/nes-repo/NES-Open-Switch/commit/0465f3a629b1c5ec87d88e36ee0d5d2230633487)

Thursday, February 11, 2016

LACP upgrade - 1: updated LACP aggregator and member port activation handler

Updated the port status #activation #handler for both #aggregator and the #member-port in #LACP module. The data type references has been corrected to use the new updated type. The activation handlers #cascade the #configuration #state #changes from the #LAG module to LACP module. On moving the port to #active state from LAG module, the #LACP #protocol specific procedures will be #started for these ports. Similarly on putting these ports in to #not-in-service or #not-ready state, the #protocol procedures are #stopped and #cleanup is done for these ports.

#LACP update 14 ...
[commit d726911bd75d0e80a7a65e4274f06bde3c4fc806] (https://github.com/nes-repo/NES-Open-Switch/commit/d726911bd75d0e80a7a65e4274f06bde3c4fc806)

Wednesday, December 30, 2015

LAG upgrade - 19: updating standard extended member port agent mapper routines

Updated #standard #extended #member #port agent routines in LAG module. The agent #iterator routines and #mapper #routine has been updated to use standard #member #port #based #indexing. This will access the extended member port entries #embedded in the standard #member #port entries and there by removing the redundant indexing. The standard extended member port entries contain #attributes like the #custom #destination #address for the #LACP control and marker #PDUs.

#LAG update 27 ...
[commit bc7c27612e082a5ff1fea525aee47d42a1a54611] (https://github.com/nes-repo/NES-Open-Switch/commit/bc7c27612e082a5ff1fea525aee47d42a1a54611)

Friday, December 18, 2015

LAG upgrade - 16: optimizing standard extended LAG member port entries

Updated #standard #extended #member #port agent mapper routines in LAG module. The agent #iterator routines and #mapper #routine has been updated to use standard member port entry based #indexing. This will access the port entries by using the #native #indexing. This removes references to the standard member port statistics indexing used earlier. The extended entries add support for #attributes like #custom #destination #address for the #LACP control and marker #PDUs, these will #default to the standard #Slow_Protocols_Multicast address.

#LAG update 24 ...
[commit aed9770ef28ed6939f60c5a24ada0f62878ee613] (https://github.com/nes-repo/NES-Open-Switch/commit/aed9770ef28ed6939f60c5a24ada0f62878ee613)

Saturday, August 15, 2015

LACP update - 13: corrections in LACP outgoing PDU processing

Added corrections for outgoing LACP PDU s in LACP module. This #remove s #individual #TLV #serialization and solves #issue s with #buffer #allocation. PDU is serialized at once when it is sent out.

#LACP update 13 ...
[commit 85d0215162650e44e3932f3cc4e33d289f2250b7]

Friday, August 14, 2015

LACP update - 12: corrections in PDU definitions

Added #top level #PDU #serialization routine s in LACP module. This enables #automatic #handling of #PDU #format s while it is sent out and when it is being received.

#LACP update 12 ...
[commit ef5675db621e0025a2f3d38d59c92209a055c434]

Thursday, August 13, 2015

LACP update - 11: corrections in PDU definitions

Corrected PDU definition s in LACP module. This #fix es minor #issue s #with the #LACP #PDU #trailer definition.

#LACP update 11 ...
[commit 557759dbac1f779f2637c989e5ad0fbc742f0219]

Wednesday, June 24, 2015

LACP PDU processing update - 1: link LACP PDU processing routine with module message queue

Added changes in LACP module to connect the #message #queue with #PDU #processing routine. This will extract the LACP PDUs added in the message queue and send them to PDU processing routine. This will perform the #aggregator and #member #port related operations based on the #received #LACP #PDU s.

#LACP update 10 ...
[commit 6f3b40b819e9b87dd223d058a6523ea33ee7af88]

Wednesday, May 27, 2015

LACP update - 9: LACP incoming PDU receive

Created a #message #queue in LACP module for #handling #LACP #PDU s. This will enable #HAL module to #trap the #LACP #PDU s from #ports and pass them over to #LACP module as messages for processing. The message library APIs for sending and receiving the messages are used for this purpose. The thread APIs are used to create a #waiting #message #loop in LACP module.

#LACP update 9 ...
[commit cd26cb21872499e77291c808ee98b7f7299d65be]