throbber

`
`0’
`
`Européiisches Patentamt
`European Patent Office
`Office européen des brevets
`
`Hm"
`
`
`
`
`
`
`
`
`
`@ Publication number: 0 522 743 A1
`
`@
`
`EUROPEAN PATENT APPLICATION
`
`@ Application number: 92305770.7
`
`@ Int. 01.5: H04L 29/06, H04L 12/46
`
`Q2) Date of filing : 24.06.92
`
`Priority: 26.06.91 us 721166
`
`Date of publication of application :
`13.01.93 Bulletin 93/02
`
`Designated Contracting States:
`DE FR GB |T
`
`@ Applicant: DIGITAL EQUIPMENT
`CORPORATION
`146 Main Street
`Maynard, MA 01754 (US)
`
`@ inventor: Jain, Rajendra Kumar
`137 Dutton Road
`Sudbury, Massachusetts 01776 (US)
`Inventor: Yang, Henry S.
`11 Dascomb Road
`Andover, Massachusetts 01810 (US)
`Inventor: Hawe, William R.
`16 Independence Road
`Pepperell, Massachusetts 01463 (US)
`
`Representative : Oliver, Peter Anthony
`BEACHCROFT STANLEYS 20 Furnival Street
`London EC4A 1BN (GB)
`
`
`
`Combined hash table and CAM address recognition in a network.
`
`@ Method and apparatus for comparing a first
`value to a second value to determine if the first
`value equals the second value. Preferably,
`the
`first value is
`represented by (n) address bite
`received from a communication network. An
`address filter (10)
`includes circuitry for storing
`the received address and for applying all or a
`portion of the stored address to a CAM (12)
`containing entries storing one or more target
`addresses. The address fitter also includes a
`Hash fitter (14) for filtering the first value for
`determining if the first value is recognized by a
`Hash mask (16). For example, the received ad-
`dress is first applied to a CRC generator (22, 28)
`and a pluratity of the CRC bits,
`for example
`nine, are used to access the Hash mask. The
`address
`fitter
`further
`includes programmable
`control circuitry (U1, U2, U3) for indicating that
`the received address equals the target address
`if (a) the CAM has an entry that equals all or a
`portion of the received address and/or if (b) the
`CRC of the received address is recognized by
`the Hash fitter. The address filter also includes
`circuitry (28) for correcting the hash function,
`if
`required, for bits that arrive before the (n) ad-
`dress bits.
`
`EP0522743A1
`
`stream
`
`;
`(44
`1
`
`.
`F 2
`5‘8
`
`
`°‘°°"_’
`Zguirir‘er
`4M
`“$56
`
`
`gtfagm 1.. ........... ..2.9?‘Aadie’s's‘i'2'e'gi‘stéi':.._..'
`'
`23bi|sof
`lbitsof
`
`
`
`
`
`
`
`-
`
`m;
`
`21.
`
`15
`
`DccisionI
`LOGIC :
`
`Address
`Mmhofliput
`
`Jouve, 18, rue Saint-Denis, 75001 PARIS
`
`UNIFIED 1003
`
`UNIFIED 1003
`
`

