Showing results for 
Search instead for 
Did you mean: 

ASR 9K IOS XR - Question regarding Link Bundling Load Balancing



IOSXR  4.1.0.

Refer to attached diagram,  I ping form src: (and to  dst: source/destination  combination).

Check  load balancing per source base, I expect

Packet  go through as

Int  g0/0/0/15   >>50%

Int  g0/0/0/16   >>50%

However, the actual result is:

Int  g0/0/0/15   >>100%

Int  g0/0/0/16   >>0%

ASR configuration as  attached.

Is there any configuration missing?


David Powers
Cisco Employee

Since this is ipv4 unicast to ipv4 unicast the following hashing applies:

Since icmp has no layer 4 protocol then it will hash to one of the bundle members based on IP SA, IP DA and router id.

IPv4 Unicast

No Layer 4 protocol  -  Based on IP SA, DA and Router ID

Unknown Layer 4 protocol  -  Based on IP SA, DA and Router ID

TCP  -  Based on IP SA, DA, TCP Src Port, TCP Dst Port and Router ID

UDP  -  Based on IP SA, DA, UDP Src Port, UDP Dst Port and Router ID

SCTP (Stream Control Transmission Protocol ) -  Based on IP SA, DA, SCTP Src Port, SCTP Dst Port and Router ID

You can determine which bundle member the packets will hash to using the bundle-hash command.

router#bundle-hash bundle-ether1

Thu Jul 21 16:44:53.477 UTC

Calculate Bundle-Hash for L2 or L3 or sub-int based: 2/3/4 [3]: 3

Enter traffic type (1.IPv4-inbound, 2.MPLS-inbound, 3:IPv6-inbound): [1]: 1

Single SA/DA pair or range: S/R [S]:

Enter source IPv4 address []:

Enter destination IPv4 address []:

Compute destination address set for all members? [y/n]: y

Enter subnet prefix for destination address set: [32]:

Enter bundle IPv4 address []:

Enter L4 protocol ID. (Enter 0 to skip L4 data) [0]:

Invalid protocol. L4 data skipped.

Link hashed [hash_val:0] to is TenGigE0/0/0/6 member id 0 ifh 0x400

If  this had been two equal cost L3 paths instead of a bundle-ether then  you would use show cef exact-route to determine  which link will be selected.

In Summary:

Each flow will hash to one or the other links based on the  hashing algorithm. It's deterministic based on the details of the flow.  In your case both flows just happened to hash to the same bundle member  so all the traffic ended up on one bundle member. If you had used a SA  DA pair that hashes to the other link then you would have seen the 50/50  load balancing that you were expecting. If you had many different flows over this bundle then you would see a more even distribution of traffic even though it will not be equal in real world situations outside of the lab.

Thanks a lot!

Hi everyone,

Can anyone help to solve the issue regarding load balancing between ASR9k and Cat6509.

We have done Load balance regarding ip

RP/0/RSP0/CPU0:ASR_9010_1#show interfaces bundle-ether 2

Fri Dec  2 16:28:57.664 MSD

Bundle-Ether2 is up, line protocol is up

  Interface state transitions: 1

  Hardware is Aggregated Ethernet interface(s), address is 4055.392c.14e2

  Description: to_Cisco6509

  Internet address is Unknown

  MTU 1514 bytes, BW 20000000 Kbit (Max: 20000000 Kbit)

     reliability 255/255, txload 60/255, rxload 13/255

  Encapsulation ARPA,  loopback not set,

  ARP type ARPA, ARP timeout 04:00:00

    No. of members in this bundle: 3

        TenGigE0/1/0/4       Full-duplex      10000Mb/s    Active

        TenGigE0/2/0/4       Full-duplex      10000Mb/s    Active

        TenGigE0/3/0/1       Full-duplex      10000Mb/s    Configured

  Last input 00:00:00, output 00:00:00

  Last clearing of "show interface" counters 01:16:49

  5 minute input rate 1064973000 bits/sec, 488001 packets/sec

  5 minute output rate 4730570000 bits/sec, 620943 packets/sec

     2240244835 packets input, 620460311627 bytes, 308 total input drops

     393 drops for unrecognized upper-level protocol

     Received 140 broadcast packets, 72703 multicast packets

              0 runts, 0 giants, 0 throttles, 0 parity

     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort

     2846541625 packets output, 2715246843512 bytes, 0 total output drops

     Output 36 broadcast packets, 2909 multicast packets

     0 output errors, 0 underruns, 0 applique, 0 resets

     0 output buffer failures, 0 output buffers swapped out

     0 carrier transitions

Port-channel8 is up, line protocol is up (connected)

  Hardware is EtherChannel, address is 0026.99e5.ce53 (bia 0026.99e5.ce53)

  Description: To_ASR9K_1

  MTU 1500 bytes, BW 20000000 Kbit, DLY 10 usec,

     reliability 255/255, txload 13/255, rxload 60/255

  Encapsulation ARPA, loopback not set

  Keepalive set (10 sec)

  Full-duplex, 10Gb/s, media type is unknown

  input flow-control is off, output flow-control is off

  Members in this channel: Te7/2 Te7/7

  ARP type: ARPA, ARP Timeout 04:00:00

  Last input never, output never, output hang never

  Last clearing of "show interface" counters 01:17:14

  Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0

  Queueing strategy: fifo

  Output queue: 0/40 (size/max)

  5 minute input rate 4727599000 bits/sec, 620528 packets/sec

  5 minute output rate 1065604000 bits/sec, 487869 packets/sec

     4242596399 packets input, 4054351424974 bytes, 0 no buffer

     Received 4312 broadcasts (4261 multicasts)

     0 runts, 0 giants, 0 throttles

     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

     0 watchdog, 0 multicast, 0 pause input

     0 input packets with dribble condition detected

     3333670777 packets output, 912621405566 bytes, 0 underruns

     0 output errors, 0 collisions, 0 interface resets

     0 babbles, 0 late collision, 0 deferred

     0 lost carrier, 0 no carrier, 0 PAUSE output

     0 output buffer failures, 0 output buffers swapped out

But we may see traffic restriction 10 Gb/s.

What can be cause of the problem?

Is there soft restriction exist?

ASR9k 4.0.3