Data link/physical layer packet diversion and insertion
Claim Score by NHIP
Abstract
A buffering structure including a number of storage structures and associated diversion and/or insertion logic, is provided to facilitate one or more selected ones of post-switching, pre-medium placement, diversion and/or insertion of egress packets, and post-medium extraction, pre-switching, diversion and/or insertion of ingress packets, during data link/physical layer processing of networking traffic. In selected applications, the buffering structure is provided as an integral part of a single ASIC multi-protocol networking processor having data link/physical layer processing components for a number of datacom and telecom protocols. In one of the selected applications, the single ASIC multi-protocol networking processor is employed in conjunction with other optical and electro components to form an integral optical networking module in support of optical-electro networking for the datacom/telecom protocols.

Term
Term ended
Projected expiry passed 28 August 2023, 3.1 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
41 claims: 9 independent, 32 dependent
- 1A networking apparatus comprising:a switching fabric including a plurality of ingress/egress points to switch routing paths of packets received through mediums coupled to the ingress/egress points;a first buffering structure including a first plurality of storage structures and first associated packet diversion and insertion logic, coupled to a first of said ingress/egress point to facilitate at least a selected one of diversion of selected ones of a first plurality of egress packets being routed through said first ingress/egress point onto a first one of said mediums, and insertion of additional ones into said first plurality of egress packets being routed;and a second buffering structure including a second plurality of storage structures and second associated packet diversion and insertion logic, coupled to a second of said ingress/egress points to facilitate at least a selected one of diversion of selected ones of a second plurality of egress packets being routed through said second ingress/egress point onto a second one of said mediums, and insertion of additional ones into said second plurality of egress packets being routed.
- 8A networking apparatus comprising:a switching fabric including a plurality of ingress/egress points to switch routing paths of packets received through mediums coupled to the ingress/egress points;a first buffering structure including a first plurality of storage structures and first associated packet diversion and insertion logic, coupled to a first of said ingress/egress points to facilitate at least a selected one of diversion of selected ones of a first plurality of ingress packets being received from a first one of said mediums into said switching fabric through said first ingress/egress point, and insertion of additional ones into said first plurality of ingress packets being received;and a second buffering structure including a second plurality of storage structures and second associated packet diversion and insertion logic, coupled to a second of said ingress/egress points to facilitate at least a selected one of diversion of selected ones of a second plurality of ingress packets being received from a second one of said mediums into said switching fabric through said second ingress/egress point, and insertion of additional ones into said second plurality of ingress packets being received.
- 11Broadest claimClaim Score 44, average(NHIP)A networking apparatus comprising:a switching fabric including a plurality of ingress/egress points to switch packets received through mediums coupled to the ingress/egress points;and a buffering structure including a first plurality of storage structures and first associated packet diversion and insertion logic, coupled to a first of said ingress/egress points, to facilitate at least a selected one of diversion of selected ones of a plurality of ingress packets being received from a first one of said mediums into said switching fabric through said first ingress/egress point, and insertion of additional ones into said plurality of ingress packets being received, and a second buffering structure including a second plurality of storage structures and second associated packet diversion and insertion logic, coupled to the first ingress/egress point, to facilitate at least a selected one of diversion of selected ones of a plurality of egress packets being routed through said first ingress/egress point onto said first medium, and insertion of additional ones into said plurality of ingress packets being routed.
- 16An optical networking module comprising:an optical component to send and receive optical signals encoded with data transmitted through a coupled optical medium;an optical-electrical component coupled to the optical component to encode digital data onto optical signals and to decode encoded digital data on optical signals back into their digital forms;a data link/physical layer processing unit, including a buffering structure comprising a plurality of storage structures and associated packet diversion and insertion logic, coupled to the optical-electrical component and to a packet source/sink, to facilitate at least a selected one of data link/physical processing of ingress packets received from said optical medium for said packet source/sink and egress packets to be routed from said packet source/sink onto said optical medium, with each of said data link/physical processing of ingress and egress packets including at least a selected one of diversion of selected ones of a plurality of ingress/egress packets being received from/routed onto said optical medium, and insertion of additional ones into said plurality of ingress/egress packets being received/routed;and a body encasing said optical component, said optical-electrical component, and said data link/physical processing unit as a single module.
- 23A multi-protocol processor comprising:a plurality of I/O interfaces to facilitate selective optical-electrical trafficking of data transmitted in accordance with a selected one of a plurality of datacom and telecom protocols;a plurality of data link and physical sub-layer processing units selectively coupled to each other and to the I/O interfaces to be selectively employed in combination to perform selected data link and physical sub-layer processing on egress as well as ingress ones of said data, in accordance with said selected one of said plurality of protocols;and a buffering structure coupled to at least a system-side one of said I/O interfaces and a media processing one of said data link and physical sub-layer processing units, including a plurality of storage structures and associated packet diversion and insertion logic to facilitate at least a selected one of diversion of selected ones of a plurality of egress packets, and insertion of additional ones into said plurality of egress packets, diversion of selected ones of a plurality of ingress packets, and insertion of additional ones into said plurality of ingress packets.
- 30A buffering structure comprising:a first storage structure to stage undiverted ones of egress packets;a second storage structure to stage diverted ones of egress packets;a third storage structure to stage insertion ones of egress packets;a first divert logic coupled to said first and second storage structures to selectively route egress packets onto a selected one of said first and second storage structures;a first insert logic coupled to said first and third storage structures to selectively merge said undiverted ones and said insertion ones of said egress packets;and a register interface, including packet packing and unpacking logic, coupled to the second and third storage structures to facilitate retrieval by a processor said diverted ones of said egress packets in unpacked portions, and provision by said processor said insertion ones of said egress packets in unpacked portions.
- 33A buffering structure comprising:a first storage structure to stage undiverted ones of ingress packets;a second storage structure to stage diverted ones of ingress packets;a third storage structure to stage insertion ones of ingress packets;a first divert logic coupled to said first and second storage structures to selectively route ingress packets onto a selected one of said first and second storage structures;a first insert logic coupled to said first and third storage structures to selectively merge said undiverted ones and said insertion ones of said ingress packets;and a register interface, including packet packing and unpacking logic, coupled to the second and third storage structures to facilitate retrieval by a processor said diverted ones of said ingress packets in unpacked portions, and provision by said processor said insertion ones of said ingress packets in unpacked portions.
- 36A buffering structure comprising:a first storage structure to stage undiverted ones of ingress packets;a second storage structure to stage diverted ones of ingress packets;a third storage structure to stage undiverted ones of egress packets;a fourth storage structure to stage diverted ones of egress packets;a first divert logic coupled to said first and second storage structures to selectively route ingress packets onto a selected one of said first and second storage structures;a second divert logic coupled to said third and fourth storage structures to selectively route egress packets onto a selected one of said third and fourth storage structures;and a register interface, including packet unpacking logic, coupled to the second and fourth storage structures to facilitate retrieval by a processor said diverted ones of said ingress and egress packets in unpacked portions.
- 39A buffering structure comprising:a first storage structure to stage undiverted ones of ingress packets;a second storage structure to stage insertion ones of ingress packets;a third storage structure to stage undiverted ones of egress packets;a fourth storage structure to stage insertion ones of egress packets;a first insertion logic coupled to the first and second storage structures to selective merge said undiverted ones and said insertion ones of said ingress packets;a second insertion logic coupled to the third and fourth storage structures to selective merge said undiverted ones and said insertion ones of said egress packets;and a register interface, including packet packing logic, coupled to the second and fourth storage structures to facilitate provision by a processor said insertion ones of said ingress and egress packets in unpacked portions.
Independent claims9
111 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
P-0001[0001] 1. Field of the Invention
P-0002[0002] The present invention relates to the field of networking. More specifically, a first aspect of the present invention relates to packet diversion and insertion for high-speed network trafficking equipment, such as 10-gigabit optical-electrical routers or switches. A second aspect of the present invention relates to packet buffering and flushing of the buffered packets. The present invention also relates to addressing both aspects in support of multiple datacom and telecom protocols.
P-0003[0003] 2. Background Information
P-0004[0004] With advances in integrated circuit, microprocessor, networking and communication technologies, increasing number of devices, in particular, digital computing devices, are being networked together. Devices are often first coupled to a local area network, such as an Ethernet based office/home network. In turn, the local area networks are interconnected together through wide area networks, such as SONET networks, ATM networks, Frame Relay, and the like. Of particular importance is the TCP/IP based global inter-network, the Internet.
P-0005[0005] As a result of this trend of increased connectivity, increasing number of applications that are network dependent are being deployed. Examples of these network dependent applications include but are not limited to, the World Wide Web, e-mail, Internet based telephony, and various types of e-commerce and enterprise applications. The success of many content/service providers as well as commerce sites depend on high-speed delivery of a large volume of data across wide areas. In turn, the trend leads to increased demand for high-speed data trafficking.
P-0006[0006] Historically, data communication protocols specified the requirements of local/regional area networks, whereas telecommunication protocols specified the requirements of the regional/wide area networks. The rapid growth of high volume, high-speed data routing over the Internet has fueled a convergence of data communication (datacom) and telecommunication (telecom) protocols and requirements. It is increasingly important that data traffic be carried efficiently at high speed across local, regional and wide area networks.
P-0007[0007] When routing or switching network traffic, a need often arises to divert some of the packets being routed/switched onto a routing path (to perform additional processing or dropping the packets), or insert additional packets into the packet streams being received off a routing path. FIG. 1 illustrates a typical prior art approach to providing such functionality of packet diversion and/or packet insertion to an “intermediate” networking equipment. Illustrated is an example networking switch/router <b>50</b> having switching/routing fabric <b>52</b>, including a number of ingress/egress points <b>54</b><i>a</i>-<b>54</b><i>n</i>, through which packets may be received and/or routed onto the corresponding coupled mediums (routing paths). To provide the desired packet diversion and/or insertion functionality, one or more of ingress/egress points <b>54</b><i>a</i>-<b>54</b><i>n</i>, such as point <b>54</b><i>n</i>, are reserved for the coupling of one or more companion processors <b>56</b> (also referred to as host processors), as opposed to the mediums connecting the switch/router to a network. The basic implementations of these switches/routers would route all packets through host processors <b>56</b>, to enable host processors <b>56</b> to selectively divert some of the packets from the various routing paths (for additional processing or dropping the packets) or to selectively inject additional packets into the packet streams of the various routing paths. In other more advanced implementations, additional switching/routing resources (such as programmable switching/routing tables) (not shown) may be employed to facilitate routing of some of the packets of the routing paths to host processors <b>56</b> for “processing” (“diversion”), and routing of the packets injected by host processors <b>56</b> onto the routing paths of their selection (“insertion”).
P-0008[0008] These prior art approaches all suffer from the common disadvantage in that at least one of the ingress/egress point of switching/routing fabric <b>52</b> is used for the coupling of a host processor <b>56</b>. As networking speed increases, with more and more packets being routed/switched over a unit of time, host processor <b>56</b> becomes a bottleneck under these prior art approaches. Typically, more than one host processor <b>56</b> have to be employed, resulting in more than one ingress/egress points <b>54</b><i>a</i>-<b>54</b><i>n </i>being consumed, which in turn leads to a reduction in the bandwidth of networking equipment <b>50</b> (for a given amount of switching/routing resources (fabric <b>52</b>)). Increasingly, these architectures are becoming un-scalable for the type of efficient, high speed (10 Gb and beyond) networking that spans local, regional, and wide area networks, especially when multiple datacom and telecom protocols are involved.
P-0009[0009] Thus, an improved approach to packet diversion and insertion, including buffering and flushing of buffered packets, is desired.
BRIEF DESCRIPTION OF DRAWINGS
P-0010[0010] The present invention will be described by way of exemplary embodiments, but not limitations, illustrated in the accompanying drawings in which like references denote similar elements, and in which:
P-0011[0011]FIG. 1 illustrates a typical prior art approach to providing packet diversion and insertion;
P-0012[0012]FIG. 2 illustrates an overview of the data link/physical layer packet diversion and insertion of present invention, in accordance with one embodiment;
P-0013[0013]FIG. 3 illustrates the buffering structure of FIG. 2 in further detail, in accordance with one embodiment;
P-0014[0014]FIG. 4 illustrates the egress divert block of FIG. 3 in further detail, including write packet drop logics equipped with tail flushing capability for multiple datacom and telecom protocols, in accordance with one embodiment;
P-0015[0015]FIG. 5 illustrates the egress insert block of FIG. 3 in further detail, including read packet drop logics equipped with head flushing capability for multiple datacom and telecom protocols, in accordance with one embodiment;
P-0016[0016]FIG. 6 illustrates the register interface of FIG. 3 in further detail, in accordance with one embodiment;
P-0017[0017]FIG. 7 illustrates the ingress divert block of FIG. 3 in further detail, including write packet drop logics equipped with tail flushing capability for multiple datacom and telecom protocols, in accordance with one embodiment;
P-0018[0018]FIG. 8 illustrates the ingress insert block of FIG. 3 in further detail, including read packet drop logics equipped with head flushing capability for multiple datacom and telecom protocols, in accordance with one embodiment;
P-0019[0019]FIG. 9 illustrates a multi-protocol network processor incorporated with the present invention, in accordance with one example application; and
P-0020[0020]FIG. 10 illustrates an optical networking module incorporated with the multi-protocol processor of FIG. 9, in accordance with another example application. <tables id="TABLE-US-00001" num="1"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217PT" align="center" /><thead><row><entry /></row><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>GLOSSARY</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="1" colwidth="56PT" align="left" /><colspec colname="2" colwidth="161PT" align="left" /><tbody valign="top"><row><entry>10Gbase-LR</entry><entry>64/66 coded 1310 nm LAN standard for 10 Gigabit</entry></row><row><entry /><entry>Ethernet</entry></row><row><entry>10Gbase-LW</entry><entry>64/66 coded SONET encapsulated 1310 nm WAN</entry></row><row><entry /><entry>standard for 10 Gigabit Ethernet</entry></row><row><entry>ASIC</entry><entry>Application Specific Integrated Circuit</entry></row><row><entry>CRC</entry><entry>Cyclic Redundancy Check</entry></row><row><entry>Egress</entry><entry>Outgoing data path from the system to the network</entry></row><row><entry>EOP</entry><entry>End of Packet</entry></row><row><entry>EOS</entry><entry>Ethernet on SONET</entry></row><row><entry>FCS</entry><entry>Frame Check Sequence</entry></row><row><entry>FIFO</entry><entry>First In First Out</entry></row><row><entry>HDLC</entry><entry>High-Level Data Link Control. A communication</entry></row><row><entry /><entry>protocol used in Packet over SONET switching</entry></row><row><entry /><entry>network.</entry></row><row><entry>Ingress</entry><entry>Incoming data path from the network to the system</entry></row><row><entry>IP</entry><entry>Internet Protocol</entry></row><row><entry>LAN</entry><entry>Local Area Network</entry></row><row><entry>LVDS</entry><entry>Low voltage differential signal</entry></row><row><entry>MAC</entry><entry>Media Access Control layer, defined for Ethernet</entry></row><row><entry /><entry>systems</entry></row><row><entry>OIF</entry><entry>Optical Internetworking Forum</entry></row><row><entry>POS</entry><entry>Packet over SONET</entry></row><row><entry>PPP</entry><entry>Point to Point Protocol</entry></row><row><entry>SDH</entry><entry>Synchronous Digital Hierarchy</entry></row><row><entry>SONET</entry><entry>Synchronous Optical network, a PHY</entry></row><row><entry /><entry>telecommunication protocol</entry></row><row><entry>SOP</entry><entry>Start of Packet</entry></row><row><entry>SPI-4</entry><entry>System Packet Interface Level 4(also POS-PHY 4)</entry></row><row><entry>SSTL</entry><entry>Stub Series Terminated Logic</entry></row><row><entry>XGMII</entry><entry>10Gb Media Independent Interface</entry></row><row><entry>WAN</entry><entry>Wide Area Network</entry></row><row><entry namest="1" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
DETAILED DESCRIPTION OF THE INVENTION
P-0021[0021] The present invention includes a buffering structure having storage structures and associated packet diversion and insertion logic to facilitate post-switching, pre-medium placement diversion and/or insertion of egress packets, and/or post-medium extraction, pre-switching diversion and/or insertion of ingress packets, in particular, during data link/physical layer processing of the ingress and/or egress packets. In another aspect, the buffering structure further includes selective tail and head flushing of the buffered packets. Both aspects address support for multiple datacom and telecom protocols.
P-0022[0022] In the following description, various aspects of the present invention will be described. However, the present invention may be practiced with only some aspects of the present invention. For purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the present invention. However, the present invention may be practiced without the specific details. In other instances, well-known features are omitted or simplified in order not to obscure the present invention. Further, the description repeatedly uses the phrase “in one embodiment”, which ordinarily does not refer to the same embodiment, although it may. The terms “comprising”, “having”, “including” and the like, as used in the present application, including in the claims, are synonymous.
Overview
P-0023[0023] Referring now to FIG. 2, wherein a block diagram illustrating an overview of the present invention, in accordance with one embodiment, is shown. As illustrated, networking switch/router <b>60</b> having switching/routing fabric <b>62</b>, including ingress/egress points <b>64</b><i>a</i>-<b>64</b><i>n</i>, through which packets may be received and/or routed onto the corresponding coupled mediums (routing paths), in accordance with the present invention, is provided with a number of buffering structures <b>100</b><i>a</i>-<b>100</b><i>n </i>to facilitate packet diversion and insertion, including selective tail or head flushing of buffered packets, for multiple datacom and telecom protocols. Buffering structures <b>100</b><i>a</i>-<b>100</b><i>n </i>in accordance with the present invention are disposed between ingress/egress points <b>64</b><i>a</i>-<b>64</b><i>n </i>and the corresponding mediums coupling switch/router <b>60</b> to one or more networks. As will be described in more detail below, each of buffering structures <b>100</b><i>a</i>-<b>100</b><i>n </i>includes a number of storage structures, associated packet diversion and insertion logic, including packet flushing logic, as well as a processor interface to allow processors <b>66</b> to direct the diversion of packets, access the diverted packets, as well as inject packets for egress and/or ingress packets. Each of buffering structures <b>100</b><i>a</i>-<b>100</b><i>n </i>also allows selective head or tail flushing of buffered packets. As a result of these features, and its advantageous disposition, buffering structures <b>100</b><i>a</i>-<b>100</b> are able to facilitate post-switching, pre-medium placement, diversion and/or insertion of egress packets, as well as post-medium extraction, pre-switching, diversion and/or insertion of ingress packets for multiple datacom and telecom protocols.
P-0024[0024] As is readily apparent from the illustration, unlike the prior art, the present invention is able to facilitate the packet diversion and insertion functionalities without taking up ingress/egress points <b>64</b><i>a</i>-<b>64</b><i>n </i>of switching/routing fabric <b>62</b>, and therefore, bandwidth of switch/router <b>60</b>. Moreover, the diversion and insertion of egress packets may be performed “very late”, just prior to placement of the packets onto the coupling mediums, e.g. during data link/physical layer processing of the egress packets, and likewise, the diversion and insertion of ingress packets may be performed “very early”, as soon as extraction of the packets from the coupling mediums, e.g. during data link/physical layer processing of the ingress packets. Accordingly, in a presently preferred embodiment, as illustrated by an exemplary application of the present invention to be described later (referencing FIG. 9-<b>10</b>), buffering structures <b>100</b><i>a</i>-<b>100</b><i>n </i>are advantageously provided as an integral part of the ASICs that provide data link/physical layer processing for multiple datacom and telecom protocols, in particular, in an integrated optical networking module.
Buffering Structure
P-0025[0025]FIG. 3 illustrates one of buffering structures <b>100</b><i>a</i>-<b>100</b><i>n </i>of FIG. 2 in further details in accordance with one embodiment. As illustrated, for the embodiment, buffering structure <b>100</b><i>i </i>includes a number of egress packet storage structures <b>102</b><i>a</i>-<b>102</b><i>c</i>, egress packet divert logic <b>104</b> and egress packet insert logic <b>106</b>. Egress packet storage structures <b>102</b><i>a</i>-<b>102</b><i>c </i>includes egress undiverted packet storage structure <b>102</b><i>a</i>, egress diverted packet storage structure <b>102</b><i>b</i>, and egress insert packet storage structure <b>102</b><i>c</i>, employed to stage the egress undiverted packets, egress diverted packets, and egress insert packets respectively. Egress packet divert logic <b>104</b> is employed to selectively divert some of the egress packets to the diversion path, i.e. egress diverted packet storage structure <b>102</b><i>b</i>, whereas egress insert logic <b>106</b> is employed to selectively merge the staged egress insert packets onto the transmit path, i.e. merging the egress undiverted and insert packets staged at storage structures <b>102</b><i>a </i>and <b>102</b><i>c. </i>
P-0026[0026] For the embodiment, buffering structure <b>100</b><i>i </i>further includes a number of ingress packet storage structures <b>122</b><i>a</i>-<b>122</b><i>c</i>, ingress packet divert logic <b>124</b>, ingress packet insert logic <b>126</b>, and in particular, processor interface <b>112</b>. Ingress packet storage structures <b>122</b><i>a</i>-<b>122</b><i>c </i>includes ingress undiverted packet storage structure <b>122</b><i>a</i>, ingress diverted packet storage structure <b>122</b><i>b</i>, and ingress insert packet storage structure <b>122</b><i>c</i>, employed to stage the ingress undiverted packets, ingress diverted packets, and ingress insert packets respectively. Ingress packet divert logic <b>124</b> is employed to selectively divert some of the ingress packets to the diversion path, i.e. ingress divert storage structure <b>122</b><i>b</i>, whereas ingress packet insert logic <b>126</b> is employed to selectively merge the staged ingress insert packets onto the receive path, i.e. merging the ingress undiverted and insert packets staged at storage structures <b>122</b><i>a </i>and <b>122</b><i>c. </i>
P-0027[0027] In one embodiment, storage structures <b>102</b><i>a</i>-<b>102</b><i>c </i>and <b>122</b><i>a</i>-<b>122</b><i>c </i>are First-In First-Outs (FIFO) storage structures; and processor interface <b>112</b> is a register-based interface, accessible via a data bus or processor interface (not shown), and includes associated read and write pointers. More specifically, in one embodiment, the egress undiverted packet FIFO <b>102</b><i>a </i>has a size of 1536 word by 73 bits (64-bits for the packet data, plus 4-bit SOP, 4-bit EOP and 1 bad packet bit indicator), and each of the egress diverted packet FIFO <b>102</b><i>b </i>and egress insert packet FIFO <b>102</b><i>c </i>has a size of 64 words by 73 bits. Similarly, the ingress undiverted packet FIFO <b>122</b><i>a </i>has a size of 1536 word by 73 bits, and each of the ingress diverted packet FIFO <b>122</b><i>b </i>and ingress insert packet FIFO <b>122</b><i>c </i>has a size of 64 words by 73 bits.
P-0028[0028] Before proceeding to describe the logic components, i.e. components <b>104</b>-<b>106</b> and <b>124</b>-<b>126</b>, in further detail, it should be noted that while for completeness, the embodiment is comprehensively illustrated to include facilities associated with packet diversion and packet insertion for egress as well as ingress packets, in practice, the present invention may be practiced with only some of these features to practice only some of the aspects of the present invention, e.g. diversion of egress packets only, insertion of egress packets only, diversion of ingress packets only, or insertion of ingress packets only, or combination thereof.
Egress Diversion
P-0029[0029] Turning now to FIG. 4, wherein egress packet divert logic <b>104</b> of FIG. 3 is illustrated in further details in accordance with one embodiment. As shown, for the embodiment, egress packet divert logic <b>104</b> includes egress packet selector <b>132</b>, egress undiverted packet gap compression logic <b>134</b>, egress undiverted packet SS write and overflow packet drop logic <b>136</b>, egress diverted packet gap compression logic <b>138</b>, and egress diverted packet SS write, overflow and drop logic <b>136</b>.
P-0030[0030] Egress packet selector <b>132</b> is designed to receive the egress packet data, including the associated SOP, EOP, and bad packet bits, as well as a number of control signals. The control signals include in particular, a first control signal denoting an egress packet is to be diverted, and a second control signal denoting an egress packet is to be dropped. Responsive to the assertion of the divert control signal, egress packet selector <b>132</b> routes the egress packet data being received to the diversion path (diverted packet storage structure <b>102</b><i>b</i>); otherwise, the received egress packet data are allowed to pass thru onto the transmit path (undiverted packet storage structure <b>102</b><i>a</i>).
P-0031[0031] Each of the egress packet gap compression logic <b>134</b> and <b>138</b> removes packet data gaps for the corresponding data paths, i.e. transmit and diversion paths. Further, each of egress packet gap compression logic <b>134</b> and <b>138</b> generates a data ready signal for the corresponding following storage structure's write, overflow and drop logic <b>136</b> and <b>140</b>, when a complete n-bit word of the egress packet is available (n being <b>64</b> in the earlier described FIFO embodiments).
P-0032[0032] Each of the write, overflow and drop logic <b>136</b> and <b>140</b>, in response, generates a write enable signal for the corresponding storage structure <b>102</b><i>a </i>and <b>102</b><i>b</i>, and writes the n-bit word, along with the SOP, EOP and bad packet indicator bit into one n-bit storage word of the storage structure <b>102</b><i>a</i>/<b>102</b><i>b</i>. Diverted packet write, overflow and drop logic <b>140</b> also generates a signal to convey packet availability to the host processor, when a complete packet is ready for the host processor to retrieve.
P-0033[0033] For the embodiment, each of write, overflow and drop logic <b>136</b> and <b>140</b> is also responsible for flushing the corresponding storage structure, i.e. storage structure <b>102</b><i>a </i>and <b>102</b><i>b</i>, total or tail only, when a corresponding flushing bit (specified e.g. in a configuration register (not shown)) is set.
P-0034[0034] For the earlier described FIFO embodiments, total flushing of FIFO <b>102</b><i>a</i>/<b>102</b><i>b </i>may be accomplished by synchronously resetting both the associated write and read pointers (not shown) of the FIFO to zero.
P-0035[0035] Further, for the embodiment, each of write, overflow and drop logic <b>136</b> and <b>140</b> is responsible for packet dropping from the “tail” of the corresponding storage structure <b>102</b><i>a </i>and <b>102</b><i>b </i>(“tail flushing”). For the embodiment, each of write, overflow and drop logic <b>136</b> and <b>140</b> initiates the tail packet dropping/flushing process if one of a number of conditions occurs. Examples of these conditions include but are not limited to
P-0036[0036] a) Storage structure overflow caused by an attempted write into a full storage structure; and
P-0037[0037] b) In response to the earlier mentioned packet drop control signal.
P-0038[0038] For the earlier described FIFO embodiments, for the former cause (condition (a)), logic <b>136</b>/<b>140</b> reloads the associated write pointer to the SOP location of the packet being dropped +2, and writing an EOP condition into the SOP+2 location, with the bad packet bit set. Further, the residual truncated packet is invalidated by the corresponding read, underflow and drop logic <b>142</b>/<b>144</b> of egress insert logic <b>106</b>. This manner of tail flushing is performed except while operating for packets transmitted in accordance with the HDLC and SONET protocols.
P-0039[0039] In one embodiment, in support of packets transmitted in accordance with the HDLC and SONET protocols, logic <b>136</b>/<b>140</b> also accounts for the possibility that the SOP has already been read out of storage structure <b>102</b><i>a</i>/<b>102</b><i>b</i>, during an overflow situation. More specifically, for the earlier described FIFO embodiments, logic <b>136</b>/<b>140</b> reloads the write pointer with the read pointer address plus 8. Logic <b>136</b>/<b>140</b> then writes the EOP at this location, with the bad packet bit set, which results in a partial flush of the bad packet. The bad packet flag in turn will also alert a downstream MAC or HDLC processor that the preceding packet was aborted. In one embodiment, the MAC or HDLC processor responds by corrupting the CRC of the truncated packet to guarantee that the packet be dropped by a downstream entity.
P-0040[0040] For the earlier described FIFO embodiments, for the latter cause (condition (b)), logic <b>136</b>/<b>140</b> also takes into account whether SOP of the aborted packet is still in the corresponding FIFO <b>102</b><i>a</i>/<b>102</b><i>b</i>. If the SOP of the aborted packet is still in the FIFO, and if the SOP address is 6 greater than the read pointer address, upon detecting the packet drop signal, logic <b>136</b>/<b>140</b> reloads the FIFO write pointer with the abort packet's SOP address plus 2, and then writes the EOP to this location, with the bad packet bit set. Again, the residual partial packet is invalidated by the corresponding read, underflow and drop logic <b>142</b>/<b>144</b> of egress insert logic <b>106</b>. If the SOP of the aborted packet is still in the FIFO, and if the SOP address is less than 6 larger than the read pointer address, the EOP and bad packet bit is written to the read point address plus 8 to insure the read pointer will not advance past the write pointer and miss the EOP and bad packet bit, and cause the pointers to get out of sequence. The corresponding FIFO read, underflow and drop logic <b>142</b>/<b>144</b> of egress insert logic <b>106</b> is employed to invalidate the byte containing the EOP. If on the other hand, the SOP of the aborted packet has already been read out of the FIFO, logic <b>106</b> will reload the FIFO write pointer with the read pointer address plus 8. Logic <b>106</b> then writes the EOP at this location, with the bad packet bit set, resulting in a partial flush of the bad packet. Again, the bad packet flag will be detected by the corresponding read, underflow and drop logic <b>142</b>/<b>144</b> of egress insert logic <b>106</b>.
P-0041[0041] In one embodiment, in support of packets transmitted in accordance with the EOS protocol, write, overflow and drop logic <b>136</b>/<b>140</b> is also designed to generate the byte count of an EOS data packet (during an EOS mode of operation), to facilitate subsequent insertion of the packet byte length into a 2-byte field after the preamble, during frame generation for EOS. In one embodiment, an additional 16-bit wide, 40-word deep FIFO (not shown) is employed to store the generated EOS packet sizes.
Egress Insertion
P-0042[0042]FIG. 5 illustrates egress packet insert logic <b>106</b> of FIG. 3 in further details in accordance with one embodiment. As illustrated, for the embodiment, egress packet insertion logic <b>106</b> includes egress undiverted packet SS read, underflow and drop logic <b>142</b>, egress inserted packet SS read and path access logic <b>144</b>, and egress packet merge logic <b>146</b>.
P-0043[0043] Egress packet merge logic <b>146</b> is employed to generate a read enable signal for either read, underflow and drop logic <b>142</b> and <b>144</b> to select egress packets stored in one of the two storage structures <b>102</b><i>a </i>and <b>102</b><i>c. </i>
P-0044[0044] Read, underflow and drop logic <b>142</b> is responsible for generating the read enable signal in response for the selection of storage structure <b>102</b><i>a</i>, to enable data flow from storage structure <b>102</b><i>a. </i>
P-0045[0045] Read, underflow and drop logic <b>142</b> is also responsible for flushing the corresponding storage structure <b>102</b><i>a</i>, total or head only. For the earlier described FIFO embodiments, total flushing may be accomplished, as described earlier, by synchronously resetting both the write and read pointers to zero. No additional data words, of the current packet, will be written to the FIFO until a new SOP is received. Read, underflow and drop logic <b>142</b> will refrain from initiating any reading of the corresponding FIFO, until the FIFO word count of the corresponding FIFO exceeds a predetermined threshold.
P-0046[0046] Read, underflow and drop logic <b>142</b> is also responsible for packet dropping from the “head” of the corresponding storage structure. In one embodiment, read, underflow and drop logic <b>142</b> performs the “head” packet drop/flush in response to a number of predetermined conditions. Examples of these conditions include but are not limited to
P-0047[0047] a) Egress datapath underflow caused by an attempted read of an empty storage structure; and
P-0048[0048] b) In response to a packet drop control signal.
P-0049[0049] For the earlier described FIFO embodiments, for the earlier condition (i.e. condition (a)), read, underflow and drop logic <b>142</b> performs the “head” drop/flush by muxing an EOP into the data path. The action conveys to any subsequent (data link/physical layer) processing unit, e.g. a MAC or HDLC processor, that the current packet is bad. In one embodiment, the MAC or HDLC processor responds by corrupting the CRC of the current packet.
P-0050[0050] As described earlier, total flushing of the corresponding FIFO may be performed by synchronously resetting both the write and read pointers to zero. No additional data words, of the current packet, will be written into the corresponding FIFO, until a new SOP is received. Correspondingly, no reading of the FIFO on the output side will be initiated either, until the FIFO word count has reached a predetermined threshold.
P-0051[0051] For the earlier described FIFO embodiments, for the latter condition (i.e. condition (b)), read, underflow and drop logic <b>142</b> determines if the SOP of the aborted packet is still in the process of being read out in the output side, when the EOP and bad packet bit are detected. If so, the remaining words of the truncated packet are invalidated. Thus, upon completing the dropping of the rest of the aborted packet on the write side, dropping of the current packet is effectuated.
P-0052[0052] If the SOP has already been read out, the EOP byte of the current word is invalidated. The action will notify subsequent processing units, such as MAC or HDLC processors, that the current packet is bad. Again, in one embodiment, the MAC or HDLC processor responds by corrupting the CRC of the current packet.
P-0053[0053] In like manner, read and path access logic <b>144</b> is responsible for generating the read enable signal in response for the selection of storage structure <b>102</b><i>c</i>, to enable data flow from storage structure <b>102</b><i>c</i>. Read and path access logic <b>144</b> is also responsible for notifying the host processor that it may provide additional insert data when storage structure <b>102</b><i>c </i>becomes empty.
Processor Interface—Egress Packet Side
P-0054[0054]FIG. 6 illustrates processor interface <b>112</b> of FIG. 3 in further details in accordance with one embodiment. As illustrated, for the embodiment, for the egress packet side, processor interface <b>112</b> includes a number of egress data read and write (R/W) registers, and their associated processor control slave logic <b>156</b>, egress diverted packet unpacker and data formatter <b>152</b>, and egress insert data packer and SOP/EOP generation logic <b>154</b>.
P-0055[0055] Egress data R/W registers, and their associated processor control slave logic <b>156</b> are employed to facilitate a host processor in retrieving the egress diverted packet data, and providing the egress insert packet data. In response to a notice of the egress diverted packet data being ready for the host processor to retrieve, the host processor generates the appropriate control signals for egress diverted packet unpacker and data formatter <b>152</b> through the associated processor control slave logic <b>156</b>. Egress diverted packet unpacker and data formatter <b>152</b> in response, generates the appropriate read enable signals for the egress diverted packet storage structure <b>102</b><i>b</i>. Further, unpacker and data formatter <b>152</b> reads the gap-compressed packet data and the associated SOP, EOP and bad packet indicator from storage structure <b>102</b><i>b</i>, and “unpack” them for placement onto the appropriate bit positions of the data bus. The process continues until the EOP is encountered (i.e. the applicable EOP bit set).
P-0056[0056] In like manner, a host processor generates the appropriate control signals for egress insert data packer and SOP/EOP generation <b>154</b> through the associated processor control slave logic <b>156</b>. Egress insert data packer and SOP/EOP generation <b>154</b> in response, generates the appropriate write enable signals for the egress insert storage structure <b>102</b><i>c</i>. Further, data packer and SOP/EOP generation <b>154</b> writes the insert data and the associated SOP, EOP and bad packet indicator bits into storage structure <b>102</b><i>c </i>in “packed” form, and the unpacked portions are successively taken off the appropriate bit positions of the data bus.
Ingress Diversion
P-0057[0057]FIG. 7 illustrates ingress packet divert logic <b>124</b> of FIG. 3 in further details in accordance with one embodiment. As illustrated, for the embodiment, ingress packet divert logic <b>124</b> includes ingress packet selector <b>162</b>, ingress undiverted packet gap compression logic <b>164</b>, ingress undiverted packet SS write, overflow and drop logic <b>166</b>, ingress diverted packet gap compression logic <b>168</b>, ingress diverted packet SS write, overflow and drop logic <b>170</b>.
P-0058[0058] Ingress packet selector <b>162</b> is designed to receive the packet data, including the associated SOP, EOP, and bad packet bits, as well as a number of control signals. The control signals include in particular, a first control signal denoting an ingress packet is to be diverted, and a second control signal denoting an ingress packet is to be dropped. Responsive to the assertion of the control signal denoting an ingress packet is to be diverted, ingress packet selector <b>132</b> routes the ingress packet data being received to the diversion path (diverted packet storage structure <b>122</b><i>b</i>); otherwise, the received ingress packet data are allowed to pass thru onto the receive path (undiverted packet storage structure <b>122</b><i>a</i>).
P-0059[0059] Each of the ingress packet gap compression logic <b>164</b> and <b>168</b> removes packet data gaps for the corresponding data paths, i.e. receive and diversion paths. Further, each of ingress packet gap compression logic <b>164</b> and <b>168</b> generates a data ready signal for the corresponding following storage structure's write, overflow and drop logic <b>166</b> and <b>170</b>, when a complete n-bit word is available (n being 64 in the earlier described FIFO embodiments).
P-0060[0060] Each of the write, overflow and drop logic <b>166</b> and <b>170</b>, in response, generates a write enable signal for the corresponding storage structure <b>122</b><i>a </i>and <b>122</b><i>b</i>, and writes the n-bit word, along with the SOP, EOP and bad packet indicator bit into one n-bit storage word. Diverted packet write, overflow and drop logic <b>170</b> also generates a signal to convey packet availability to a host processor, when a complete ingress packet is ready for the host processor to retrieve.
P-0061[0061] For the embodiment, each of write, overflow and drop logic <b>166</b> and <b>170</b> is also responsible for flushing the corresponding storage structure, i.e. storage structure <b>122</b><i>a </i>and <b>122</b><i>b </i>(total or tail only), when a corresponding flushing bit (specified e.g. in a configuration register (not shown)) is set.
P-0062[0062] For the earlier described FIFO embodiments, total flushing FIFO <b>122</b><i>a</i>/<b>122</b><i>b </i>may be accomplished by synchronously resetting both the associated write and read pointers of the FIFO to zero.
P-0063[0063] Further, for the embodiment, each of write, overflow and drop logic <b>166</b> and <b>170</b> is responsible for packet dropping from the “tail” of the corresponding storage structure <b>122</b><i>a </i>and <b>122</b><i>b</i>. For the embodiment, each of write, overflow and drop logic <b>166</b> and <b>170</b> initiates the packet dropping process if one of a number of conditions occurs. Examples of these conditions include but are not limited to
P-0064[0064] a) Storage structure overflow caused by an attempted write into a full storage structure; and
P-0065[0065] b) In response to the earlier mentioned packet drop control signal.
P-0066[0066] For the earlier described FIFO embodiments, for the former cause (condition (a)), logic <b>166</b>/<b>170</b> reloads the associated write pointer to the SOP location of the packet being dropped +2, and writing an EOP condition into the SOP+2 location, with the bad packet bit set. Further, the residual truncated packet is invalidated by the corresponding read, underflow and drop/path access logic <b>172</b>/<b>174</b> of ingress insert logic <b>126</b>. This manner of tailing flushing is performed except when operating for packets transmitted in accordance with the HDLC and SONET protocols.
P-0067[0067] In one embodiment, in support of packets transmitted in accordance with the HDLC and SONET protocols, logic <b>166</b>/<b>170</b> also accounts for the possibility that the SOP has already been read out of storage structure <b>122</b><i>a</i>/<b>122</b><i>b </i>by the downstream SPI-4 logic <b>204</b> (FIG. 9), during an overflow situation. More specifically, for the earlier described FIFO embodiments, logic <b>166</b>/<b>170</b> reloads the write pointer with the read pointer address plus 8. Logic <b>166</b>/<b>170</b> then writes the EOP at this location, with the bad packet bit set, which results in a partial flush of the bad packet. If the bad packet SOP has already been transferred to the downstream SPI-4 logic <b>204</b>, an abort indication is asserted to the SPI-4 logic <b>204</b>, causing the SPI-4 logic <b>204</b> to abort the bad packet transfer.
P-0068[0068] For the earlier described FIFO embodiments, for the latter cause (condition (b), logic <b>166</b>/<b>170</b> also takes into account whether SOP of the aborted packet is still in the corresponding FIFO <b>122</b><i>a</i>/<b>122</b><i>b</i>. If the SOP of the aborted packet is still in the FIFO, and if the SOP address is 6 greater than the read pointer address, upon detecting the drop packet signal, logic <b>166</b>/<b>170</b> reloads the FIFO write pointer with the abort packet's SOP address plus 2, and then writes the EOP to this location, with the bad packet bit set. Again, the residual partial packet is invalidated by the corresponding read, underflow and drop/path access logic <b>172</b>/<b>174</b> of ingress insert logic <b>126</b>. If the SOP of the aborted packet is still in the FIFO, and if the SOP address is less than 6 larger than the read pointer address, the EOP and bad packet bit is written to the read point address plus 8 to insure the read pointer will not advance pass the write pointer and miss the EOP and back packet bit, and cause the pointers to get out of sequence. The corresponding FIFO read, underflow and drop/path access logic <b>172</b>/<b>174</b> of ingress insert logic <b>126</b> is employed to invalidate the byte containing the EOP. If on the other hand, the SOP of the aborted packet has already been read out of the FIFO, logic <b>126</b> will reload the FIFO write pointer with the read pointer address plus 8. Logic <b>126</b> then writes the EOP at this location, with the bad packet bit set, resulting in a partial flush of the bad packet. Again, the bad packet flag will be detected by the corresponding read, underflow and drop/path access logic <b>172</b>/<b>174</b> of ingress insert logic <b>126</b>. If the bad packet SOP has already been read by the SPI-4 logic <b>204</b>, logic <b>126</b> signals an abort condition to the SPI-4 logic <b>204</b>. This causes the SPI-4 logic <b>204</b> to abort the bad packet currently being transferred.
INGRESS INSERTION
P-0069[0069]FIG. 8 illustrates ingress insertion logic <b>126</b> of FIG. 3 in further details in accordance with one embodiment. As illustrated, for the embodiment, ingress insertion logic <b>126</b> includes ingress undiverted packet read, underflow and drop logic <b>172</b>, ingress inserted packet read and path access logic <b>174</b>, and ingress packet merge logic <b>176</b>.
P-0070[0070] Ingress packet merge logic <b>176</b> is employed to generate a read enable signal for either read, underflow and drop logic <b>172</b> or read and access path logic <b>174</b> to select ingress packets stored in one of the two storage structures <b>122</b><i>a </i>and <b>122</b><i>c. </i>
P-0071[0071] Read, underflow and drop logic <b>172</b> is responsible for generating a read enable signal, in response, for the selection of storage structure <b>172</b><i>a </i>to enable data flow from the selected storage structure <b>172</b><i>a. </i>
P-0072[0072] Read, underflow and drop logic <b>172</b> is also responsible for flushing the corresponding storage structure <b>122</b><i>a </i>(total or head only). For the earlier described FIFO embodiments, total flushing may be accomplished, as described earlier, by synchronously resetting both the write and read pointers to zero. No additional data words, of the current packet, will be written into the ingress packet FIFO until a new SOP is received. Read, underflow and drop logic <b>172</b> will refrain from initiating any reading of the corresponding FIFO, until the FIFO word count of the corresponding FIFO exceeds a predetermined threshold.
P-0073[0073] Read, underflow and drop logic <b>172</b> is also responsible for packet dropping from the “head” of the corresponding storage structure <b>122</b><i>a</i>. In one embodiment, read, underflow and drop logic <b>172</b> performs the “head” packet drop in response to a number of predetermined conditions. Examples of these conditions, include but are not limited to
P-0074[0074] a) Ingress datapath underflow caused by an attempted read of an empty storage structure;
P-0075[0075] b) In response to a packet drop control signal.
P-0076[0076] For the earlier described FIFO embodiments, for the earlier condition (condition (a)), read, underflow and drop logic <b>172</b> performs the “head” drop by muxing an EOP into the data path. Additional, a control signal is generated for ingress packet merge <b>176</b> to forward the downstream processing units, e.g. a coupled system, that the current packet is to be dropped.
P-0077[0077] As described earlier, total flushing of the corresponding FIFO may be performed by synchronously resetting both the write and read pointers to zero. No additional data words, of the current packet, will be written into the corresponding FIFO, until a new SOP is received. Corresponding, no reading of the FIFO on the output side will be initiated either, until the FIFO word count has reached a predetermined threshold.
P-0078[0078] For the earlier described FIFO embodiments, for the latter condition (condition (b)), read, underflow and drop logic <b>142</b> determines if the SOP of the aborted packet is still in the process of being read out in the output side, when the EOP and bad packet bit are detected. If so, the remaining words of the truncated packet are invalidated. Thus, upon completing dropping the rest of the aborted packet on the write side, dropping of the current packet is effectuated.
P-0079[0079] If the SOP has already been read out, a control signal is generated for ingress packet merge <b>176</b> to forward the downstream processing units, e.g. a coupled system, to denote for the downstream processing units that the current packet is to be dropped.
P-0080[0080] In like manner, read and path access logic <b>174</b> is responsible for generating the read enable signal in response for the selection of storage structure <b>122</b><i>c</i>, to enable data flow from storage structure <b>102</b><i>c</i>. Read and path access logic <b>174</b> is also responsible for notifying the host processor that it may provide additional ingress insert data when storage structure <b>122</b><i>c </i>becomes empty.
Processor Interface—Ingress Side
P-0081[0081] Referring back to FIG. 6 again, wherein an embodiment of processor interface <b>112</b> of FIG. 3 is illustrated. As illustrated, for the embodiment, for the ingress packet side, processor interface <b>112</b> includes a number of ingress data read and write (RNV) registers, and their associated processor control slave logic <b>156</b>, ingress diverted packet unpacker and data formatter <b>158</b>, and ingress insert data packer and SOP/EOP generation logic <b>160</b>.
P-0082[0082] Ingress data RNV registers, and their associated processor control slave logic <b>156</b> are employed to facilitate a host processor in retrieving the ingress diverted packet data and providing the ingress insert packet data. In response to a notice of the ingress diverted packet data being ready for a host processor to retrieve, the host processor generates the appropriate control signal for ingress diverted packet unpacker and data formatter <b>158</b> through the associated processor control slave logic <b>156</b>. Ingress diverted packet unpacker and data formatter <b>158</b> in response, generates the appropriate read enable signals for the ingress diverted packet storage structure <b>122</b><i>b</i>. Further, unpacker and data formatter <b>172</b> reads the gap-compressed packet data and the associated SOP, EOP and bad packet indicator from storage structure <b>122</b><i>b</i>, and “unpack” them for placement onto the appropriate bit positions of the data bus. The process continues until the EOP is encountered (i.e. the applicable EOP bit set).
P-0083[0083] In like manner, a host processor generates the appropriate control signal for ingress insert data packer and SOP/EOP generation <b>160</b> through the associated processor control slave logic <b>156</b>. Ingress insert data packer and SOP/EOP generation <b>160</b> in response, generates the appropriate write enable signals for the ingress insert storage structure <b>122</b><i>c</i>. Further, data packer and SOP/EOP generation <b>160</b> writes the insert data and the associated SOP, EOP and bad packet indicator bits into storage structure <b>122</b><i>c </i>in “packed” form, and the unpacked portions are successively taken off the appropriate bit positions of the data bus.
Protocol Processor
P-0084[0084]FIG. 9 illustrates an exemplary application of the present invention. Illustrated in FIG. 9 is multi-protocol processor <b>200</b> incorporated with the packet diversion and insertion teachings of the present invention, including packet flushing, for multiple datacom and telecom protocols. As illustrated, for the embodiment, multi-protocol processor <b>200</b> includes system interface <b>204</b>, network interface <b>206</b>, intermediate interface <b>208</b>, media access control block <b>210</b>, Ethernet <b>64</b>/<b>64</b> coder <b>212</b>, Ethernet on SONET coder <b>214</b>, point-to-point protocol (PPP) and high level data link control (HDLC) processor <b>216</b>, HDLC Packet over SONET coder <b>218</b>, SONET path processor <b>220</b>, SONET section and line processor <b>222</b>, and most importantly, buffering structure <b>100</b> of the present invention, coupled to each other as shown. Further, multi-protocol processor <b>200</b> includes control function unit and interfaces <b>307</b>-<b>309</b>, Elements <b>204</b>-<b>222</b> are selectively employed in combination to service data transmission and receipt in accordance with a selected one of a number of frame based protocols, including frame based protocols encapsulated within a synchronous protocol, as well as streaming and packet variants of the synchronous protocol. In various embodiments, the protocols include at least one each a datacom and a telecom protocol, allowing multi-protocol processor <b>200</b> to support data trafficking spanning local, regional as well as wide area networks. In a presently preferred embodiment, multi-protocol processor <b>200</b> is implemented as a single ASIC.
P-0085[0085] More specifically, for the illustrated embodiment, the elements are employed in combination to service data transmission and receipt as follows: <tables id="TABLE-US-00002" num="2"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="OFFSET" colwidth="14PT" align="left" /><colspec colname="1" colwidth="56PT" align="left" /><colspec colname="2" colwidth="147PT" align="left" /><thead><row><entry /><entry /></row><row><entry /><entry namest="OFFSET" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>Protocols</entry><entry>Elements Employed</entry></row><row><entry /><entry namest="OFFSET" nameend="2" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /><entry>SONET Stream</entry><entry>System Interface, SONET Section/Line</entry></row><row><entry /><entry /><entry>Processor, Network Interface</entry></row><row><entry /><entry>SONET Packet</entry><entry>System Interface, SONET path processor,</entry></row><row><entry /><entry /><entry>SONET Section/Line Processor, Network</entry></row><row><entry /><entry /><entry>Interface</entry></row><row><entry /><entry>Packet over</entry><entry>System Interface, HDLC processor, HDLC</entry></row><row><entry /><entry>SONET</entry><entry>POS coder, SONET path processor, SONET</entry></row><row><entry /><entry /><entry>Section/Line Processor, Network Interface</entry></row><row><entry /><entry>Ethernet on</entry><entry>System Interface, 10GbE MAC, Ethernet on</entry></row><row><entry /><entry>SONET</entry><entry>SONET coder, SONET path processor,</entry></row><row><entry /><entry /><entry>SONET Section/Line Processor, Network</entry></row><row><entry /><entry /><entry>Interface</entry></row><row><entry /><entry>10GbE WAN</entry><entry>System Interface, 10GbE MAC, Ethernet 64/66</entry></row><row><entry /><entry /><entry>coder, SONET path processor, SONET</entry></row><row><entry /><entry /><entry>Section/Line Processor, Network Interface</entry></row><row><entry /><entry>10GbE LAN</entry><entry>System Interface, 10GbE MAC, Ethernet 64/66</entry></row><row><entry /><entry /><entry>coder, Network Interface</entry></row><row><entry /><entry>MAC Frame</entry><entry>System Interface, 10GbE MAC, Intermediate</entry></row><row><entry /><entry /><entry>Interface</entry></row><row><entry /><entry>HDLC Frame</entry><entry>System Interface, HDLC Processor,</entry></row><row><entry /><entry /><entry>Intermediate Interface</entry></row><row><entry /><entry namest="OFFSET" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
P-0086[0086] As those skilled in the art would appreciate, the concurrent support of these protocols in a dynamically selectable manner, in particular, the inclusion of 10 Gb Ethernet and Packet over SONET protocols, advantageously enables the processor to scale local, regional, and wide area networks.
P-0087[0087] For the illustrated embodiment, the “operating” protocol is specified to control function unit <b>308</b>, which in turn controls the above enumerated elements accordingly. In a preferred variant of the illustrated embodiment, control function unit <b>308</b> includes a control register (not shown) having a 3-bit “protocol” field. The 3-bit “protocol” field is accessible via 3 corresponding pins (not shown) of processor interface <b>307</b>.
P-0088[0088] System interface <b>204</b> is provided to facilitate input of egress data and output of ingress data. In one embodiment, system interface <b>204</b> is a 16-bit parallel LVDS packet interface, compliant with OIF's SPI-4 interface defined for OIF-SPI4-02.0, which is a “phase 2“interface for the communication of packetized data between a physical layer and link layer entity. In one implementation, the 16-bit differential transmit and receive data busses operate at speed up to 832 Mb/s per bus line. By virtual of the ability of multi-protocol processor <b>200</b> to support the afore enumerated protocols, the transmit and receive data (i.e. the egress and ingress data) may be MAC, IP, PPP, HDLC or SONET framed/streaming data (including their in-band control words, where applicable).
P-0089[0089] 10 GbE MAC block <b>210</b> is provided to perform data link sub-layer media access control processing on egress and ingress MAC and IP data. For egress data, 10 GbE MAC block <b>210</b> accepts correctly formatted frames (minus the preamble or start frame delimiter), and in response, adding the appropriate preamble/start frame delimiter, padding the frames to the maximum frame size, calculating and inserting the appropriate frame check sequences.
P-0090[0090] Ethernet <b>64</b>/<b>66</b> coder <b>212</b> and Ethernet on SONET Coder <b>214</b> are provided to perform physical sub-layer <b>64</b>/<b>66</b> and Ethernet on SONET coding and decoding for the egress and ingress MAC and IP data respectively.
P-0091[0091] PPP/HDLC processor <b>216</b> is provided to perform data link sub-layer point-to-point protocol and high level data link control processing on PPP and HDLC data. PPP/HDLC processor <b>216</b> is employed to frame or de-frame IP and POS data, providing appropriate encapsulation or de-encapsulation, in accordance to PPP and HDLC. Similarly, HDLC POS coder <b>218</b> is provided to perform physical sub-layer Packet on SONET coding and decoding for the egress and ingress HDLC data respectively.
P-0092[0092] SONET path processor <b>220</b> is provided to perform path processing for packetized” SONET data, whereas SONET section and line processor <b>222</b> is provided to perform section and line processing for “packetized” as well as “streaming” SONET data.
P-0093[0093] Network interface <b>206</b> is provided to facilitate output of egress data and input of ingress data. In one embodiment, correspondingly, Network interface <b>206</b> is a 16-bit LVDS interface compliant with OIF's SFI-4 interface. In one embodiment, it operates at 622 MHz (<b>645</b> for Ethernet <b>64</b>/<b>66</b> encoded data). Similar to system interface <b>204</b>, by virtue of the ability of processor <b>100</b> to support the various protocols, the egress and ingress data may be physically coded MAC, IP, PPP, HDLC or SONET framed/streaming data (including their in-band control words, where applicable). The coded data may be a SONET data stream encapsulating the higher-layer protocols or a <b>64</b>/<b>66</b> coded Ethernet stream.
P-0094[0094] Intermediate interface <b>208</b> on the other hand is provided to facilitate output of MAC or HDLC egress data and input of MAC or HDLC ingress data. In one embodiment, parallel interface <b>208</b> is a 32-bit SSTL-2 interface. In one embodiment, parallel interface <b>208</b> operates at 312.5 MHz.
P-0095[0095] Multi-protocol processor <b>200</b> is the subject matter of co-pending application entitled “A Multi-Protocol Processor With Data Traffic Support Spanning Local, Regional and Wide Area Networks”, having at least partial common inventorship and filed May 18, 2001. The co-pending application is hereby fully incorporated by reference.
Optical Networking Module
P-0096[0096]FIG. 10 illustrates a further exemplary application of the present invention. Illustrated in FIG. 10 is integrated optical networking module <b>300</b> incorporated with multi-protocol processor <b>200</b> of FIG. 9, which as described earlier is incorporated with the packet diversion and insertion teachings of the present invention. Optical networking module <b>300</b> includes optical components <b>302</b>, optical-electrical components <b>304</b>, support control electronics <b>305</b>, and multi-protocol processor <b>200</b> of FIG. 9, coupled to each other as shown. As described earlier, multi-protocol processor <b>200</b> includes in particular, a number of interfaces and processing units, collectively referenced as reference number <b>310</b>, control function unit <b>308</b>, processor interface <b>307</b> and utility interface <b>309</b> coupled to each other and components <b>302</b>-<b>304</b> as shown.
P-0097[0097] Optical components <b>302</b> are employed to facilitate the sending and receiving of optical signals encoded with data transmitted in accordance with a selected one of a plurality of protocols known in the art. Optical-electrical components <b>304</b> are employed to encode the egress data onto the optical signals, and decode the encoded ingress data. As described earlier, in a presently preferred embodiment, the supported datacom and telecom protocols include but are not limited to SONET/SDH, 10 Gbase-LR, 10 Gbase-LW, Ethernet on SONET, Packet on SONET, and so forth. Support control electronics <b>305</b> are employed to facilitate management of the various aspects of optical components <b>302</b> and optical-electrical components <b>304</b>. As described earlier, multi-protocol processor <b>200</b> is employed to perform data link and physical sub-layer processing on the egress and ingress data in accordance with a selected one of a plurality of supported datacom/telecom protocols, and to facilitate management of the multi-protocol processor <b>200</b> itself and optical, optical-electrical components <b>302</b> and <b>304</b> (through support control electronics <b>305</b>).
P-0098[0098] In a presently preferred embodiment, optical components <b>302</b>, optical-electrical components <b>304</b>, support control electronics <b>305</b> and multi-protocol processor ASIC <b>200</b> are encased in a body (not shown) forming a singular optical networking module, with provided software forming a singular control interface for all functionality. That is, in addition to being equipped to provide optical to electrical and electrical to optical conversions, clock and data recovery, and so forth, integrated optical networking module <b>300</b> is also equipped to provide data link and physical sub-layer processing on egress and ingress data selectively for a number of protocols.
P-0099[0099] Further, in the preferred embodiment, control function unit <b>308</b> also includes control features, i.e. control registers and the like (not shown), in conjunction with support control electronics <b>305</b> to support a number of control functions for managing optical components <b>302</b>, optical-electrical components <b>304</b> as well as multi-process protocol ASIC <b>200</b>. Processor interface <b>307</b> is employed to facilitate provision of control specifications to control function unit <b>308</b>, whereas utility interface <b>309</b> (a digital interface) is employed to facilitate management of components <b>302</b> and <b>304</b> by control function unit <b>308</b> (by way of support control electronics <b>305</b>). The complementary control functions are placed with an embedded processor of optical networking equipment employing integrated optical network module <b>300</b>. That is, integrated optical networking module <b>300</b> advantageously presents a singular unified software interface to optical networking equipment designers and developers to manage configuration and operation of the optical and electrical components, as well as protocol processing. As those skilled in the art would appreciate, as a result, the complexity of designing optical networking equipment, such as optical-electrical routers, switches, and the like, is reduced.
P-0100[0100] Optical networking module <b>300</b> is the subject matter of co-pending application entitled “Optical Networking Module”, having at least partial common inventorship and filed May 18, 2001. The co-pending application is hereby fully incorporated by reference.
Conclusion And Epilogue
P-0101[0101] Thus, it can be seen from the above descriptions, a novel packet diversion and insertion approach, including packet flushing, that is more scalable and suitable for modern high speed networking, in particular, for efficient network trafficking that spans local, regional, and wide area networks in support of multiple datacom and telecom protocols has been described. While the present invention has been described in terms of the foregoing embodiments, those skilled in the art will recognize that the invention is not limited to these embodiments. The present invention may be practiced with modification and alteration within the spirit and scope of the appended claims. Thus, the description is to be regarded as illustrative instead of restrictive on the present invention.
Contents4
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2007008965A1 | Cited by | United States of America | Pre-grant |
| US7143199B1 | Cited by | United States of America | Search report |
| US7894492B2 | Cited by | United States of America | Applicant |
| US2006007953A1 | Cited by | United States of America | Pre-grant |
| US11172055B2 | Cited by | United States of America | Search report |
| US2022060570A1 | Cited by | United States of America | Search report |
| US7508839B2 | Cited by | United States of America | Search report |
| US7266624B1 | Cited by | United States of America | Search report |
| US7002967B2 | Cited by | United States of America | Search report |
| US7653526B1 | Cited by | United States of America | Search report |
| US7746907B2 | Cited by | United States of America | Applicant |
| US11722587B2 | Cited by | United States of America | Search report |
| US8306037B2 | Cited by | United States of America | Applicant |
| US6954466B1 | Cited by | United States of America | Search report |
| US7346058B1 | Cited by | United States of America | Search report |
| US12341A | Cites | United States of America | Pre-grant |
| US12585A | Cites | United States of America | Pre-grant |
| US2002122386A1 | Cites | United States of America | Pre-grant |
| US2003081287A1 | Cites | United States of America | Pre-grant |
| US48272A | Cites | United States of America | Pre-grant |
| US5442761A | Cites | United States of America | Pre-grant |
| US5506710A | Cites | United States of America | Pre-grant |
| US5613069A | Cites | United States of America | Pre-grant |
| US6049550A | Cites | United States of America | Pre-grant |
| US6249525B1 | Cites | United States of America | Pre-grant |
| US6256308B1 | Cites | United States of America | Pre-grant |
| US6304571B1 | Cites | United States of America | Pre-grant |
| US6335935B2 | Cites | United States of America | Pre-grant |
| US6785290B1 | Cites | United States of America | Pre-grant |
| US6792174B1 | Cites | United States of America | Pre-grant |
5 members in 3 offices
Members5
| Document | Office | Kind | |
|---|---|---|---|
| WO03013009A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2002322826A1 | Australia | A1 | |
| US2003193962A1 | United States of America | A1 | |
| WO03013009A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US7415031B2 | United States of America | B2 |
74 transactions on the USPTO file
Allowed after 3 non-final rejections, 2 final rejections and 2 RCEs.
- Non-final rejections
- 3
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Correspondence Address ChangeC.AD | C.AD | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to Examiner | – | |
| Date Forwarded to Examiner | – | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Correspondence Address ChangeC.AD | C.AD | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to Examiner | – | |
| Date Forwarded to Examiner | – | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Mail-Petition Decision - GrantedMPTGR | MPTGR | |
| Petition EnteredPET. | PET. | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Correspondence Address ChangeC.AD | C.AD | |
| IFW Scan & PACR Auto Security Review | – | |
| Initial Exam Team nnIEXX | IEXX |
13 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Lapse for failure to pay maintenance feesLapsedLAPS | LAPS | |
| Maintenance fee reminder mailedREMI | REMI | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| Certificate of correctionCC | CC | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Application
- 91869101
Titles
- English
- Data link/physical layer packet diversion and insertion
Patent term adjustment
- A delay
- +960 daysthe office missed an examination deadline
- Applicant delay
- −201 days
- Net adjustment
- 759 days
Classification
- CPC, 3
- H04L49/9047
- H04L49/90
- H04L49/9094
- IPC, 1
- H04L12 56