throbber
[19]
`United States Patent
`5,805,808
`
`Hasani ct al.
`[45] Date of Patent:
`Sep. 8, 1998
`
`[11] Patent Number:
`
`USOUSSOSSOSA
`
`[54] REAL TIME PARSER FOR DATA PACKETS
`IN A COMMUNICATIONS NETWORK
`
`[75]
`
`Inventors: Santosll K. Hasani, Nashua, N.II.;
`Salish L. Rege, (lmlon; Mark F.
`Kcmpf, Stow, both of Mass.
`
`.
`173] M‘tlgnw Digital Equipment Cflrporatifln,
`Maynard, M335.
`
`[21] Appl. No.: 838,678
`
`395.1650
`21l99fl Bourne
`4,905,138
`T1l990 Fischer .................................... 3641200
`4,941,089
`12.11991! MCCOUI
`................................. 37"W85A
`4,979,167
`211991 David Ct 31.
`36419111.)
`4,991,133
`5,056,058 1011991
`lIirata Cl 31.
`..
`. 364N110
`
`.............................. 370185
`5,058,110
`1011991 Beach at al.
`5,067,lf|4
`“([991 Krishnakumar cl al.
`395.5375
`5.228.083
`111993 Lozowick cl al.
`..... 330m
`
`..
`5,235,644
`811993 Gupta Ct 31.
`380141.}
`
`. 3951650
`5,249,292
`9.11993 Cltiappa
`
`5,361,353
`1111994 Carr el al.
`395nm
`
`[22]
`
`Filed:
`
`Apr. 9, I997
`.
`.
`‘
`Related U'b' Application Data
`[63] Conlinualinn of Ser. No. 365,993, Dec. 29, 1994, aban—
`duned. which is a continualion ()1 Ser. No. 814,997, Dec. 27,
`1991, abandoned.
`
`[51]
`[52]
`[58]
`
`[56]
`
`...................................................... G061” 13100
`Int. Cl.‘i
`[1.5. CI. ......................................... 39512002, 37021392
`Field Of Search
`3951801), 2011.15,
`395-20222 84“: 841: 851: 1:53: 18113;
`3701-5" 351’ 353’ 389’ 39" 401’ 402;
`38013, 4, 9, 28, 37, 42,49, 50
`
`References Cited
`U.S. PA'l'IiN'l' DOCUMENTS
`
`Primary EJt'rrmr'ner—Alpcsh M. Shah
`Afton-re}; Agent, or Firm—Christine M. Kuta; A. Sidney
`101105101]
`
`[57]
`
`ABSTRACT
`
`Aparscr for reading bits of a packet has a set of logic circuits
`implemented in a computer chip; 3 memory interacting with
`[he c0mpulcrchip,1hc memory vaiding lirsl dam 10 [ha gel
`01‘ logic circuits; means I‘m reading hits from any field 01
`packet into the set nilugic circuits, the hits providing second
`_
`1
`,
`._ 5 _
`-
`,_
`_
`_
`,
`_-
`‘
`_
`data In the act L11 lug“. LlTLllllE-u, means, responsive to the Inst
`
`data and the second data, for the logic circuits to interpret
`bits of the packet.
`
`4,869,8le
`
`6;]989 Knhayashi el al.
`
`....................... 370m
`
`13 Claims, 21 Drawing Shoots
`
`PACK”
`PAGE TABLE mm
`0“ MMME
`170
`190
`
`SYSTEM
`BUS
`
`PACKET
`MEMORY
`
`INTERFACE
`
`
`
`
`ACTIVE —
`
`
`BULKHEAD I
`144
`
`
`-
`
`202
`
`214
`
`m
`
`'
`
`142
`
`EX 1015 Page 1
`EX 1015 Page 1
`
`

`

`US. Patent
`
`Sep. 8, 1998
`
`Sheet 1 of 21
`
`5,805,808
`
`
`
`13_0
`
`110
`
`110
`
`FIG. 2
`
`EX 1015 Page 2
`EX 1015 Page 2
`
`

`

`US. Patent
`
`pe5
`
`w.
`
`n...m
`
`5,805,808
`
`
`
`eHmo§m§§nEvzma...mwfiEng
`
`Nrmoa
`
`EEEE
`
`GE
`
`a:
`
`2395
`
`man
`
`NvuOE”
`
`3:
`
`m.03
`
`
`
`8.,mod“;
`
`.01}asknow
`%333a.
`
`rmezm6sz
`
`“nmummmmb$323”
`
`2E
`
`m>§o<
`
`BEES?”Sn
`
`EX 1015 Page 3
`EX 1015 Page 3
`
`
`
`

`

`US. Patent
`
`Sep.8,1998
`
`Sheet 3 of 21
`
`5,805,808
`
`
`
`PARSER
`DATABASE
`
` 182
`
`FIG. 4
`
`
`
`
`
`PMC CONTROL
`
`. RMC CONTROL
`
`MISC. CONTROL
`
`15
`
`14 13
`
`12
`
`11
`
`10
`
`9
`
`8
`
`7
`
`6
`
`5
`
`4
`
`0
`
`HIE IIMMM
`
`FIG. 6
`
`EX 1015 Page 4
`EX 1015 Page 4
`
`

`

