Network unit including address hashing
First Claim
1. Apparatus for reducing a first digital word to an output word of substantially lesser width in bits than the first digital word, said first digital word comprising mutually exclusive first and second parts each consisting of a different multiplicity of bits of the first digital word, said apparatus comprising:
- means for providing an adjustable auxiliary word;
combinatorial logic for combining said auxiliary word with a portion of one of said mutually exclusive parts of said first digital word to provide a seed word;
a hashing stage for hashing said seed word and a selected part of the first digital word; and
a selector stage operative in one cycle to select for the hashing stage said seed word and said first part of the first word, said first part not including said portion, and operative in another cycle to select for the hashing stage said second part of said first word, said second part including said portion.
6 Assignments
0 Petitions
Accused Products
Abstract
A network unit includes a forwarding database which includes entries relating packet addresses to forwarding data and is operative to form linked chains of entries wherein the entries in a chain represent different packet addresses which are reduced by hashing to the same pointer for the database. A seed for a hashing algorithm is provided by a combination, such as an exclusive-OR combination, of part of an input address word and a selected word. Hashing is preferably performed in at least two cycles, wherein in one cycle a hash function is applied to a portion of the input address not including the part which is combined with the selected word to constitute a hash seed and in another (preceding) cycle a further part of the address and the aforementioned hash seed are subject the hash function. The selected word may be a software programmable mask and it is possible thereby to ensure a high degree of randomness in the hash seed and to reduce the incidence of convergence of different addresses to a common pointer.
-
Citations
8 Claims
-
1. Apparatus for reducing a first digital word to an output word of substantially lesser width in bits than the first digital word, said first digital word comprising mutually exclusive first and second parts each consisting of a different multiplicity of bits of the first digital word, said apparatus comprising:
-
means for providing an adjustable auxiliary word;
combinatorial logic for combining said auxiliary word with a portion of one of said mutually exclusive parts of said first digital word to provide a seed word;
a hashing stage for hashing said seed word and a selected part of the first digital word; and
a selector stage operative in one cycle to select for the hashing stage said seed word and said first part of the first word, said first part not including said portion, and operative in another cycle to select for the hashing stage said second part of said first word, said second part including said portion. - View Dependent Claims (2, 3, 4)
-
-
5. A network unit including:
-
a multiplicity of ports for receiving and forwarding addressed data packets;
a forwarding database which includes entries relating packet addresses to forwarding data; and
apparatus for receiving a packet address as a first digital word for reducing a first digital word to an output word of substantially lesser width in bits that the first digital word, said first digital word having a plurality of mutually exclusive parts, said apparatus comprising;
means for providing an adjustable auxiliary word;
combinatorial logic for combining said auxiliary word with a portion of one of said mutually exclusive parts of said first digital word to provide a seed word; and
means for hashing in successive cycles of operation said seed word with respective ones of said mutually exclusive parts of said first digital word to produce the said output word, only one of said mutually exclusive parts of said first digital word including said portion, said output word constituting a pointer to an entry in said forwarding database. - View Dependent Claims (6, 7, 8)
-
Specification