`

`EP 0 522 743 A1
`
`FIELD OF THE INVENTION:
`
`This invention relates generally to data communication apparatus and method and, in particular, to appa-
`ratus and method enabling a local area network (LAN) station to efficiently recognize a received LAN address.
`
`BACKGROUND OF THE INVENTION:
`
`The subject matter of the following publications is incorporated by reference herein: American National
`Standard for Information Systems, Fiber Distributed Data Interface (FDDI) - Token Ring Media Access Control
`(MAC) ANSI X3. 139-1987; IEEE Standards for Local and Metropolitan Area Networks: Overview and Archi-
`tecture, Std 802-1990; A Primer to FDDI: Fiber Distributed Data Interface, copyright 1991, Digital Equipment
`Corporation.
`Reference is made to the following definitions.
`Station: An addressable logical and physical attachment in a ring, capable of transmitting, receiving, and
`repeating information.
`Ring: Two or more stations connected by a physical medium wherein information is passed sequentially
`between active stations, each station in turn examining or copying and repeating the information, finally re-
`turning the information to the originating station.
`Media Access Control (MAC): A Data Link Layer responsible for the scheduling of data transmissions to
`and for receiving transmissions from a shared medium Local Area Network (e.g., an FDDI ring ).
`Token: A unique symbol stream that indicates the rig ht to transmit on a shared medium. On a Token Ring,
`the Token circulates sequentially through the stations in the ring. At any time, it may be held by no stations or
`by one station.
`Frame: A Protocol Data Unit (PDU) transmitted between cooperating MAC entities on a ring, including a
`starting delimiter, addresses, a variable number of data octets (eight ordered bits that form a pair of data sym-
`bols), and an ending delimiter.
`Protocol Data Unit (PDU): A unit of data transfer between communicating peer layer entities which may
`contain control, address and data information. FDDI MAC PDUs are Tokens and Frames.
`Receive: The action of a station in accepting a Token, Frame, or other symbol sequence from the incoming
`medium.
`
`Transmit: The action of a station in generating a Token, Frame, or other symbol sequence and placing it
`on the outgoing medium.
`Addresses: Aset of 48-bit station addresses, which may be a station’s unique address, a 48-bit Broadcast
`Address (all ones), and any other 48-bit Group Addresses recognized by a station.
`Fig. 1 is an exemplary embodiment of a specific network topology. It should be realized that the teaching
`of the invention also applies to a number of other network topologies, including Carrier Sense Multiple Ac-
`cess/Collision Detect (CSMA/CD) networks.
`As seen in Fig. 1 a token ring 1 includes a set of stations 2 (designated A-N) that are serially connected
`by a transmission medium 3, such as an optical fiber, to form a closed loop. Information is transmitted sequen-
`tially, as a stream of bits, from one active station 2 to the next. Each station 2 generally regenerates and repeats
`each bit and serves as a means for attaching one or more devices to the ring for the purpose of communicating
`with other devices on the ring. A given station that has access to the medium 3 transmits information onto the
`ring, where the information circulates from one station to the next. The format of the circulating information
`includes a destination address, a source address, and a data field. In the IEEE 802 format, the first bit of the
`destination address specifies whether the destination address is an individual address or a group (multicast)
`address. That is, whether the destination address specifies the LAN address of a specific station or, in the case
`of a group address, the stations to which the associated data field is directed. An addressed destination station
`or stations copies the information as it passes. Eventually, the station that originally transmitted the information
`removes the information from the ring 1.
`Each LAN address, as specified by the IEEE 802 standard, consists of 48 bits. Of these, the first, or most
`significant, 24 bits identify the organization owning the address. For example, all group addresses assigned
`to a given organization begin with the same 24 bits that uniquely identify the organization. These first 24 bits
`are referred to as an "Organizationally Unique Identifier" (OUI). In general, in any given LAN the number of
`OUIs is small. The remaining 24 bits, for an individual address, uniquely identify each of the stations for that
`organization that are coupled to the LAN.
`On a token ring a Frame typically also includes a Frame Status field that contains an E-indicator, A-indicator
`and C-indicator. The E-indicator is used to indicate if the Frame has been detected to contain an error. The A-
`
`indicator is used to indicate if the destination address of the Frame has been matched by one or more stations
`2
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`

`

`EP 0 522 743 A1
`
`2 on the ring. The C-indicator is used to indicate if the Frame was received and copied by one or more stations
`2 on the ring.
`Each station 2 contains a Destination Address list. The Destination Address list contains a set of addresses
`
`that the station uses to compare with the Destination Address of each received Frame. If a match is found then
`the Frame is received and copied. On a token ring, if a match is found the station receives and copies the Frame
`and, in addition, sets the A-indicator and C-indicator when repeating the Frame. The Destination Address list
`contains the station's My Address and one or more Alias Addresses. An "alias address" is an address different
`from the station’s individual address but used in a similar manner as the individual address. For example, an
`application may require that an alias address be used as a source address when transmitting Frames. Also the
`"alias address" may be used to compare with the destination address field of a Frame when receiving Frames.
`Atypical implementation of one of the stations 2 may have two individual addresses and 32 group address-
`es in the Destination Address list.
`
`A problem arises as communication networks become larger and faster, and as addresses associated with
`stations increase in size. That is, a need has arisen to optimize a station address comparison function.
`In general, datalink adapters coupled to a LAN are required to recognize destination addresses associated
`with Frames conveyed by the LAN. Many conventional network adapters have only one individual address,
`which may be easily recognized. However, in that each network station may also accept a number of group
`addresses, the adapter is also required to quickly determine whether to receive the group Frame. For example,
`for some token ring networks, e.g., FDDI, receiving stations are required to set an "Address Recognized" flag
`in the received Frame. For the smallest size Frames this implies that the address must be recognized within
`11 octets, or 0.88 microseconds. This requirement places an upper bound on the time within which end stations
`must recognize group addresses. For example, bridges, which are used to interconnect two or more LANs, must
`recognize the destination addresses of every Frame and rapidly decide whether to receive the Frame for for-
`warding. Also, routers in wide area networks (WAN) typically must examine a large forwarding database to de-
`cide the output link for a given destination address.
`Several high-speed networks simplify the problem of address lookup by using a hierarchical address for-
`mat that allows the forwarding path to be looked up directly. Although this approach results in fast routing, the
`association of a destination’s unique identifier (generally a 48-bit individual address) to the corresponding hi-
`erarchical address at the originating station still requires searching through a large address database.
`One method to determine whether to accept the Frame of data is to employ a hardware lookup of the ad-
`dress in a list or a table of acceptable addresses. This is the approach taken in ContentAddressable Memories
`(CAMs). One significant advantage of a CAM is that there is provided perfect address recognition. That is, given
`a network address the CAM determines with certainty whether the address is within a table of acceptable ad-
`dresses. However, CAMs are highly gate-intensive and add significant complexity, power consumption, and
`consume a significant amount of surface area when implemented within an integrated circuit. Furthermore,
`the CAM search time increases as the number of addresses which must be recognized increases. With a trend
`towards a client-server form of distributed computing, the number of group addresses that a given station must
`receive is continuously increasing. As such, the practical limits of the CAM-approach to address recognition is
`quickly reached.
`Another address recognition method employs a hash filter to map the received address into a bit mask.
`Hashing is generally performed in two steps. In the first step, an address A is converted to a hash value f(A).
`In the second step, some m bits of f(A) are extracted so that a total number of hash cells is 2"". The logic state
`of a predetermined bit in the mask indicates whether a given received address is to be accepted or rejected.
`One significant advantage of the hash approach is that the speed of hashing is independent of the number of
`addresses and is thus particularly suitable if the number of acceptable addresses is large. However. a disad-
`vantage of hashing is that if the size of the bit mask is made small, so as to reduce the required circuitry, several
`addresses may map to the same bit. Thus, the hashing approach provides imperfect filtering of the received
`addresses.
`
`In many LANs, the destination address is the first part of the Frame, and the Frame is passed through a
`cyclic redundancy check (CRC) circuit. As a result, it has been recognized that the bits of the CRC provide a
`mechanism for hashing. In that each network station may have a number of group addresses that are to be
`received by the station, the network adapter employs the CRC polynomial as a hash function to reject Frames
`associated with undesired group addresses.
`In one hashing approach, described in a device specification entitled "MK68590 Local Area Network Con-
`troller for Ethernet" (United Technologies Mostek), a group address filter includes a 64 bit mask composed of
`four sixteen bit registers used to accept incoming group addresses. This is an imperfect filter that requires a
`host processor to perform final filtering. The first bitof the incoming address must be a "1" for eitherthe Logical
`Address Filter orthe BroadcastAddress decode to be enabled. Otherwise the incoming address is an individual
`3
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`

`

`EP 0 522 743 A1
`
`address and is compared against the contents of a 48 bit register.
`All incoming data passes through a CRC Generator. In the case of a group address, the six most significant
`bits of the CRC Generator are strobed into the Hash Register after the 48th bit of the group address has passed
`through the CRC Generator. The six bits select one of the 64 bits in the Logical Address Filter such that Hash
`Address 00 selects bit 0 and Hash Address 63 selects bit 63. If the selected mask bit is a "1", the address is
`accepted. However, different organizations can assign group addresses which may map to the same bit of the
`hash mask, resulting in a collision.
`What is not taught by the prior art, and what is thus an object of this invention to provide, is a network ad-
`dress recognition method and apparatus that combines the use of a CAM and a Hash filter, in conjunction with
`a careful allocation of group addresses, to provide perfect address recognition while minimizing a required
`amount of circuitry and complexity.
`The apparatus and method of the invention described herein provide improved flexibility in assigning group
`addresses.
`
`SUMMARY OF THE INVENTION
`
`The foregoing and other problems are overcome by a method and apparatus for comparing a first value
`to a second value to determine if the first value equals the second value. The invention in its broad form resides
`in a method, for a network having a destination address comparator, of comparing a first value comprised of
`(n) bits to a second value to determine if the first value equals the second value, said method comprising the
`steps of: comparing a portion of the first value, the portion being comprised of (n - x) bits, to one or more values
`stored within a memory means for determining if the memory means has a stored value that corresponds to
`the portion ofthe second value; filtering the first value with a hash filter means for determining if the first value
`is recognized by the hash filter means; and declaring that the first value equals the second value only if it is
`determined that (a) the memory means has a stored value that equals the portion of the first value and that
`(b) the first value is recognized by the hash filter means.
`Preferably, the first value is represented by (n) address bits received from a communication network, such
`as a Token ring LAN.
`As described herein, an address comparator includes circuitry for storing the received address and for ap-
`plying all or a portion of the stored address to a CAM containing entries storing one or more target addresses.
`The address comparator also includes a Hash filter for filtering the first value for determining if the first value
`is recognized by a Hash mask. The received address is applied to a hash function generator, such as a CRC
`generator, and a plurality of the resultant bits, for example nine, are used to access the Hash mask. The address
`comparator further includes a programmable control circuitry for indicating that the received address equals
`the target address if (a) the CAM has an entry that equals all or a portion (OUI) of the received address and/or
`if (b) the bits from the hash function generator, resulting from the received address, are recognized by the Hash
`filter. In a presently preferred embodiment of the invention the hash function generator includes a CRC gen-
`erator. A technique is also disclosed for correcting the CRC for bits that arrive before the destination address.
`
`BRIEF DESCRIPTION OF THE DRAWING
`
`A more detailed understanding of the invention may be had from the following description of a preferred
`embodiment, given by way of example and to be understood in conjuction with the accompanying drawing
`wherein:
`
`Fig. 1 schematically depicts a token ring network;
`Fig. 2a is a simplified block diagram showing the combined CAM/Hash filter used to recognize network
`addresses;
`Fig. 2b is a block diagram showing in greater detail the CRC Correction block of Fig. 2a; and
`Figs. 3 and 4 illustrate address storage formats for a 43 bit address and for two Organizationally Unique
`Identifiers, respectively.
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`The ensuing description of a preferred embodimentof the invention is made in the context of a FDDI token
`ring data communications network that conforms to the ANSI and IEEE 802 standard. It should be realized.
`however, that the teaching of the invention is applicable to other networks and standards, such as CSMA/CD,
`OSI, and TCP/IP networks. In general, the teaching of the invention is applicable to any network that operates
`in accordance with IEEE 802 address formats, including, by example, IEEE 802.3, IEEE 802.5, etc..
`4
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`

`

`EP 0 522 743 A1
`
`In this regard reference is made to the following documents: ANSI/IEEE Std. 802.3-1985, "Carrier Sense
`Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications", Insti-
`tute of Electrical and Electronic Engineers; ANSI/IEEE Std. 802.5—1989, "Token Ring Access Method and Phys-
`ical Layer Specifications", Institute of Electrical and Electronic Engineers; Postel, J., Ed. "Internet Protocol
`Specification", SRI International, Menlo Park, CA, Sept. 1981 RFC-791; Postel, J., Ed. "Transmission Control
`Protocol Specification", SRI International, Menlo Park, CA, Sept. 1981, RFC-793; and Information Processing
`Systems - Open Systems Interconnection (OSI) - Basic Reference Model, International Organization for Stan-
`dardization, Oct. 1984, Draft International Standard 7498.
`Furthermore, and as will be made apparent below, it should be realized that the teaching of the invention
`applies in general to the decoding of information that is expressed in a digital format.
`In recognition of the fact that there are generally but a few OUIs associated with a given LAN, and referring
`to block diagram of Fig. 2a, the invention employs an address filter 10 having a CAM 12 that recognizes the
`DUI portion of the LAN address. The CAM 12 thus confirms whethera specific network address has been as-
`signed to an organization associated with the station 2 that includes the address filter 10. In parallel with the
`operation of the CAM 12, the invention employs a hash filter 14. This combination of CAM Iookup and hash
`filtering results in perfect filtering of network addresses, provided that the addresses are assigned such that
`collisions cannot occur. That is, perfect filtering is achieved so long as no more than one address hashes to
`any given bit in a hash mask 16. Alternately, given a set of addresses, the teaching of the invention enables
`the selection of a hash function that eliminates or minimizes the occurrence of hashing collisions.
`By careful address allocation perfect filtering can be achieved. Careful address allocation entails selecting
`an address, hashing the selected address, and determining if a collision occurs. If collision occurs another ad-
`dress is selected and the process repeated.
`It should be noted that in Fig. 2a a signal line designated USER INPUT is coupled to a plurality of circuit
`blocks. This signal line indicates a data path through which a user programs values into certain of the logic
`blocks, as will be described.
`The incoming bit stream from the LAN 1 is routed in parallel to an address register 20, that includes serially
`connected registers 20a, 20b, and 20c, and to CRC logic 22.
`A bit counter 18 is connected to a bit clock and is enabled to count the bit clocks by a "start of frame" signal.
`The counter 18 is used to give an indication of the arrival of the last bit of the destination address. For example,
`in FDDI the counter 18 counts the bit clocks until it reaches a count of 56. This indicates a condition wherein
`
`56 bits have been received from the LAN 1. The first eight bits of the Frame, which indicate Frame control in-
`formation, are stored in an eight bit Frame control register 20d that has an input serially coupled to an output
`of address register 20c. The next 48 bits, indicating the destination address for the Frame, are stored in the
`address registers 20a—20c. The first bit of the 48 bits is stored in the 1-bit register 20c and indicates whether
`the address is an individual or a group address. This bit is referred to as an I/G bit. The remaining 47 address
`bits are stored in address registers 20a and 20b.
`The CAM 12 includes a plurality of entries, for example four, only one of which is shown in Fig. 2a. The
`CAM entry is comprised of three registers: a 24 bit CAM entry 24a, a 23 bit CAM entry 24b, and a one bit CAM
`entry 240. Each register of the CAM entry has an output coupled to an input of an associated comparator 26a,
`26b, and 26c. The other comparator in put is coupled to the associated 24 bit, 23 bit or one bit address register
`20a-200, respectively.
`There are two output signal lines from the CAM 12. Depending upon the state of mode control registers
`associated with the CAM entries, the first output (x) indicates whether the received address matches the first
`24 bits, the DUI address portion, of any CAM entry. The second output (y) indicates whetherthe address match-
`es all 48 bits ofany CAM entry.
`Specifically, the (x) output is sourced from a gate 12a having as inputs the output of bit counter 18 and the
`outputs of comparators 26b and 26c. Gate 12a asserts an enabling output when, after the reception of 56 bits,
`the first 24 bits of the CAM entry equal the 24 bits of the address stored in address registers 20b and 200. The
`output (y) is sourced from a gate 12b having as inputs the output of gate 12a and comparator 26a. The output
`of gate 12b is asserted when. after the reception of 56 bits. the first 24 bits of the CAM entry equal the 24 bits
`of the address stored in address registers 20b and 20c, as indicated by the output of gate 12a, and also the
`24 bits of CAM entry 24a equal the 24 bits in address register 20a.
`As was previously stated, only one CAM entry is shown in Fig. 2a. Typically, each of the plurality of CAM
`entries includes 48 bits of CAM entry 24a-24c, associated comparators 26a-260 and decoding gates. The mode
`control registers U1. U2 and U3 are associated modes for the matching CAM entry. After the destination ad-
`dress has been received fully the destination address is compared to all of the CAM entries in parallel so as
`to determine if one of the plurality of CAM entries matches the received address.
`Further in accordance with the invention a hashing function generator is supplied to operate upon the re-
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`

`

`EP 0 522 743 A1
`
`ceived bit stream. In a presently preferred embodiment of the invention the hashing function generator is a CRC
`generator, although the teaching of the invention is not limited to only the use of a CRC technique. For example,
`the hash function generator may employ specific bits of the destination address, a correlation of address bits,
`checksums, or XOR folding. A description of these various techniques is made in a technical report entitled "A
`Comparison of Hashing Schemes for Address Lookup in Computer Networks", DEC-TR-593, by R. Jain (1989),
`which is available from the Digital Equipment Corporation, Littleton, MA 01460.
`The CRC logic 22 performs a 32-bit Cyclic Redundancy Check (CRC) of the first 56 bits. By removing the
`effect of the first eight bits, that is, the Frame control field stored in register 20d, the CRC for the destination
`address is obtained. Only the first few bits of the CRC, for example nine bits, are used in hashing. The effect
`of the Frame control field is removed by CRC correction logic 28. Provided with the Frame control field from
`register 20d the CRC correction logic 28 determines the quantity to be exclusive-ored with the output of the
`CRC logic 22 to obtain only the CRC for the received address. The corrected nine bits of CRC are used as an
`index into a hash mask which, in a presently preferred embodiment of the invention, is a 512-bit hash mask
`16 comprised of, by example only, 32 16-bit registers HM00-HM31.
`For embodiments of the invention not having a Frame control field before the destination address no cor-
`rection of the hashing function may be required. Furthermore, for embodiments of the invention that employ
`other than a CRC technique, and that require hash function correction, the correction mechanism is selected
`in accordance with the hash function.
`
`As seen in Fig. 2b the CRC correction logic 28 includes, in a presently preferred embodiment of the in-
`vention, a read only memory (ROM) 28a that stores a set of nine (ROM locations 0-8) n-bit numbers, wherein
`n equals the number of bits of CRC that are used to index the 2n hash mask 16. ROM 28a has address inputs
`coupled to the frame control register 20d. The CRC correction logic 28 also includes an n-bit correction register
`28b which is initialized with the contents of the 0th ROM location. In operation, the content of the ith ROM 28a
`location is exclusive-or’ed with logic 28c to the correction register 28b if and only if the ith bit in the frame control
`register 20d is set. This operation may occur as the frame-type bits are received from the LAN and well before
`the final bit of the destination address is received. After the last bit of the destination address has been received
`
`the content of the correction register 28c and the CRC register 22a are exclusive-or'ed through logic 28d to
`produce the n-bit index into the hash mask 16.
`In accordance with a preferred embodiment of the invention a set of nine 32-bit correction values, ex-
`pressed in hexadecimal notation, is as follows:
`
`0
`
`1
`
`mNODU‘l-FODN
`
`
`
`4F-57-68-11
`
`BB-7E—75-34
`
`2D-DO—EE-65
`
`94-88-F9-E9
`
`08-24-F2-2F
`
`E6-72-F7-CC
`
`73-39-7B-E6
`
`39-90-BD-F3
`
`9E—AE—D0-22
`
`
`
`
`
`Only those bits that are used to form the index into the hash mask need to be stored in the ROM 28a. For
`example, for a nine-bit implementation the ROM 28a contains the following:
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`

`

`
`
`
`
`ROM 28a Location Content
`
`EP 0 522 743 A1
`
`
`
`0
`
`1
`
`O’NCDO‘I-PLON
`
`10011110-1
`01001111-0
`
`10111011-0
`
`00101101-1
`
`10010100-1
`
`11001000—0
`
`11100110-0
`
`01110011-0
`
`00111001-1
`
`
`
`
`
`These are the first nine bits of the 32-bit correction values shown previously and are obtained by evaluating
`the expression:
`
`i). am i.
`modi x<55'
`by setting i=1, 2, ..., 8, where the cyclic redundancy check polynomial is g(x).
`The content of the 0th ROM 28a location is
`
`modl (X56 + X48) '00, 900]-
`In this expression l(x) is a polynomial of degree 31 with all coefficients equal to one.
`As an example, the received frame control is 01010000, which is a Logical Link Control (LLC) frame of pri-
`ority 0 (lowest asynchronous priority). The frame control information is stored within the frame control register
`20d.
`
`After the frame control is received, the computation of the correction factor is begun. In that the second
`and fourth bits in the frame control are set, ROM locations 0, 2, and 4 are exclusive-or’ed as follows.
`
`0
`
`2
`
`4
`
`result
`
`10111011-0
`
`10010100-1
`
`11100110-0
`
`11001001-1
`
`It will be remembered that the correction register 28b was initialized to the content of ROM 28a location
`zero. The result is stored in correction register 28b.
`After 56 bits of the frame are received (i.e., the last bit of the destination address), the CRC register 22a
`contains:
`
`10101110-01011100-10111000-00000110
`
`Employing logic 28d to exclusive-or the first 9-bits of the CRC register 22a with the correction factor stored
`in correction register 28b there is obtained:
`
`10101110-0
`
`11001001-1
`
`result
`
`01100111-1
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`

`