`US. Patent
`
`Sep. 8, 1998
`
`Sheet 4 of 21
`
`5,805,808
`
`Illa-Ill-
`
`mmDmmOm<w<flUQOWMm
`
`EggEma59m
`
`BEEEEEE
`
`E3042
`
`<m.05
`
`ED...$5$98.6$388
`
`FEI:m
`
`
`
`nan...32.04202;
`
`E5013
`
`EX 1015 Page 5
`EX 1015 Page 5
`
`
`
`

`

`US. Patent
`
`Sep.8,1998
`
`Sheet 5 or 21
`
`5,805,808
`
`72(64DATA + 3 PARITY)
`
`
` FC(8 BITS)
`
`
`BITS
`
`BLOCK 7-3
`
`DSAP(8 BITS)
`
`P1D(8 BITS x 5)
`
`Uindcx (5 BITS)
`
`BLOCK 9 (DSAPs)
`
`BLOCK 15-30
`
`( FILTERING
`INFORMATION FOR
`FC.DA AND LLC
`
`COMBINATION)
`
`( FIL'I'ERING INFORMATION
`FOR FC AND DA
`238
`
`
`COMBINATION)
`
`
`BLOCK10-14(PIDs) -
`
`
`
`
` 242
`
`
`
`
`BLOCK 31 (MORE
`FILTERING INFORMATION,
`
`243
`----------------------
`
`FC_CODE (3 BITS)
`pROMISCUOUS USER
`
`FILTBRING INFORMATION)
`
`
`FIG. 5B
`
`EX 1015 Page 6
`EX 1015 Page 6
`
`

`

`US. Patent
`
`Sep.8,1998
`
`Sheet 6 0f21
`
`5,805,808
`
`63
`
`62
`
`32
`
`31
`
`29 28
`
`0
`
`an a
`
`FIG. 7
`
`63
`
`62
`
`61
`
`0
`
`FIG. 8
`
`63
`
`62
`
`61 60
`
`59
`
`58 57
`
`53
`
`52 51
`
`0
`
`wan-mm-
`
`FIG. 9
`
`63
`
`62
`
`61
`
`{J
`
`fi-I—M
`
`FIG. 10
`
`EX 1015 Page 7
`EX 1015 Page 7
`
`

`

`US. Patent
`
`Sep.8,1998
`
`Sheet 7 of 21
`
`5,805,808
`
`63
`
`62
`
`61
`
`0
`
`II_I
`
`FIG. 11
`
`7
`
`6
`
`5
`
`4
`
`0
`
`III-
`
`FIG. 12
`
`63
`
`61 60
`
`59 58
`
`53
`
`52
`
`---E
`
`51
`
`50
`
`49
`
`48
`
`47
`
`46
`
`45
`
`4-4
`
`43
`
`42
`
`41
`
`D
`
`H/A
`HJA
`CLASSL HIA H/A H/A DIS HIA DIS HIA
`CXT RXT cm RUI RU] COT COT USLLC SNAP
`
`FIG. 13
`
`63
`
`62
`
`58 57
`
`53
`
`52
`
`51
`
`0
`
`I-II
`
`FIG. 14
`
`EX 1015 Page 8
`EX 1015 Page 8
`
`

`

`US. Patent
`
`Sep.8,1998
`
`Sheet 8 of 21
`
`5,805,808
`
` 402
`
`408
`
`FIG. 15A
`
`404
`
`Y
`
`FC
`DISCARD
`
`PROM
`405 FILTERING
`
`DA
`
`FILTERING
`
`
`FCDA
`DISCARD
`
`
`
`
`
`PROM USER
`FILTERING
`
`FIG. 15C
`
`
`
`USER
`VALIDITY
`
`FILTERING
`
`EX 1015 Page 9
`EX 1015 Page 9
`
`

`

`US. Patent
`
`Sep.8,1998
`
`Sheet 9 of 21
`
`5,805,808
`
`READ DATABASE FOR
`DA 6 TIMES AND GET
`
`412
`
`
`
`
`FINAL 63-BIT MASK
`
`
`
`OBTAIN 6-BIT
`DA INDEX FROM
`
`
`APPEND 6-BIT
`
`63-BIT MASK
`
`
`AMC INDEX
`
`PROM USER
`
`TO FC CODE
`
`FILTERING
`
`
`
` APPEN'D é—BIT DA
`
`418
`INDEX TO FC CODE
`
`
`
`
`
`FCANDDA
`FIL'I'ERING
`
`FIG. 15B
`
`EX 1015 Page 10
`EX 1015 Page 10
`
`

`

`US. Patent
`
`Sep. 3, 1998
`
`Sheet 10 M21
`
`5,805,808
`
`NULL
`DSAP
`Emma
`
`
`READ DATABASE FOR
`PID 5 TIMES & GET
`63-BIT MASK
`
`SNAP
`DSAP
`mTERJNG
`
`
`
`492
`
`mom USER
`FIL'I‘ERING
`
`
`
`
`
`copy UNK BIT
`DSAP
`
`
`as?”
`FROM (:31 T0 FV
`
`494 OBTAIN 6-BIT LLC
`
`
`APPEND 6~BIT UNK
`INDEX TO PREVIOUS
`9-BIT INDEX
`
`APPEND 6-BIT INDEX
`TO PREVIOUS 9-BIT
`
`INDEX
`
`N
`
`48
`
`Y
`
`INDEX FROM 63-BIT
`
`MASK
`
`finflgmo
`
`FIG. 15D
`
`EX 1015 Page 11
`EX 1015 Page 11
`
`

`

`US. Patent
`
`Sep. 8, 1998
`
`Sheet 11 0f 21
`
`5,805,808
`
`488
`
`
`READ FC, DA,
`&. LLC DATA
`FROM DATABASE
`
`500
`
`
`
`
`PROM USER
`FILTERING
`
`
`
`READ FC, DA, & LLC USER
`DATA FROM DATABASE
`WITH FCDALLC INDEX
`
`506
`
`
`
`NON SNAP-SAP
`FILTERH‘IG
`
`COPY H/A(SNAP), TYPE, MD,
`INDEX IN FV
`
`512
`
`
`
`
`
`514
`
`USER
`VALIDITY
`FILTERING
`
`FIG. 15B
`
`EX 1015 Page 12
`EX 1015 Page 12
`
`

`

`US. Patent
`
`Sep. 8, 1998
`
`Sheet 12 0er
`
`5,805,808
`
`510
`
`NON SNAP SAP
`FILTER [N6
`
`522
`
`N
`
`COPY HIA(USLLC , TYPE,
`MD, UINDEXI FV
`
`520
`
`
`
`
`IS
`THIS
`
`
`CLASS 1
`
`
`USER
`
`
`Y
`
`530
`
`532 o
`
`524
`
`N
`
`Y
`
`534
`
`CLASS 1
`KID/TEST
`FILTERING
`
`RESPONSE
`
`COWAND
`
`USER
`VALIDITY
`FILTERING
`
`536
`
`540
`
`RUI
`DISCARD
`?
`
`Y
`
`542
`
`COPY HIA CUI), MD, TYPE,
`UIN EX IN FV
`
`PROM USER
`FILTERING
`
`N
`
`533
`
`COPY H/A(RUI), MD, TYPE,
`UINDEX IN FV
`
`544
`
`USER
`VALIDITY
`FILTERING
`
`546
`
`USER
`VALIDITY
`FILTERING
`
`FIG. 15F
`
`EX 1015 Page 13
`EX 1015 Page 13
`
`

`

`US. Patent
`
`Sep. 3, 1998
`
`Sheet 13 M21
`
`5,805,808
`
`CLASS 1 XID I TEST
`FILTERING
`
`COT
`DISCARD
`
`PROM USER
`FIL'I'ERING
`
`COPY HIA(COT), TYPE,
`MD, UINDEX IN FV
`
`558
`
`USER VALIDITY
`FIIJ'ERING
`
`RESPONSE
`
`COMMAND
`
`570
`
`552
`
`
`
`COPY_/A(RXT),MD,TYPE_INDEXIN FV
`
`
`
`COPY HIA(CXT), TYPE,MD, UINDEx IN FV
`
`0
`
`USER VALIDITY
`FIL’I‘ERING
`
`O 5“
`
`USER VALIDITY
`FILTERING
`
`FIG. 156
`
`EX 1015 Page 14
`EX 1015 Page 14
`
`

`

`US. Patent
`
`Sep. 3, 1993
`
`Sheet 14 01'21
`
`5,805,808
`
`NULL DSAP
`FILTERING
`
`470
`
`575
`
`574
`
`N
`
`Y
`
`NULL NXT
`DISCARD
`(FROM
`CR 1)
`7
`
`
`
`N
`
`573
`
`Y
`
`PROM USER
`FILTERING
`
`532
`
`530
`
`PUT TYPE =
`OTHER IN FV
`
`USER
`VALIDITY
`FILTERING
`
`592
`
`
`
`
`NULL RXT
`DISCARD
`
`
`(FROM
`CR 1)
`1'
`
`N
`
`594
`
`Y
`
`PROM USER
`FILTERING
`
`534
`
`RESPONSE
`
`COMMAND
`
`586
`
`PUT TYPE =
`XID / TEST IN FV
`
`PUT TYPE -
`OTHER IN FV
`
`596
`
`0 59°
`
`USER
`VALIDITY
`FILTERING
`
`0 5”
`
`USER
`VALIDITY
`FILTERING
`
`FIG. 15H
`
`EX 1015 Page 15
`EX 1015 Page 15
`
`

`

`US. Patent
`
`Sep. 3, 1998
`
`Sheet 15 6er
`
`5,805,808
`
`474
`
`SNAP DSAP
`FILTERING
`
`600
`
`N
`
`502
`
`
`
`
`SNAP NXT
`DISCARD
`(FROM
`CR 1)
`?
`
`604
`
`Y
`
`PROM USER
`FILTERING
`
`Y
`
`N
`
`608
`
`505
`
`PUT TYPE =
`OTHER IN FV
`
`610
`
`RESPONSE
`
`COMMAND
`
`USER
`VALIDITY
`FILTERING
`
`614
`
`
`
`SNAP RXT
`DISCARD
`(FROM
`CR? 1)
`
`
`N
`
`616
`
`Y
`
`PROM USER
`
`FILTERING
`
`PUT TYPE =
`OTHER IN FV
`
`620
`
`O
`
`USER
`VALIDITY
`FILTERING
`
`O
`
`USER
`VALIDITY
`FILTERING
`
`FIG. 151
`
`EX 1015 Page 16
`EX 1015 Page 16
`
`

`

`US. Patent
`
`Sep. 3, 1998
`
`Sheet 16 M21
`
`5,805,808
`
`PROM USER
`FILTERING
`
`630
`
`
`
`USE FC CODE TO
`READ PROM DATA
`
`
`
`PROM
`
`DlsgARD
`
`
`
`BUFFER
`DIS CRIPTOR
`
`FILTERING
`
`
`
`USER
`VALIDITY
`FILTERING
`
`EX 1015 Page 17
`EX 1015 Page 17
`
`

`

`US. Patent
`
`Sep. 3, 1998
`
`Sheet 17 M21
`
`5,805,808
`
`USER VALIDITY
`FILTERING
`
`654
`
`BUFFER
`DESCRIPTOR
`FILTERING
`
`
`
`
`
`
`BUFFER
`DESCRIPTOR
`FILTERING
`
`FIG. 15K
`
`662
`
`BUFFER
`DESCRI PTOR
`FILTERING
`
`EX 1015 Page 18
`EX 1015 Page 18
`
`

`

`US. Patent
`
`Sep. 3, 1998
`
`Sheet 18 0121
`
`5,805,808
`
`BUFFER
`DESCRIPTOR
`FILTERING
`
`674
`
`1'00
`
`SET DISCARD
`BIT IN FV
`
`704
`
`703
`
`710
`
`712
`
`PUT
`TYPE =
`11 IN FV
`
`SET H l A
`BIT IN N
`To " 0 "
`
`670
`
`672
`
`
`
`IS
`
`POTENTIAL
`DIS BIT
`
`
`SET
`
`?
`
`
`Y
`
`
`
` N
`
`N
`
`714
`
`716
`
`FIG. 15L
`
`EX 1015 Page 19
`EX 1015 Page 19
`
`

`

`US. Patent
`
`Sep. 8, 1998
`
`Sheet 19 0121
`
`5,805,808
`
`I4—4 Barnes—bl {"800
`
`K.
`J 805
`
`READ DA
`
`313
`
`820
`
`810
`
`START
`LOGIC
`FLOW
`
`READ DSAP
`
`815/ 824
`READFC_DARAM 3“
`
`30A8
`
`DECODE RMC
`BUFFER
`DESCRIPTOR
`
`828 -\
`READ
`PID 330B
`i (”831
`
`READFCDALLC
`arr":—
`332 READUSERINFO
`833m
`READ PROM INFO
`
`Z._ 834
`
`EXECUTE REST OF ALGORII‘IM
`
`EX 1015 Page 20
`EX 1015 Page 20
`
`

`

`US. Patent
`
`Sep. 3, 1998
`
`Sheet 20 01'21
`
`5,805,808
`
`900
`
`\
`902 RMCAD<31:0>
`‘~ RMCPAR < 3:0 >
`904
`MRMCRILL
`905\
`905 RMCRW
`uRMCDTACILL
`
`907 meow
`L RMOGT—L
`
`NPA < 3:0 >
`
`NPD < 15:0 :-
`
`NPPAR < 1:0 >
`
`PARSEL_L
`
`NPRW
`
`PARINI'_L
`afl—-—-—-
`
`PARTRLL
`
`IVIN
`
`IVOUT
`
`PAROUT
`
`BYTCLK
`
`SYMCLK
`
`FINIT L
`
`RMC
`— REQUEST
`_ RMC READ
`0R WR‘TE
`> BY MEMORY
`CONTROLLER
`_ GRANT BY
`MEMORY
`
`
`
`PARSER
`GA
`
`(1% USED
`IiOs + POWER
`& GND)
`
`RAMADD< 12:0>
`
`RAMCS_L<7:0>""922
`
`RAMDP < 71:0 > ““924
`
`RAMRW “926
`
`RAMOB__L —-\
`
`928
`
`FVRDY_L
`
`910
`FVOE_L
`FVDATA <14:0 > "J
`
`FVPAR "‘ 912
`
`PKTDIS —\
`930
`
`SMSEL < 2:0 >
`
`PARSM < 4:0 >
`
`FIG. 17
`
`EX 1015 Page 21
`EX 1015 Page 21
`
`

`

`US. Patent
`
`Sep. 3, 1998
`
`Sheet 21 01'21
`
`5,805,808
`
`15
`
`14
`
`13
`
`12
`
`11
`
`10
`
`0
`
`Hum—
`
`FIG. 18
`
`15
`
`0
`
`“-—
`
`UVRI
`
`FIG. 19
`
`15
`
`O
`
`UVRZ
`
`FIG. 20
`
`EX 1015 Page 22
`EX 1015 Page 22
`
`

`

`1
`REAL TIME PARSER FOR DATA PACKETS
`IN A COMMUNICATIONS NETWORK
`
`This is a continuation of Ser. No. 081365993, filed Dec.
`29, 1994, now abandoned, which is a continuation of Ser.
`No. (17f814,99'r', filed Dec. 27, 1991, now abandoned.
`
`FIELD OF THE INVENTION
`
`This invention relates generally to an interface between a
`communications network and a host computer, and more
`particularly to a parser for interpreting a packet received
`from the local area network.
`
`BACKGROUND OF THE INVENTION
`
`When a packet arrives at a host computer from a local area
`network, the packet must be read and interpreted in order for
`the host computer to decide what to do with the packet. For
`example, the host computer may decide that the packet has
`a destination address not used by the host computer, and in
`that case the host computer ignores the packet; that is the
`host detects the packet but does not receive the packet.
`Alternatively, the packet may be a token, in which case the
`host computer is given permission to begin transmission. As
`a further example, the host computer may match the desti-
`nation address of the packet, and so receive the packet into
`host computer main memory.
`In the above examples, the design of the interface between
`the host computer and the local area network attempts to
`read the incoming packet at the speed at which bits of the
`packet arrive at
`the interface. A simple match between
`station addresses used by the host computer and the desti—
`nation address in the DA field of the packet may be accom—
`plished by hardware using a table of addresses stored in a
`CAM.
`
`Further, for example, in a F DDI system the frame control
`field of the packet, the FC field, may be analyzed by the
`interface through match hardware using a CAM having
`common values stored in the CAM, where the common
`values are these commonly used in packet FC tields.
`The more diflicult problem of analyzing the full content of
`the packet headers, both the MAC header and the LLC
`header, where these are the standard IEEE 802.2 headers,
`remains unsolved as a task which can be accomplished at the
`rate at which packets may arrive at the host computer in a
`modern local area network. For example, the standard IEEE.
`802.2 MAC and LLC headers may contain a maximum of
`twenty two (22) bytes. Each byte has 8 bits, and so there are
`a possible two (2) to the 176 power unique combinations of
`bits. This is approximately 10*‘53 combinations. A CAM
`match scheme is unable to provide the required number of
`combinations.
`And in a modern local area network such as the FDDl
`
`optical fiber network, bits arrive at the rate of 100 megabits
`per second, or approximately 450,000 packets per second
`may arrive at the host computer. This arrival rate of bits is,
`in some cases, faster than the CPU of the host computer can
`execute software to read the packets into memory.
`A technique employed in the past for analyzing the header
`bytes of the packet, both MAC and LLC headers, has been
`to read the packets into adapter memory and then to slowly
`read the packets out of adapter memory so that adapter
`software can analyze the header bytes. However, the adapter
`software is slow: in firstly transferring the bytes to adapter
`memory; and in secondly analyzing the header bytes of the
`packet by reading the packets out of adapter memory.
`
`5
`
`10
`
`15
`
`10
`
`40
`
`60
`
`5,805,808
`
`2
`
`It is desirable to sort and store the packets arriving at a
`host computer from a modern local area network at the speed
`at which the bits arrive at the interface.
`
`SUMMARY OF THE INVEN‘I'ION
`
`A parser for reading bits of a packet has a set of logic
`circuits implemented in a computer chip; a memory inter—
`acting with the computer chip, the memory providing first
`data to the set of logic circuits; means for reading bits from
`any fleld of packet into the set of logic circuits, the bits
`providing second data to the set of logic circuits; means,
`responsive to the first data and the second data, for the logic
`circuits to interpret bits of the packet.
`BRIEF DESCRIPTION OF 'I‘IIL“. DRAWINGS
`
`FIG. 1 is a block diagram of a communications network.
`FIG. 2 is a block diagram of a station, or node, on a
`communications network.
`
`FIG. 3 is a block diagram of an adapter for connecting a
`host computer of a station to a local area network.
`FIG. 4 is a block diagram of a parser gate array.
`FIG. 5A is a field diagram of the fields of a message
`traveling on a local area network.
`FIG. 5|} is a memory diagram for a database for a parser.
`FIG. 6 is a field diagram of a forwarding vector produced
`by a parser.
`FIG. 7 is a field diagram ofan entry in a parser database.
`FIG. 8 is a field diagram ofan entry in a parser database.
`FIG. 9 is a field diagram of an entry in a parser database.
`FIG. 10 is a field diagram of an entry in a parser database.
`FIG. 11 is a field diagram of an entry in a parser database.
`FIG. 12 is a field diagram of an entry in a parser database.
`FIG. 13 is a field diagram of an entry in a parser database.
`FIG. 14 is a field diagram of an entry in a parser database.
`FIG. 15A, FIG. 15B, FIG. 15C, FIG. 15D, FIG. 15E, FIG.
`15F, FIG. 15G, FIG. 15H, FIG. 15], FIG. 15], FIG. 15K, and
`FIG. 15[. are a flow chart for the operation of a parser.
`FIG. 16 is a timing diagram for a parser.
`FIG. 17 is a connection diagram for a parser gate array.
`FIG. 18 is a field diagram of a control register.
`FIG. 19 and FIG. 20 are a field diagram of a user validity
`register.
`
`[)E’I'AII..L7I) DIL‘BCRIFI'ION
`
`Referring now to FIG. 1, there is shown a network 100.
`Network communications path 110 connects to host com—
`puters 112, 114, 116, 118, 120. Host computers 112, 114,
`116, 118, 120 communicate with each other by transmitting
`packets on communications pathway 110. For example,
`communication path 110 may be an ETHERNET commu-
`nications pathway, or for example may be a ring type
`communications pathway such as the FDDI Token Ring
`Communications System, etc. In any case, a IIISI. node, such
`as host computer 112, may desire to transmit a packet to host
`computer 120. [-Iost computer 112, then gains permission,
`through the access protocol for communications pathway
`110, to transmit the packet onto communications pathway
`110. Ilost computer 112 then transmits a packet onto cOm-
`munications pathway 110. The packet is detected by each of
`the host computers connected to the pathway, that is host
`computer 114, 116, 118, and 120. Because of address
`information contained within the packet, host computer 120
`receives the packet, and the other host computers discard the
`packet.
`
`EX 1015 Page 23
`EX 1015 Page 23
`
`

`

`5,805,808
`
`3
`the
`In modern communications systems, for example,
`FDDI Token Ring System, the bit rate on communications
`pathway 110 is 100 megabits per second, and as many as
`450,000 packets per second may travel on communications
`pathway 110. Consequently, each host computer 112, 114,
`116, 118, 120, must be capable of interpreting the address
`information, LLC information, and PID information of
`packets arriving at a wire speed of 100 megabits per second
`and at a rate of 450,000 packets per second.
`'l'uming now to ITIG. 2, there is shown an internal struc-
`ture of host computer 130. Ilost computer 130I may be any
`host computer such as host computers 112, 114, 116, 118,
`120 connected to communications pathway 110. Commu ni—
`cations pathway 110 connects to adapter 132. Adapter 132
`connects to host computer bus .134. Connected to host
`computer bus are the various components of host computer
`130, including CPU 136 and host computer memory 138.
`In operation, the apparatus of FIG. 2 operates as follows.
`A packet is detected traveling on communications pathway
`110 by adapter 132. Adapter 132, based on the addressing
`information in the packet, determines whether or not host
`computer 130 should receive the packet. [n the event that
`adapter 132 decides that host computer 130 should not
`receive the packet, adapter 132 simply does not pass the
`packet to other uniLs of host computer 130. In the event that
`adapter 132 decides that the packet should be received by
`host computer 130, the packet is transferred through con—
`nection 139 and host computer bus 134 to host computer
`memory 138. The present invention provides an improved
`mechanism, by increasing the information transferred with a
`packet, for the transfer of packets by adapter 132 to host
`computer memory 138. Accordingly, the host computer is
`not required to further process header information from the
`packets.
`Further, in operation, a packet arriving at host computer
`130 on communications pathway 110 is stored in a buffer
`memory in adapter 132. Once adapter 132 determines that
`the packet to be received by host computer 130, the packet
`is transferred to a buffer in host computer memory 138. The
`[Julfer located in host computer memory 138 is then emptied
`by a driver program running on host computer CPU 136. A
`driver program normally operates in host computer CPU 136
`to read and empty the buffers in host computer memory 138.
`Communications pathway 110I is shown in FIG. 2 as a
`token ring configuration. Communications pathway 110
`enters host computer 130 along leg 140. A packet passing
`into adapter 132 along leg 140 is repeated by adapter 132
`and then departs from host computer 130 along leg 142.
`From leg 142 the packet re-enters communications pathway
`110.
`
`‘10
`
`‘15
`
`10
`
`40
`
`'lhming now to FIG. 3, there is shown a block diagram of
`an adapter 132. A packet enters adapter 132 along leg 140
`from communications pathway 110. Apacket is repeated and
`departs from adapter 132 along leg 142 where it re-enters
`communication pathway 110. Leg 140 and leg 142 as well
`as communications pathway 110, are, in a preferred embodi-
`ment of the invention, an optical fiber communications
`pathway. Duplex connector 144 couples fiber optical cables
`of legs 140 and 142 to the combination transmitter and
`receiver 146. Receive converter 148 transmits the serial bit
`
`60
`
`stream along bus 150.
`Transmit converter 152 receives a serial bit stream along
`bus 154, and transmits the serial bit stream on leg 142 to
`communications pathway 110.
`In receive mode,
`the serial bit stream on bus 150 is
`received by interface 156.
`
`4
`
`Interface 156 manages receipt of packets from commu-
`nications pathway 110 through leg 140 through a sequence
`of three gate array computer chips: the elasticity butfer 160;
`the media access controller 162; and,
`the ring memory
`controller 164-.
`
`Serial to parallel conversion and parallel to serial conver-
`sion occurs at elasticity buffer 160.
`An address CAM 166 is used by the media access
`controller gate array 162 to decode the information carried
`in the MAC header ofan incoming packet. The MAC header
`ofthe incoming packet is described more fully hereinbelow
`with reference to FIG. 5A. The address CAM 166 may be
`used by the media access controller 162 in order to
`determine, from the MAC header of the packet, if a packet
`is to be received by the host computer. Alternatively, the
`media access controller 162 may be operated in promiscuous
`mode to accept all packets arriving at the host computer. The
`FC field is matched through hardwired logic within the
`media access controller 162.
`
`The DA field may be matched through a simple compare
`using a CAM to make this decision.
`In the event that a
`packet is determined to he one that is not to be received by
`the host computer, the packet is transferred no further than
`the media access controller 162. In the event that there is a
`
`the packet for further
`the MAC will accept
`DA match,
`filtering by the adapter. The packet is then transferred on ring
`memory controller bus, RMC bus 172 from ring memory
`controller 164 to packet memory controller 188.
`Parser gate array 180 snoops on RMC bus 172. Parser 180
`also is coupled to a local data base, parser data base 182.
`Parser 180 examines each of the fields of the incoming
`packet, where the fields are shown in detail in FIG. 5A. The
`parser, in combination with parser data base 182 and infor—
`mation received concerning the incoming packet on RMC
`bits 172, generates a forwarding vector. Parser 180 transfers
`the forwarding vector on line 184 to a control block 186
`located in packet memory 170.
`The forwarding vector transferred on line 184 controls the
`disposition of the packet through control of packet memory
`controller 188. The packet is transferred on RMC bus 172
`from ring memory controller 164 to packet memory con-
`troller 188. The packet is then stored by packet memory
`controller 188, into allocated buffers in packet memory 190.
`In the event that
`the packet is to be received by the host
`computer, the packet is then transferred on PM] ths 192,
`through system bus interface 194- to the system bus, host
`computer bus 134, as shown also in FIG. 2. By transfer
`through host computer bus 134,
`the packet
`is stored in
`butfers in host computer memory 138, also as shown in FIG.
`2. A driver process running on host computer CPU 136 then
`reads and empties the buffer in host computer memory 138.
`Referring again to interface 156, AM bus 191 provides
`connection between the adapter manager subsystem 202 and
`various chips contained in interface 156, including: parser
`180; elasticity buffer 160; media access controller 162; and
`ring memory controller 164. Adapter manager 202 commu-
`nicates through interface bus 204 with the system bus
`interface 194.
`
`Adapter manager 202 contains a CPU 210, a local
`memory 212, an EEPROM 214-, an interface 216 to bus 204,
`an AM bus 191, and a ROM 218. Adapter manager bus 220
`provides communication between the internal parts of the
`adapter manager subsystem 202, that is: CPU 210, memory
`212, EILPROM 214, interface 216, and ROM 218.
`Turning now to FIG. 4, there is shown a parser subsystem
`block diagram. Parser 180 is shown. Input from RMC bus
`
`EX 1015 Page 24
`EX 1015 Page 24
`
`

`

`5,805,808
`
`5
`172 is shown. Input from the parser data base 182 is shown
`on lines 230A, 230C, and 230D. Output from the parser is
`shown on forwarding vector line 184, FWD vector.
`In operation, parser 180 utilizes information obtained by
`snooping on RMC bus 172 in conjunction with data con-
`tained in parser data base 182 to produce forwarding vector
`184-. Forwarding vector 184 then controls the fate of a packet
`traveling on RMC bus 172 into packet memory controller
`188.
`Turning now to FIG. 5A, there is shown the field structure
`of a packet arriving along leg 140 from communications
`pathway 110. Parser 180 detects the bits in the fields shown
`in FIG. 5A by snooping on RMC bus 172. The letter
`designations shown in the fields depicted in FIG. 5A are a
`standard terminology utilized in the FDDl Standards by
`ANSI, and IEEE standard 802.2 for the Logical Link Con—
`trol for a local area network. The literal designations will be
`utilimd herein as reference numerals referring to the fields.
`The present example refers to the FDDI Standards and to the
`IEEE 802.2 Standard, however the invention applies to any
`standard packet format.
`The MAC header fields are next described.
`Field PRE is a preamble sequence, typically having 7'
`bytes.
`Field SD is a starting delimiter, and is one byte in length.
`Field I“C is a function code, and is one byte in length.
`Field DA is the destination address of the packet, and is
`six bytes in length.
`Field SA is the source address of the packet and is six
`bytes in length.
`The INFO field contains information for layers higher
`than the MAC layer of the communications protocol. The
`INFO field may be of length between 0 bytes and approxi—
`mately 4,500 bytes.
`Next, the MAC trailer fields are discussed.
`Field FCS is a frame check sequence and is four bytes in
`length.
`Field ED is an ending delimiter and is '/2 byte in length.
`Field FS is a frame status field and is one and V3 bytes in
`length.
`The fields SI), FC, DA, SA, and the trailing fields FCS,
`E1), FS, control the MAC layer of a station such as host
`computer 130. These fields are interpreted by cooperation
`between the elasticity buffer 160, the media access controller
`162, and the ring memory controller 164. The ring memory
`controller 164 also provides a count of the number of bytes
`in a packet, including the bytes in the before mentioned
`MAC layer fields plus the bytes in the INFO field.
`The ring memory controller 164 generates a butfer
`descriptor based upon interpreting the MAC header fields
`and trailer fields, counting the bytes in the packet, and
`verifying the Frame Check Sequence FCS. The buffer
`descriptor is transferred on RMC bus 172, after the packet
`transfer completes, to packet memory controller 188.
`In an LLC type packet as designated by the FC field, the
`first few bytes in the INFO field are a logical Link Control
`(LLC) level header, and are defined by the IEEE 802.2
`standard. The IEEE 8022 Standard defines three (3) LLC
`header fields, DSAP, SSAP, and CNTL. The MAC header
`fields and the Logical Link Control header are interpreted by
`parser 180. The byte size of the LLC header fields are as
`follows: DSAP field of 1 byte; SSAP field of 1 byte; CNTL.
`field of either I or 2 bytes.
`The PID field is present or absent in the packet depending
`upon the content of the DSAP, SSAP, and CN'IL fields. The
`PID field, when present,
`immediately follows the LLC
`header fields.
`
`‘10
`
`‘15
`
`2t]
`
`40
`
`60
`
`6
`In the event that the DSAP field has the value ofAA hex,
`{10101010 binary, representing the symbol SNAP),
`the
`SSAP field has the value AA hex (representing the symbol
`SNAP}, and the CNTL field has the value 03 hex
`{representing the symbol UI), then the packet is defined as
`a SNAP SAP packet. [11 the event that the packet is a SNAP
`SAP packet, then the PID field exists. The PID field is five
`(5) byte in length.
`In the event that the packet is not a SNAP SAP packet, the
`packet is then defined as a NON SNAP SAP packet. The PID
`field does not exist for a NON SNAP SAP packet.
`Each of the MAC layer, LLC layer, and PID fields
`contains a variety of allowable data. Parser 180 has as input:
`the results of reading the MAC layer fields as presented on
`RMC bus 172; and the results of parser 180 reading the
`MAC, the LLC header fields, and the PID field of the packet
`from the RMC bus 172. Parser 180 also has as input a parser
`database 182. A memory allocation diagram 230 for parser
`database 182 is shown in FIG. 513. By comparing the
`contents of the parser database 182 with the contents of the
`fields of the packet, the parser creates a forwarding vector
`for the packet. The forwarding Vector is transferred on line
`184 to control block 186 of the packet memory, and also to
`packet memory controller 188. The forwarding vector then
`determines the fate of the packet by providing information
`to the packet memory controller 188.
`Tuming now to FIG. 513,
`there is shown a memory
`allocation diagram 230 of parser database 182. Each block
`of memory allocation in the parser database 182 is defined
`as 256 words of72 bits each. The blocks are numbered and
`are referred to as BLOCK 0, BLOCK 1, etc. The 72 bits
`comprise 64 data bits and 8 parity bits. The parser database
`182 comprises a Static RAM (SRAM) type memory chip.
`The SRAM is used as a Content Addressable Memory, a
`CAM. The use of a SRAM memory chip as a CAM is fully
`disclosed in the United States patent application of Edgar,
`entitled “Content Addressable Memory”, application Ser.
`No. 546,414 filed Jun. 29, 1990, all disclosures of which are
`incorporated herein by reference. The parser database
`memory is organized in accordance with the memory allo—
`cation diagram 231] of FIG. SB.
`As shown in FIG. 5B,
`the organization of the parser
`database 182 is outlined. A more detailed description of
`parser database 182 is given hereinbelow in connection with
`the description of the operation of the parser database.
`Section 232, BLOCK 0, of the parser database is allocated
`to filtering the 15C field of the incoming packet. Section 234,
`BLOCK 1-6, is allocated to filtering the DA field of the
`incoming packet. Section 236, BLOCK 7—8, is allocated to
`filtering the FC and DA fields in combination. Section 238,
`BLOCK 9, is allocated to filtering the DSAP field of the
`incoming packet. Section 240, BLOCK 10-14, is allocated
`to filtering the PID field. Section 242, BLOCK 15—30, is
`allocated to filtering the combination of FC, DA, and DSAP
`or PID fields. Section 243, BLOCK 31,
`is allocated to
`filtering the userindex, UINDEX, and to filtering for a
`promiscuous user, as is described more fully hereinbelow.
`Turning now to FIG. 6, the fields of the forwarding vector
`are shown. The letter designations in the fields, as shown in
`FIG. 6, are used for reference numerals. The forwarding
`vector is the output produced by the parser as a result of
`filtering the header fields of the incoming packet against
`parser database 182.
`The packet is stored into packet memory 190 in pages of
`512 bytes length. In the event that a packet is longer than 512
`bytes, the packet is stored in a plurality of pages. A for-
`warding vector is generated for each page.
`
`EX 1015 Page 25
`EX 1015 Page 25
`
`

`

`5,805,808
`
`7
`PAR field is 1 bit, bit #15. The PAR field is a parity bit,
`and is used for a parity check for the bits of the forwarding
`vector as they are parallel transferred on the 16 fines of the
`forwarding vector line 184.
`COL field comprises two bits, bits 14 and 13. The COL
`field is normally used with the value 01.
`DIS field is 1 bit, bit #12. The DIS field is the discard field.
`The discard field bit may be either set or clear. With one
`value, the incoming frame on the RMC bus 172 is stored in
`packet memory 190. If the DIS bit is set to the other value,
`the incoming frame of line 172 is discarded by packet
`memory controller 188. That is, the frame is not received for
`storage in packet memory 190.
`llOST field is one bit, bit #11. In the event that IIOST bit
`has the value “'1”,
`the packet
`is destined for
`the host
`computer 130, as shown in FIG. 2. In the event that the
`MOST field bit has the value “0” the packet is destined for
`the adapter manager subsystem 202.
`TYPE field is of length 2 bits, bit 10 and bit 9. Values of
`the TYPE field and their meanings are as follows:
`00 the packet is an XIDE’l’esthther packet;
`01 the associated packet is an SMTMAC packet;
`10 the associated packet is a MOP packet;
`11 the associated packet is an error packet.
`The TYPE field is used, and is consequently only valid,
`when the packet is destined for the adapter manager sub-
`system 202. That is the type field is valid only when the host
`bit has the value “0”.
`
`UNK field is 1 bit in length, bit 8. The UNK bit designates
`the packet for a particular user defined as the "unknown”
`llSCT.
`
`‘10
`
`‘15
`
`10
`
`MI) field is 1 bit in length, bit 7. The MI) field indicates
`that there are multiple recipients for the packet when the MD
`bit is set.
`
`SOP field is one bit in length, bit 6. The SOP bit indicates
`the start of the packet, as described below.
`EOP field is one bit in length, bit 5. The EOP bit indicates
`the end of the packet, as described below.
`UINDEX field is five bits in length, bit 0, through bit 4.
`The UINDEX field is the user index. The user index
`
`40
`
`indicates a recipient process in host computer 130 for the
`incoming packet.
`The SOP field and the EOP field indicate to the packet
`memory controller 188 which page ofa packet was received.
`Each page ofa packet

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