Reset Search
 

 

Article

Workaround for LACP-fallback/backup feature support in EXOS

« Go Back

Information

 
TitleWorkaround for LACP-fallback/backup feature support in EXOS
Symptoms
  • Dynamic LACP or LACP fallback is a feature which will disable LACP sharing on a port if there are no LACP PDUs received and automatically enable the LACP sharing when there are LACP PDUs received on the port. 
  • This would be useful for PXE boot servers to boot with PXE which will not understand LACP during bootup and then have LACP configuration after the bootup. 
Environment
  • Summit and BlackDiamond Series
  • EXOS 16.1 and lower
Cause
  • EXOS (16.1 or lower) currently does not support this feature.
  • Note: The Link Aggregation Control Protocol (LACP) Fallback Option feature for EXOS is introduced in v16.2.1.6, v21.1.1.4 and greater.
     
Resolution
Work-around: 

User-added image
Ports 1 and 2 are connected to the PXE server or another device which will have LACP configured. 

Step 1: 
Apply the following access-list (name: acl_test) on one of the port which will act as the master port if the LACP PDUs are received. It is important that this ACL is applied only to the master-port. 

 
entry LACP {
if match all {
    ethernet-destination-address 01:80:c2:00:00:02 ;
    ethernet-type 0x8809 ;
}
then {
    count LACPpkt ;
    permit  ;
}
}

configure access-list acl_test port 1 ingress

Step 2: 
Create the following UPM profile (dynamiclacp)
create upm profile dynamiclacp
enable cli scripting
#### Variable containing port shares, seperate LAG with , members with -
set var LAGS "1-2"
#### End variable
set var LAGLIST $TCL(split ${LAGS} ",")
set var NUMLAGS $TCL(llength ${LAGLIST})
set var LAGCOUNT 0
WHILE ($LAGCOUNT < $NUMLAGS) DO
 set var LAG $TCL(lindex ${LAGLIST} $LAGCOUNT)
 set var LAGMEMBERS $TCL(split ${LAG} "-")
 set var LAGMASTER $TCL(lindex $LAGMEMBERS 0)
 show var LAGMASTER
 set var CLI.OUT " "
 show access-list counter lacppkt ports $(LAGMASTER) ingress
 set var splitacl $TCL(split ${CLI.OUT} "\n")
 set var lastline $TCL(lindex $splitacl 4)
 set var lacpcounter $TCL(regexp -inline {\d+} $lastline)
 show var lacpcounter
 IF ($lacpcounter == 0) THEN
  set var CLI.OUT " "
  show sharing | include $(LAGMASTER)\s.*LACP
  IF ($MATCH($CLI.OUT," ")==1) THEN
   create log message Disabled_share_$(LAGMASTER)
   disable sharing $(LAGMASTER)
  ENDIF
 ELSE
  set var CLI.OUT " "
  show sharing | include $(LAGMASTER)\s.*LACP
  IF ( $MATCH($CLI.OUT," ")==0 ) THEN
   create log message Enabled_share_$(LAGMASTER)
   set var LAGMEMBER $TCL(lindex $LAGMEMBERS 1)
   enable sharing $(LAGMASTER) group $(LAGMASTER), $(LAGMEMBER) lacp
  ENDIF
 ENDIF
 clear access-list counter lacppkt ports $(LAGMASTER)
 set var LAGCOUNT ($LAGCOUNT+1)
ENDWHILE
.
The line "set var LAGS "1-2" should have the master-ports and the member ports defined in which the server or another device is connected. 
If you want to apply this on multiple ports, we can define them as below: 

 
set var LAGS "1-2, 3-4"

Step 3: 
Create the UPM timer (lacp_timer) and map the UPM profile(dynamiclacp) to the UPM timer. 
create upm timer check_lacp_timer
configure upm timer check_lacp_timer profile dynamiclacp
configure upm timer check_lacp_timer after 40 every 40
We can specify the interval in which the switch has to check the access-list counter and execute the sharing commands. In the above example, timer is set to every 40 seconds. 


 
Additional notes

Feedback

 

Was this article helpful?


   

Feedback

Please tell us how we can make this article more useful.

Characters Remaining: 255