`EP 0 522 743 A1
`
`The 9-bit index into the hash mask 16 is thus 1-11100110. or 486.
`If an B-bit index is desired instead of a 9-bit index, it is preferred to use bits 2 through 9 (rather than bits
`1 through 9). The 8-bit index using these bits would be 1-1110011, or 243.
`Having thus described a presently preferred embodiment of the CRC correction logic 28, the discussion
`of the remainder of Fig. 2a will now be continued.
`The user specifies acceptable address match patterns by programming, for each CAM entry. the associ-
`ated mode control registers U1 , U2 and U3. This programming is accomplished in accordance with the following
`Table.
`
`U1
`
`U2
`
`U3
`
`48-bit
`
`OUI
`
`Hash-mask
`
`control
`
`control
`
`control
`
`Resulting mode
`
`N
`
`N
`
`N
`
`Y
`
`Y
`
`Y
`
`Y
`
`N
`
`N
`
`Y
`
`Y
`
`N
`
`N
`
`Y
`
`Y
`
`N
`
`Y
`
`N
`
`Y
`
`N
`
`Y
`
`N
`
`Y
`
`N
`
`Accept all Frames
`
`having Hash mask
`
`comparison only
`
`All Frames having 001
`
`match are accepted
`
`A11 Frames having OUI
`
`match *and* Hash are
`
`accepted
`
`Full 48-bit match
`
`(Normal CAM Mode)
`
`Full 48-bit match
`
`*or* Hash mask
`
`comparison
`
`Full 48-bit match
`
`*or* OUI match
`
`Full 4a-bit *or*
`
`(OUI Match 1*and*
`
`Hash mask match)
`
`None
`
`A Decision Logic Block 32 includes gates connected as shown and decodes the output of Counter 18, the
`outputs Aand B of the CAM 12, the outputs of mode registers U1, U2, and U3, and the outputofthe Hash Mask
`16 so as to provide a signal designated ADDRESS MATCH OUTPUT. ADDRESS MATCH OUTPUT is asserted
`if the received address is accepted, otherwise ADDRESS MATCH OUTPUT is deasserted. Other circuitry, not
`shown, receives the ADDRESS MATCH OUTPUT signal and performs further MAC functions.
`It should be noted that 48—bit or OUl-match user choices are per-CAM entry choices, whereas the hash
`match choice applies globally to all CAM entries. For example, a user may specify two OUl’s: one to be accepted
`unconditionally while the other is to be accepted only if the corresponding hash-bit is also set.
`Another mode of use employs a plurality of the hash masks 16, with the user specifying a specific hash
`mask number for use with each CAM 12 OUI. For this embodiment, and by example, four 128-bit hash masks
`are provided. Afirst CAM entry is associated with a first hash mask, a second CAM entry is associated with
`a second hash mask etc. An OUI match with a particular one of the CAM entries selects the corresponding
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`

`

`EP 0 522 743 A1
`
`hash mask to be used for the hash filter. The dashed line shown in Fig. 2a indicates a hash mask select input
`from the CAM 12.
`
`Although the hash technique may used for both individual and group addresses, it is most effective if used
`only for group addresses. This is because the group address assignments may be readily controlled to avoid
`all hash collisions, while individual address assignments are not normally as readily controlled. The output sig-
`nal line from the 1-bit register, the l/G bit, is depicted to show a preference that the hash mask be used only
`for group addresses. This signal line is not required if individual addresses are also to be recognized using the
`hash mask.
`
`In summary, an embodiment of the invention includes for each of a plurality, for example four, of addresses
`(ADDRESS 1-ADDRESS 4), a set of mode control registers (U1-U3), a set of address registers (20a-20c), and
`a set of CAM entry registers 24a-24c and associated supporting circuitry, including the comparators 26a-26c.
`The hashing function for all address entries is accomplished with the CRC logic 22, the CRC correction logic
`28, and the Hash mask 16. The address size used is 48 bits, which includes the 24 bit OUI. Filtering of addresses
`is accomplished with a 512 bit hash function indexed by nine bits of the corrected CRC.
`Afeature of the invention is the use of a 48-bit CAM entry to store two 24-bit OUls, referred to herein as
`OUI Aand OUI B. T

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket