Configuring Flex Links

This document describes the Flex Link feature and configuration steps to implement Flex Links. They also describe how to configure the MAC address table move update feature.

Note


Flex Links does not currently support stacking, duo switches structure, or VLAN separation.

Prerequisites for Configuring Flex Links

Default Configuration

  • Disable STP before configuring Flex Links. If STP is disabled on the switch, make sure that there are no Layer 2 loops in the topology.

  • Flex Links is supported on the Serval CEServices application.

Default Flex Links configuration is when there is no configuration for Flex Links pairs or for the MAC address move update transmit feature.

Restrictions for Configuring Flex Links

  • Only one Flex Links backup link can be configured for any active link, and it must be a different interface from the active interface.

  • The backup link does not have to be the same type as the active link. However, they should be configured with similar characteristics so that there are no loops or changes in operation if the standby link becomes active.

  • An active link cannot belong to another Flex Links pair.

  • The Flex Links pair cannot belong to the same port channel. However, a Flex Links pair can be a port channel and a physical interface, or two port channels or physical interfaces.

  • The port channel interface should be active when included in the Flex Links pair, for it to be configured properly.

Information about Flex Links

Flex Links configuration provides link-level redundancy in the absence of Spanning Tree Protocol (STP). Flex Links consists of a pair of interfaces (ports or port channels) with one interface configured as the primary interface (forwarding status) and the other as the backup interface (standby status). When a failure occurs on the primary interface, the backup interface moves to forwarding status and starts to forward traffic.

Flex Links works by detecting link down on a primary interface and then bringing up the backup interface that has been defined as backup. It is most commonly implemented at the access layer where the switch has dual uplinks to the distribution layer.

Flex Links is designed to interact with supporting modules, such as the port module, the aggregation module, the packet module, and the configuration module. The basic Flex Links protocol functions are as follows:

  • Initialize module configurations

  • Interact with the packet module to transmit/receive MAC address table update frames

  • Interact with the configuration module to read/write FL configurations

  • Register with the port module to receive the port up/down event

The Flex Links API layer provides direct interaction with the switch for the implementation of the active and backup ports groups, the setup of the port status, and the MAC-address table read.

MAC Address Table Move Update

The MAC address table move update is an optional Flex Links feature. It allows the switch to provide rapid bidirectional convergence when an active link goes down and the backup link starts forwarding traffic.

Note


MAC address table move update enables fast recovery of network connectivity but consumes CPU resources.

How to Configure Flex Links

Configuring Flexlink Ports

     Command or ActionPurpose
    Step 1configure terminal


    Example:
    Switch# configure terminal
     

    Enters global configuration mode.

     
    Step 2controller nid 1/NID_ID


    Example:
    Switch(config)# controller nid 1/1
     

    Enters the controller configuration mode.

     
    Step 3FlexlinksPortType


    Example:
    Switch(config-controller)# FlexlinksPortType
     
    Enters FlexlinksPortType mode to provision Flex Links.  
    Step 4flexlinkPortConfiguration|flexlinksConfiguration{activePort|backupPort|flexlinkEnabled}


    Example:
    Switch(config-controller-FlexlinkPortType)# flexlinkPortConfiguration flexlinksConfiguration activePort activePortId 4 
    flexlinkPortConfiguration flexlinksConfiguration backupPort backupPortId 6 
    flexlinkPortConfiguration flexlinksConfiguration flexlinkEnabled enable 
     
    • activePort— Enter the Port number of interface to be configured .

    • backupPort— Enter the backup interface port number. It can be a physical port number or LLAG/LACP group ID.

    • flexlinkEnabled— Enter enable or disable to configure Flexlink port number.

     
    Step 5flexlinkPortConfiguration review


    Example:
    Switch(config-controller-FlexlinksPotType)# flexlinkPortConfiguration review
     
    Displays the Flexlink configuration commands in the queue.  
    Step 6flexlinkPortConfiguration commit


    Example:
    Switch(config-controller-FlexlinksPotType)# flexlinkPortConfiguration commit
     
    Sends the Flexlink port configuration to the NID.  
    Step 7exit


    Example:
    Switch(config-controller-FlexLinksPortType)# exit
     
    Exits the config controller mode.  

    Provisioning Flex Link Ports

       Command or ActionPurpose
      Step 1configure terminal


      Example:
      Switch# configure terminal
       

      Enters global configuration mode.

       
      Step 2controller nid 1/NID_ID


      Example:
      Switch(config)# controller nid 1/1
       
      Enters the controller configuration mode.  
      Step 3FlexlinksPortType


      Example:
      Switch(config-controller)# FlexlinksPortType
       
      Enters the FlexlinksPortType mode to provision Flex Links.  
      Step 4getFlexlinksConfiguration getFlexlinkConfigRequest{llagGroupIdllagGroup-Id|phyPortIdphyPort-Id}


      Example:
      Switch(config-controller-FlexlinksPotType)# getFlexlinksConfiguration
      Switch(config-controller-FlexlinksPotType)# getFlexlinksConfiguration getFlexlinkConfigRequest port phyPortId 4
      Switch(config-controller-FlexlinksPotType)# getFlexlinksConfiguration getFlexlinkConfigRequest llagGroupId 2
       
      Gets the activeport configuration using getcommand.  
      Step 5getFlexlinksConfiguration review


      Example:
      Switch(config-controller-FlexlinksPotType)# getFlexlinksConfiguration review
       
      Displays the activeport configuration using getcommand.  
      Step 6getFlexlinksConfiguration commit


      Example:
      Switch(config-controller-FlexlinksPotType)# getFlexlinksConfiguration commit
       
      Sends the activeport configuration to the NID.  
      Step 7exit


      Example:
      Switch(config-controller-FlexLinksPortType)# exit
       
      Exits the config controller mode.  

      Viewing Flex Link Configuration at Port Level on the NID

      Before You Begin
      • Perform the steps to provision Flex Links on the controller .

         Command or ActionPurpose
        Step 1configure terminal


        Example:
        Switch# configure terminal
         

        Enters global configuration mode.

         
        Step 2controller nid 1/NID_ID


        Example:
        Switch(config)# controller nid 1/1
         

        Enters the controller configuration mode.

         
        Step 3FlexlinksPortType


        Example:
        Switch(config-controller)# FlexlinksPortType
         
        Enters FlexlinksPortType mode to provision Flex Links.  
        Step 4 getFlexlinksConfiguration getFlexlinkConfigRequestportllagGroupId phyPortId


        Example:
        Switch(config-controller-FlexlinksPortType)# getFlexlinksConfiguration getFlexlinkConfigRequest port llagGroupId 2
        Switch(config-controller-FlexlinksPortType)# getFlexlinksConfiguration getFlexlinkConfigRequest port phyPortId 4
         

        Retrieves the Flex Links configuration at port.

        • llagGroupId llagGroup-Id—Displays the targeted active LLAG Group Id.

        • review—Displays the targeted active physical port.

         
        Step 5getFlexlinksConfiguration review


        Example:
        Switch(config-controller-FlexlinksPortType)# getFlexlinksConfiguration review
        Commands in queue:
                getFlexlinksConfiguration flexlinksPhysicalPort 4
         
        Displays the Flex Links configuration.  
        Step 6getFlexlinksConfiguration commit


        Example:
        Switch(config-controller-FlexlinksPortType)# getFlexlinksConfiguration commit
         
        Sends the Flex Links configuration to the NID.  
        Step 7exit


        Example:
        Switch(config-controller-FlexLinksPortType)# exit
         
        Exist the controller config mode.  

        Configuration Example

        The example retrieves the Flex Links configuration for port 4 on the NID:

        Switch(config-controller-FlexlinksPortType)# getFlexlinksConfigRequestportphyPortId 4
        Switch(config-controller-FlexlinksPortType)# getFlexlinksConfiguration review
        Commands in queue:
               getFlexlinksConfigRequestportphyPortId 4
        Switch(config-controller-FlexlinksPortType)# getFlexlinksConfiguration commit
        GetFlexlinksConfiguration_Output.getFlexlinksConfiguration.portNumber = 4
        GetFlexlinksConfiguration_Output.getFlexlinksConfiguration.flexlinksEnable = false
        GetFlexlinksConfiguration_Output.getFlexlinksConfiguration.key = 4
        GetFlexlinksConfiguration_Output.getFlexlinksConfiguration.role.t = 4
        GetFlexlinksConfiguration_Output.getFlexlinksConfiguration.role.u.active = true
        GetFlexlinksConfiguration_Output.getFlexlinksConfiguration.portPriority = 32768
        GetFlexlinksConfiguration_Output.getFlexlinksConfiguration.timeout.t = 4
        getFlexlinksConfiguration_Output.getFlexlinksConfiguration.timeout.u.fast = true
        
         GetFlexlinksConfiguration Commit Success!!!
        Switch(config-controller-FlexlinksPortType)# exit

        Viewing Flexlink Active Port Configuration

           Command or ActionPurpose
          Step 1configure terminal


          Example:
          Switch# configure terminal
           

          Enters global configuration mode.

           
          Step 2controller nid 1/NID_ID


          Example:
          Switch(config)# controller nid 1/1
           

          Enters the controller configuration mode.

           
          Step 3FlexlinksPortType


          Example:
          Switch(config-controller)# FlexlinksPortType
           
          Enters FlexlinksPortType mode to provision Flex Links.  
          Step 4showFlexlinksConfigdisplayFlexlinksConfigport{llagGroupID|phyPortId}


          Example:
          Switch(config-controller-FlexlinksPortType)# showFlexlinksConfig displayFlexlinksConfig port phyPortId 4
           
          • port— Displays the targeted active port.

          • llagGroupID— Displays the active llagGroupID number.

          • phyPortId— Displays the active physical port number.

           
          Step 5showFlexlinksConfig review


          Example:
          Switch(config-controller-FlexlinksPotType)# showFlexlinksConfig review
           
          Displays the ports for Flexlink configuration.  
          Step 6showFlexlinksConfig commit


          Example:
          Switch(config-controller-FlexlinksPotType)# showFlexlinksConfig commit
           
          Sends the Flexlink configuration to the NID.  
          Step 7exit


          Example:
          Switch(config-controller-FlexLinksPortType)# exit
           
          Exits the config controller mode.  

          Configuration Example

          The example shows the flexlink configuration in active ports.

          Switch(config-controller)# FlexlinksPortType
          Switch(config-controller-FlexlinksPortType)# showFlexlinksConfig displayFlexlinksConfig port phyPortId 4
          
          (config-controller-FlexlinksPortType)# showFlexlinksConfig commit 
          ShowFlexlinksConfig_Output.displayFlexlinksConfigResp[0].backupPort = 'GigabitEthernet 1/6'
          ShowFlexlinksConfig_Output.displayFlexlinksConfigResp[0].activePort = 'GigabitEthernet 1/4'
          ShowFlexlinksConfig_Output.displayFlexlinksConfigResp[0].backupState = 'Active Up/Backup Standby'
          ShowFlexlinksConfig_Output.displayFlexlinksConfigResp[0].macUpdateEnabled = 'enabled'
          
          (config-controller-FlexlinksPortType)# showFlexlinksConfig commit 
          ShowFlexlinksConfig_Output.displayFlexlinksConfigResp[0].backupPort = 'GigabitEthernet 1/6'
          ShowFlexlinksConfig_Output.displayFlexlinksConfigResp[0].activePort = 'GigabitEthernet 1/4'
          ShowFlexlinksConfig_Output.displayFlexlinksConfigResp[0].backupState = 'Active Up/Backup Standby'
          ShowFlexlinksConfig_Output.displayFlexlinksConfigResp[0].macUpdateEnabled = 'enabled'
          
          ShowFlexlinksConfig Commit Success!!!(FlexlinksPortType)# 
          Commit Success!!!(config-controller-FlexlinksPortType)# 

          Enabling macMoveupdate on Active Port

             Command or ActionPurpose
            Step 1configure terminal


            Example:
            Switch# configure terminal
             

            Enters global configuration mode.

             
            Step 2controller nid 1/NID_ID


            Example:
            Switch(config)# controller nid 1/1
             

            Enters the controller configuration mode.

             
            Step 3FlexlinksPortType


            Example:
            Switch(config-controller)# FlexlinksPortType
             
            Enters the FlexlinksPortType mode to provision Flex Links.  
            Step 4macMoveUpdatePortConfig macMoveUpdateConfig { llagGroupId llagGroup-Id | mmuEnabled { enable|disable } | portNumber portNumber }


            Example:
            Switch(config-controller-FlexlinksPortType)# macMoveUpdatePortConfig macMoveUpdateConfig
            Switch(config-controller-FlexlinksPortType)# macMoveUpdatePortConfig macMoveUpdateConfig llagGroup id 2
            Switch(config-controller-FlexlinksPortType)# macMoveUpdatePortConfig macMoveUpdateConfig portNumber 4
            Switch(config-controller-FlexlinksPortType)# macMoveUpdatePortConfig macMoveUpdateConfig mmuEnabled enable
             
            Displays the macMoveUpdateConfig mode.
            Note    User can enable macMoveUpdate, only after flex link is configured.
            • llagGroupId— Configures llag as an active port in flex link. The range is from 1-4

            • portNumber— Configures port number in flex link. The range is from 1-124

            • mmuEnabled—Updates the MAC Move Transmitr in flex link to either enale o disable.

             
            Step 5macMoveUpdatePortConfig review


            Example:
            Switch(config-controller-FlexlinksPotType)# macMoveUpdatePortConfig review
             
            Displays the macMoveUpdatePortConfig commands.  
            Step 6macMoveUpdatePortConfig commit


            Example:
            Switch(config-controller-FlexlinksPotType)# macMoveUpdatePortConfig commit
             
            Sends the macMoveUpdatePortConfig commands to the NID.  
            Step 7exit


            Example:
            Switch(config-controller-FlexLinksPortType)# exit
             
            Exits the config controller mode.  

            Viewing macMoveUpdate Active Port Configuration

               Command or ActionPurpose
              Step 1configure terminal


              Example:
              Switch# configure terminal
               

              Enters global configuration mode.

               
              Step 2controller nid 1/NID_ID


              Example:
              Switch(config)# controller nid 1/1
               

              Enters the controller configuration mode.

               
              Step 3FlexlinksPortType


              Example:
              Switch(config-controller)# FlexlinksPortType
               
              Enters FlexlinksPortType mode to provision Flex Links.  
              Step 4getMACMoveUpdateConfiggetFlexlinkConfigRequestport{llagGroupId|phyPortId}


              Example:
              Switch(config-controller-FlexlinksPortType)# getMACMoveUpdateConfig getFlexlinkConfigRequest port phyPortId 4
               
              • port— Displays the targeted active port.

              • llagGroupID— Displays the active llagGroupID number.

              • phyPortId— Displays the active physical port number.

               
              Step 5getMACMoveUpdateConfig review


              Example:
              Switch(config-controller-FlexlinksPotType)# getMACMoveUpdateConfig review
               
              Displays the ports for Flexlink configuration.  
              Step 6getMACMoveUpdateConfig commit


              Example:
              Switch(config-controller-FlexlinksPotType)# getMACMoveUpdateConfig review
               
              Sends the Flexlink configuration to the NID.  
              Step 7exit


              Example:
              Switch(config-controller)FlexLinksPortType)# exit
               
              Exits the Flex Links provisioning mode.  

              Configuration Example

              The example shows the flexlink configuration in active ports.

              Switch(config-controller)# FlexlinksPortType
              Switch(config-controller-FlexlinksPortType)# getMACMoveUpdateConfig getFlexlinkConfigRequest port phyPortId 4
              (config-controller-FlexlinksPortType)# getMACMoveUpdateConfig review 
              
              Commands in queue: 1
              
              getMACMoveUpdateConfig getFlexlinkConfigRequest port phyPortId 4 
              (config-controller-FlexlinksPortType)# getMACMoveUpdateConfig commit 
              GetMACMoveUpdateConfig_Output.macMoveUpdateConfig._choice1.t = 1
              GetMACMoveUpdateConfig_Output.macMoveUpdateConfig._choice1.u.portNumber = 4
              GetMACMoveUpdateConfig_Output.macMoveUpdateConfig.mmuEnabled = true
              
              GetMACMoveUpdateConfig Commit Success!!!(config-controller-FlexlinksPortType)#