IP Library Granted Patent US 8,565,239
Granted Patent B2
US 8,565,239 · App. 12/756,598 · Granted Oct 22, 2013

Node based path selection randomization

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,565,239
App. No.
12/756,598
Granted
Oct 22, 2013
Kind
B2
Abstract

Methods and apparatus for randomizing selection of a next-hop path/link in a network are disclosed. An example method includes randomly selecting one or more path-selection randomization options to be applied to data packets processed in the network device. The example method further includes receiving a data packet and applying, by the network device, the one or more path-selection randomization operations to the data packet. The example method also includes determining a next-hop path for the data packet based on the one or more path-selection randomization operations and transmitting the data packet to a next-hop network device using the determined next-hop path.

Claims (55)

1. A method for processing packet data in a network device, the method comprising:

randomly selecting, by the network device one or more path-selection randomization options to be applied to data packets processed in the network device;

receiving, at the network device a data packet:

applying, by the network device, the one or more path-selection randomization operations to the data packet;

determining a next-hop path for the data packet based on the one or more path-selection randomization operations; and

transmitting, from the network device, the data packet to a next-hop network device using the determined next-hop path,

wherein the path-selection randomization options comprise operations for modifying a hash key, the operations for modifying a hash key including 1) operations for prepending a first hash key seed to respective hash keys of received data packets; 2) operations for appending a second hash key seed to the respective hash keys of the received data packets; and 3) operations for masking randomly selected bits of the respective hash keys of the received data packets.

2. The method of claim 1 , wherein the path-selection randomization options comprise:

operations for modifying a hash key;

a plurality of hash functions; and

operations for modifying a hash function output value.

3. The method of claim 1 , the operations for modifying a hash key further including

operations for interleaving a third hash key seed to the respective hash keys of the received data packets.

4. The method of claim 3 , wherein the operations for masking randomly selected bits include one or more of a logical XOR operation, a logical AND operation, a logical OR operation and a logical NOT operation.

5. The method of claim 1 , wherein randomly selecting one or more path-selection randomization options includes selecting one of a plurality of hash functions.

6. The method of claim 5 , wherein the plurality of hash functions includes one or more of a cyclic redundancy check (CRC)16 hash function, a CRC32 hash function, an exclusive or (XOR) hash function and a Pearson's hash function.

7. The method of claim 1 , wherein the path-selection randomization options comprise operations for modifying a hash function output value, the operations for modifying the hash value comprising operations to select a random set of bits from respective hash values of the received data packets, the random set of bits being selected during an initialization process.

8. The method of claim 1 , further comprising:

determining, by the network device, a hash value for the received data packet based on the selected path-selection randomization options;

determining, based on the hash value, an index for a destination mapping table; and

indexing the destination mapping table using the determined index to determine the next-hop path for the data packet.

9. The method of claim 8 , wherein determining the index for the destination mapping table and indexing the destination mapping table comprises:

determining a modulo of the hash value based on a number of available next-hop paths N and a replication factor rf a corresponding aggregate of the network device,

wherein the destination mapping table includes rf entries for each respective next-hop path for the corresponding aggregate.

10. The method of claim 9 , wherein the replication factor rf is randomly selected during an initialization for the corresponding aggregate.

11. The method of claim 1 , further comprising randomizing ordering of the destination mapping table entries.

12. The method of claim 1 , further comprising performing, by the network device, an initialization, the initialization including the random selection of the one or more path-selection randomization options.

13. A network device comprising a non-transitory machine readable storage medium having instructions stored thereon, wherein the instructions, when executed by the network device, cause the network device to:

randomly select one or more path-selection randomization options to be applied to data packets processed in the network device:

receive a data packet;

apply the one or more path-selection randomization operations to the data packet;

determine a next-hop path for the data packet based on the one or more path-selection randomization operations; and

transmit the data packet to a next-hop network device using the determined next-hop path,

wherein the path-selection randomization options comprise operations for modifying a hash key, the operations for modifying a hash key including 1) operations for prepending a first hash key seed to respective hash keys of received data packets; 2) operations for appending a second hash key seed to the respective hash keys of the received data packets; and 3) operations for masking randomly selected bits of the respective hash keys of the received data packets.

14. The network device of claim 13 , wherein the instructions, when executed by the network device, further cause the network device to:

determine a hash value for the received data packet based on the selected path-selection randomization options;

determine an index for a destination mapping table; and

index the destination mapping table using the determined index to determine the next-hop path for the data packet.

15. The network device of claim 14 , wherein the instructions for determining the index of the destination mapping table and indexing the destination mapping table cause the network device to:

determine a modulo of the hash value based on a number of available next-hop paths N and a replication factor rf for a corresponding aggregate of the network device, wherein the destination mapping table includes rf entries for each respective next-hop path for the corresponding aggregate.

16. The network device of claim 15 , wherein the replication factor rf randomly selected for the corresponding aggregate during an initialization of the network device.

17. The network device of claim 15 , wherein the instructions, when executed, further cause the network device to randomize ordering of the destination mapping table entries.

18. A method for processing packet data in a network device, the method comprising:

randomly selecting, by the network device, one or more path-selection randomization options to be applied to data packets processed in the network device;

receiving, at the network device, a data packet;

determining, by the network device, a hash value for the received data packet based on the selected path-selection randomization options;

determining, based on the hash value, an index for a destination mapping table;

indexing the destination mapping table using the determined index to determine the next-hop path for the data packet; and

transmitting, from the network device, the data packet to a next-hop network device using the determined next-hop path,

wherein the path-selection randomization options comprise operations for modifying a hash key, the operations for modifying a hash key including 1) operations for prepending a first hash key seed to respective hash keys of received data packets; 2) operations for appending a second hash key seed to the respective hash keys of the received data packets; and 3) operations for masking randomly selected bits of the respective hash keys of the received data packets.

19. The method of claim 18 , wherein the path-selection randomization options comprise:

operations for modifying a hash key;

a plurality of hash functions; and

operations for modifying a hash function output value.

20. The method of claim 18 , wherein randomly selecting one or more path-selection randomization options includes selecting one of a plurality of hash functions.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2012
From: MATTHEWS, BRAD; AGARWAL, PUNEET
To: BROADCOM CORPORATION
Reel/Frame 028420/0178 →