A system for embedding metadata in data packets has logic that is configured to insert metadata into a data packet after the payload data and padding, if any. The logic further adjusts the packet's overhead, such as a frame check sequence, to account for the added length of the packet. The packet remains compliant with applicable protocols, such as Ethernet, and can be successfully communicated in accordance with such protocols while carrying the metadata. In this regard, the insertion of the metadata is transparent to protocol stacks such that the metadata data does not cause an error or the protocol stacks to render the packet invalid. In particular, the protocol stacks view the inserted metadata as part of the packet's pad field, and the inserted metadata should not cause any errors in the operation of the protocol stacks or prevent the protocol stacks from processing the packet.
|
13. A method for use in a network switch, comprising the steps of:
receiving a first data packet and a second data packet via at least one ingress port of the network switch;
forwarding the second data packet to one of a plurality of egress ports of the network switch;
trapping the first data packet thereby transmitting the first data packet to a microprocessor of the network switch, wherein the first data packet has a header, a payload field, and a frame check sequence at an end of the first data packet, wherein the header precedes the payload field, and wherein the payload field precedes the frame check sequence;
determining metadata indicative of at least one attribute of the first data packet; changing the frame check sequence based on the metadata;
inserting the metadata into the first data packet such that the payload field precedes the metadata in the first data packet;
reading the metadata via the microprocessor;
identifying the at least one attribute based on the reading step;
handling an exception for the first data packet via the microprocessor based on the identified attribute; and
transmitting the first data packet from the microprocessor to one of the egress ports.
7. A network switch, comprising:
at least one ingress port;
a plurality of egress ports;
switching logic configured to receive at least a first data packet and a second data packet from the ingress port and to forward the second data packet to one of the egress ports, the switching logic configured to detect an exception for the first data packet and to direct the first data packet to an exception queue in response to the detected exception, the switching logic further configured to determine metadata indicative of at least one attribute of the first data packet, wherein the first data packet has a header, a payload field, and a first frame check sequence, wherein the header precedes the payload field, wherein the payload field precedes the first frame check sequence, and wherein the switching logic is configured to modify the first data packet such that the first frame check sequence is changed based on the metadata to a second frame check sequence and such that the metadata is inserted into the first data packet between the payload field and the second frame check sequence; and
a microprocessor configured to receive the first data packet from the exception queue and to read the metadata, the microprocessor further configured to identify the at least one attribute based on the metadata and to handle the exception based on the identified attribute.
1. A network switch, comprising:
at least one ingress port;
a plurality of egress ports;
switching logic configured to receive at least a first data packet and a second data packet from the ingress port and to forward the second data packet to one of the egress ports, the switching logic configured to detect an exception for the first data packet and to direct the first data packet to an exception queue in response to the detected exception, the switching logic further configured to determine metadata indicative of at least one attribute of the first data packet, wherein the first data packet has a header, a payload field, a pad field, and a first frame check sequence, wherein the header precedes the payload field, wherein the payload field precedes the pad field, and wherein the pad field precedes the frame check sequence, wherein the pad field is between the payload field and the first frame check sequence, and wherein the switching logic is configured to insert the metadata into the first data packet such that the payload field precedes the metadata in the first data packet; and
a microprocessor configured to receive the first data packet from the exception queue and to read the metadata, the microprocessor further configured to identify the at least one attribute based on the metadata and to handle the exception based on the identified attribute.
2. The network switch of
3. The network switch of
4. The network switch of
5. The network switch of
6. The network switch of
8. The network switch of
9. The network switch of
10. The network switch of
11. The network switch of
12. The network switch of
14. The method of
15. The method of
17. The method of
18. The network switch of
19. The network switch of
20. The network switch of
21. The network switch of
22. The network switch of
23. The network switch of
24. The network switch of
25. The network switch of
26. The network switch of
27. The network switch of
28. The method of
29. The method of
transmitting the first data packet from the one egress port; and
stripping the metadata from the first data packet before the transmitting the first data packet from the one egress port.
30. The method of
31. The method of
detecting an exception for the first data packet, wherein the trapping step is performed in response to the detecting step; and
identifying an exception type of the detected exception based on the at least one attribute.
32. The method of
|
Telecommunication networks often employ Ethernet switching elements for controlling the paths of data packets propagating through the network. In general, a switching element has a plurality of ingress ports for receiving traffic, and a plurality of egress ports for transmitting the traffic to other nodes of the network. A packet received from an ingress port is forwarded to an appropriate egress port according to a forwarding table that is stored in the switching element.
In general, the flow of data packets from ingress ports to egress ports is controlled in hardware. However, it may be desirable to trap at least some data packets for software processing. An “exception” generally refers to a characteristic of a data packet that causes the packet to be trapped for specialized processing. Packets deemed to have an exception are directed from the normal packet flow to a microprocessor, and software within the microprocessor processes such packets in a desired manner depending on the reason for the exception. As an example, a protocol stack within the microprocessor might adjust the overhead of data packets from a certain packet flow (e.g., originating from a particular source or destined for a particular destination), thereby affecting how the packets are switched by the switching element or other devices of the network. There are various types of exceptions that can cause packets to be trapped within a network switching element, and there are many different operations that may be performed on a trapped packet.
Within an Ethernet switching element, the trapped packets are often communicated to and from the microprocessor via one or more Ethernet buses. Further, the protocol stack within the microprocessor may be configured to handle packets only in accordance with Ethernet protocol. In such cases, the trapped packets must be in conformance with Ethernet protocol to be successfully communicated over the Ethernet bus to the microprocessor. With respect to Ethernet data packets trapped within the switching element, such data packets can simply be forwarded to the microprocessor since the packets are already in conformance with Ethernet protocol.
However, it would be desirable to mark a trapped packet with various information, such as an indication as to the exception reason for trapping the packet, to facilitate processing of the packet by the protocol stack within the microprocessor. However, if such marking changes the data packet such that it is not in compliance with applicable Ethernet protocols, then it is unlikely that the data packet will be successfully received by the protocol stack. To avoid protocol incompatibility problems, a trapped data packet and metadata determined by the front-end circuitry are sometimes encapsulated together into a new Ethernet packet that is transmitted to the microprocessor. Examples of metadata fields, which is information not normally or possibly encoded in the packet header fields, include but are not limited to ingress port number, classified flow number, and exception identifier. Such new Ethernet packet carries the trapped packet and the metadata as payload data. However, the encapsulation may add complexity and increase processing time. In addition, the encapsulation increases the overall size of the packet that is transmitted to the microprocessor, thereby undesirably increasing latency.
The disclosure can be better understood with reference to the following drawings. The elements of the drawings are not necessarily to scale relative to each other, emphasis instead being placed upon clearly illustrating the principles of the disclosure. Furthermore, like reference numerals designate corresponding parts throughout the several views.
The present disclosure generally pertains to systems and methods for embedding metadata in data packets. In one exemplary embodiment, logic is configured to insert metadata into a data packet after the payload data and padding, if any. The logic further adjusts the packet's overhead, such as a frame check sequence, to account for the added length of the packet. The packet remains compliant with applicable protocols and can be successfully communicated in accordance with such protocols while carrying the metadata. In this regard, the insertion of the metadata is transparent to protocol stacks such that the metadata data does not cause an error or the protocol stacks to render the packet invalid. In particular, the protocol stacks view the inserted metadata as part of the packet's pad field, and the inserted metadata should not cause any errors in the operation of the protocol stacks or prevent the protocol stacks from processing the packet.
As shown by
As shown by
The ingress ports 41 are coupled to switching logic 44 that is configured to transmit the data packets to egress ports 49 for transmission from the switching element 33. In this regard, the switching logic 44 associates each data packet with a particular data flow and assigns the packet an identifier, referred to as a “flow identifier,” of the associated data flow. A given data flow may correspond to a particular data service for a particular customer. For example, packets having a source address identifying a particular source or having a destination address identifying a particular destination may be assigned the same flow identifier such that all such packets egress from the same port 49.
As shown by
In some cases, it may be desirable to trap a data packet such that it is directed out of the normal flow from the ingress ports 41 to the egress ports 49. In this regard, the switching logic 44 has access to classification data 55 and classifies each received packet based on such data 55. The classification data 55 indicates which packets have exceptions and, thus, should be trapped by the switching logic 44. As an example, the classification data 55 may indicate that packets having certain attributes, such as packets originating from a particular source or destined for a particular destination, should be trapped. To determine whether a packet has an exception and, thus, should be trapped, the switching logic 44 may compare metadata indicative of the packet's attributes to the classification data 55, as will be described in more detail hereafter.
When the switching logic 44 determines that a packet has an exception, the switching logic 44 traps the data packet by directing it to a processing element 63 that is configured to handle exceptions. In one exemplary embodiment, the processing element 63 comprises a microprocessor having protocol stacks for handling exceptions, but other types of processing elements 63 are possible in other embodiments.
As shown by
The processing element 63 is configured to process each trapped data packet depending on the exception reason for such packet. As an example, the processing element 63 may adjust the contents of a trapped data packet, such as the packet's overhead. In one exemplary embodiment, each packet received by the switching element 33 comprises a data packet of one protocol that is encapsulated in a data packet of another protocol. As an example, an Ethernet data packet received by the element 33 may comprise an Internet Protocol (IP) data packet that has been encapsulated according to Ethernet protocol, such as I.E.E.E. Standard 802.3. In such case the IP packet is the payload of the Ethernet packet. In handling an exception for such a packet, the processing element 63 may be configured to adjust the overhead of the encapsulated IP packet. As a mere example, the processing element 63 may change the destination address of the IP data packet or perform some other action depending on the type of exception detected for the trapped Ethernet packet.
Once the exception has been handled as may be desired, the processing element 63 transmits the trapped packet to the switching logic 44, which is configured to insert the packet back into the flow of packets from the ingress ports 41 to the egress ports 49. Thus, the packet is ultimately received by one of the egress ports 49 and egresses from the switching element 33.
In one exemplary embodiment, the packets handled by the processing element 63 are transmitted to the switching logic 44 via a protocol-specific bus 69, such as an Ethernet bus that allows only packets in accordance with applicable Ethernet protocols to be successfully transmitted. In other embodiments, other types of buses or connections may be used to transmit packets handled by the processing element 63.
The ingress ports 41 are coupled to the parser 71, which is configured to receive data packets from the ingress ports 41. For each data packet, the parser 71 is configured to recover from the packet or otherwise determine metadata that is indicative of attributes of the packet. As an example, metadata may include a port identifier identifying the ingress port 41 from which the packet is received, a flow identifier identifying the packet flow associated with the packet, information from the packet's overhead, such as a source address or destination address, and/or other information indicative of packet attributes. The metadata may be used to process the packet within the switching element 33 such as to make forwarding decisions or to identify exceptions, as will be described in more detail hereafter. Various other operations based on the metadata are possible in other embodiments.
The classifier 72 is coupled to the parser 71 and receives the data packets from the parser 71. For each data packet, the classifier 72 is configured to classify the packet based on the metadata parsed by the parser 71. In this regard, the classifier 72 compares the metadata to classification data 55 stored in memory 82 and assigns the data packet a flow identifier based on such comparison. As an example, the classification data 55 may indicate that packets having a particular source or destination address are to be assigned a particular flow identifier. Based on such classification data 55 and the source or destination address of a received data packet, the classifier 72 may assign the foregoing flow identifier to the received data packet.
After assigning a flow identifier to a data packet, the classifier 72 looks up the flow identifier in the forwarding table 52 to determine a queue identifier identifying the egress queue 76 to which the data packet is to be forwarded. The classifier 72 adds the flow identifier and the queue identifier to the metadata and transmits the data packet, along with its metadata, to a policer 73. Note that the classifier 72 may add other types of data to the metadata. In one exemplary embodiment, each egress queue 76 feeds a single respective egress port 49, although multiple egress queues 76 may feed the same egress port 49. Thus, a queue identifier assigned to a data packet can be viewed as identifying both an egress queue 76 and the egress port 49 that is coupled the identified egress queue 76.
To prevent periods of congestion, the policer 73 is configured to selectively drop packets based on priority to prevent data overruns. The forwarding logic 75 is configured to switch the packets to the appropriate egress queues 76. In this regard, for each data packet, the forwarding logic 75 is configured to transmit the data packet to the queue (e.g., an egress queue 76) identified by the packet's metadata. In one exemplary embodiment, each egress queue 76 feeds a single egress port 49, although multiple egress queues 76 may feed the same egress port 49. Thus, each packet received by the same egress queue 76 is transmitted to and egresses from the same egress port 49. Accordingly, controlling which egress queue 76 receives a given data packet controls which egress port 49 transmits the packet and, hence, controls the packet's path from the switching element 33.
The scheduler 77 determines the order in which data packets are pulled from the egress queues 76, and the shaper 78 determines the timing of when data packets are pulled from the egress queues 76, as is known in the art.
In one exemplary embodiment, the switching logic 44, including each of the components 71-79 of the embodiment shown by
When the classifier 72 compares the metadata of a data packet to the classification data 55, the classifier 72 may determine that the data packet has an exception based on such comparison. In such case, the classifier 72 traps the data packet such that it is directed to the processing element 63. In this regard, rather than associating the data packet with a queue identifier identifying one of the egress queues 76, the classifier 72 associates the packet with a queue identifier identifying the exception queue 79. Based on such queue identifier, the forwarding logic 75 forwards the packet to the exception queue 79 rather than one of the egress queues 76 thereby separating the data packet from the normal flow of packets from the ingress ports 41 to the egress ports 49.
Trapped data packets are transmitted from the exception queue 79 to the processing element 63 via the protocol-specific bus 66, although other types of buses or connections may be used in other embodiments. In one exemplary embodiment, the processing element 63 comprises a microprocessor, although other types of processing elements may be employed in other embodiments.
As shown by
The exception logic 88 is configured to analyze a trapped data packet and to select one the protocol stacks 89 for handling such data packet based on the type of exception detected for the data packet. In this regard, the exception logic 88 analyzes the metadata associated with the data packet by the classifier 72 or otherwise to determine the reason for the exception. Based on the exception type, the exception logic 88 then selects and invokes at least one of the protocol stacks 89 to handle the exception. In one exemplary embodiment, each protocol stack 89 is configured to handle Ethernet packets, but any of the protocol stacks 89 may be configured to handle packets in accordance with other protocols in other embodiments.
In handling a data packet, a protocol stack 89 may adjust the packet, such as adjust overhead information within the packet. Alternatively, a protocol stack 89 may encapsulate the packet with new overhead information (e.g., add a layer of overhead). Various other operations may be performed on the packet depending on the type of exception detected for the packet.
After processing of a data packet, the protocol stack 89 is configured to transmit the data packet via the output port 99 to the parser 71 (
As described above, when the classifier 72 detects an exception for a data packet, the classifier 72 traps the packet by associating it with a queue identifier identifying the exception queue 79. Before transmitting a trapped data packet to the policer 73, the classifier 72 is configured to embed the packet's metadata into the packet in a manner that keeps the packet in conformance with Ethernet protocol (or other protocol in embodiments in which other protocols are employed). Exemplary techniques for so embedding metadata will now be described in detail below.
In this regard,
Following the payload field 115 is an optional pad field 118 that can be used to control the overall length of the packet 110. For example, in one exemplary embodiment, the packet 110 is in accordance with I.E.E.E. Standard 802.3, which places certain size constraints on packets in conformance with the standard, although other protocols may be employed in other embodiments. It is well-known to add pad bytes to the pad field 118 when the size of the packet 110 is not in conformance with applicable Ethernet protocol. As an example, assume that the applicable Ethernet protocol requires a minimum length of 64 bytes, yet the length of the packet 110 before adding a pad field 118 is less than 64 bytes. In such example, pad bytes may be added to the pad field 118 until the overall length of the packet 110 is at least 64 bytes such that the packet 110 is now compliant with the applicable Ethernet protocol. The pad field 118 contains no useful information and can be ignored or discarded when the packet 110 is de-encapsulated.
Following the pad field 118 is a frame check sequence (FCS) 122. The FCS 122 is a sequence of bits that enables verification of the packet 110. For example, in one exemplary embodiment, the FCS 122 is a checksum of the bits in the header 112, the payload field 115, and the pad field 118 prior to transmission of the packet 110 to the switching element 33. Such a checksum may be calculated by exclusively-ORing the bits in the header 112, the payload field 115, and the pad field 118. Thus, according to known techniques, the FCS 122 can be compared to the remainder of the packet 110 by the classifier 72 or other component of the switching element 33 to determine whether the packet 110 contains errors. In other embodiments, other types of frame checking data may be used to implement the FCS 122. Note that, when the packet 110 is transmitted, the header 112 precedes the payload field 115, the payload field 115 precedes the pad field 118, and the pad field precedes the FCS 122, per Ethernet protocol.
When the classifier 72 detects an exception for the data packet 110, the classifier 72 embeds metadata indicative of the exception or otherwise in the packet 110 such that the packet 110 remains compatible with Ethernet protocol. In this regard, the classifier 72 appends metadata 131 to the pad field 118 in order to provide a modified data packet 133, as shown by
Note that there are various techniques that can be used to calculate the FCS 136. For example, the classifier 72 may calculate the FCS 136 based on the replaced FCS 122. In this regard, if the FCS 122 represents a checksum of the remainder of the data packet 110, then the classifier 72 may be configured to combine (e.g., exclusively-OR) the FCS 122 with the metadata 131. Alternatively, the classifier 72 may calculate the FCS 136 anew by combining (e.g., exclusively-ORing) the header 112, the payload field 115, the pad field 118, and the metadata 131. Various other techniques for calculating the FCS 136 are possible in other embodiments.
Except for the addition of the metadata 131 and the replacement of the FCS 122 with the FCS 136, the modified packet 133 is the same as the packet 110. Thus, the header 112, the payload field 115, and the pad field 118 remain unchanged by the insertion of the metadata 131. Further, as indicated above, the modified packet 133 is compliant with Ethernet protocol and can, thus, be successfully transmitted over the protocol-specific bus 66 to the processing element 63.
The exception logic 88 (
Based on the metadata 131, the exception logic 88 determines the reason for the exception that resulted in the packet 133 being directed to the processing element 63. As one example, the metadata 131 may include the same packet attributes, such as destination address, source address, or ingress port identifier, used by the classifier 72 to detect the exception. In another exemplary embodiment, the metadata 131 has an exception identifier that identifies the exception by the classifier 72. Various other types of attributes may be indicated by the metadata 131 in other embodiments. Based on the exception reason, the exception logic 88 selects one of the protocol stacks 89 to handle the exception. The selected protocol stack 89 then processes the packet 133 (e.g., changes the header field 112 or the overhead of the encapsulated packet in the payload field 115) such that the exception is appropriately handled.
In one exemplary embodiment, the protocol stacks 89 are protocol-specific in that they handle packets according to certain protocol or protocols, such as Ethernet protocols. If a given protocol stack 89 receives a packet that is not in conformance with the specific protocol or protocols, then the stack 89 determines that the packet is invalid and refrains from processing the packet as it otherwise would if the packet was in conformance with the specific protocol or protocols. As an example, if a packet is deemed invalid, the protocol stack 89 might discard the packet.
In the instant example, the modified packet 133, is in conformance with Ethernet protocol, and the protocol stack 89 selected to handle the packet 133 does not deem the packet 133 to be invalid. Further, in one exemplary embodiment, the protocol stacks 89 are not aware that the metadata 131 has been inserted into the packet 133. In this regard, the protocol stack 89 selected to handle the packet 133 is configured to find the payload field 115 based on information in the header 112 and view all information between the payload field 115 and the FCS 136 as padding. Thus, the insertion of the metadata 131 between the payload field 115 and the FCS 136 does not cause any errors in operation of the protocol stack 89 even if the protocol stack 89 is unaware of insertion of the metadata 131. Thus, conventional protocol stacks that have not been specifically configured to recognize the metadata 131 may be used to implement any of the protocol stacks 89 depicted by
Once the modified packet 133 is processed by the processing element 63, the packet 133 is transmitted to the parser 71 (
However, before transmitting the packet 133 to the policer 73, the classifier 72 is configured to strip the metadata 131 from the packet 133, thereby providing a modified packet 163 that is missing the metadata 131, as shown by
Note that there are various techniques that can be used to calculate the FCS 167. For example, the classifier 72 may calculate the FCS 167 based on the replaced FCS 136. In this regard, if the FCS 136 represents a checksum of the remainder of the data packet 133, then the classifier 72 may be configured to combine (e.g., exclusively-OR) the FCS 136 with the metadata 131. Alternatively, the classifier 72 may calculate the FCS 167 anew by combining (e.g., exclusively-ORing) the header 112, the payload field 115, and the pad field 118. Various other techniques for calculating the FCS 167 are possible in other embodiments.
Except for the stripping of the metadata 131 and the replacement of the FCS 136 with the FCS 167, the modified packet 163 is the same as the packet 133. Thus, the header 112, the payload field 115, and the pad field 118 remain unchanged by the stripping of the metadata 131. Further, the modified packet 163 is compliant with Ethernet protocols. In this regard, the stripping of the metadata 131 reduces overall packet length relative to the packet 133 but does not cause the packet 163 to violate Ethernet protocols. In this regard, if the packet 110 originally received by the switching element 33 is Ethernet compliant and, hence, satisfies byte length requirements of applicable Ethernet protocols, then the length of the packet 163, which should be no shorter than the packet 110 from which it is derived, should also satisfy such byte length requirements.
An exemplary operation and use of the switching element 33 in detecting and handling an exception will now be described below with particular reference to
For illustrative purposes, assume that the switching element 33 is configured to switch Ethernet data packets, as described above. Further, assume that the switching element 33 is configured to detect an exception for data packets that have a particular destination address, referred to hereafter as the “Exception Address.” Also assume that, for such exception, a protocol stack 89 is to be selected that changes the destination address of the IP packet encapsulated within such packet to a particular address, referred to hereafter as the “Modified Address.”
Now assume that an ingress port 41 of the switching element 33 receives an Ethernet packet 110 having a header 112 (
However, in the instant example, the received data packet 110 has an exception since its destination address in the header 112 matches the Exception Address. Thus, the classifier 72 appends, to the pad field 118, metadata 131 indicative of at least one packet attribute thereby providing a modified packet 133, as shown by block 225 of
Eventually, the modified packet 133 passes through the exception queue 79 and is transmitted via the protocol-specific bus 66 to the processing element 63. The exception logic 88 of the processing element 63 finds the metadata 131 within the packet 133 and selects one of the protocol stacks 89 to process the packet 133 based on the metadata 131, as shown by block 235 of
In the instant example, the selected protocol stack 89 finds the IP packet carried within the payload field 115 and replaces the IP destination address within the overhead of this packet with the Modified Address. The modified packet 133 is then transmitted to the parser 71 via the protocol-specific bus 69, and the process shown by
Since the modified packet 133 is received from the processing element 63, the classifier 72 determines that the packet 133 does not have an exception. In addition, since the modified packet 133 is received from the processing element 63, the classifier 72 is aware that the packet 133 has metadata 131 embedded within it. Thus, the classifier 72 strips the metadata 131 from the packet 113, as shown by block 252 of
As shown by block 221 of
Accordingly, the switching element 33 is configured to embed metadata 131 in packets for which exceptions are detected. The metadata 131 is embedded in such a way that the packets remain compliant with applicable protocol requirements and the packets are not rendered invalid by the protocol stacks 89 that are selected to handle the packets. Further, after the packets are handled by the processing element 63, the metadata 131 is stripped from the packets in an effort to reduce the packet length and, hence, transmission burdens. In one exemplary embodiment, the packets are encapsulated in accordance with Ethernet protocols and remain compliant with such protocols. However, it should be emphasized that Ethernet protocols are described herein for illustrative purposes, and other types of protocols may be employed in other embodiments, if data inserted after the payload field does not cause a violation in the protocol integrity.
Kelly, Jamie S., Sudduth, John, Gieger, Darrin
Patent | Priority | Assignee | Title |
10015054, | Jun 07 2013 | Hewlett Packard Enterprise Development LP | Packet forwarding |
10091099, | May 31 2016 | 128 TECHNOLOGY, INC | Session continuity in the presence of network address translation |
10257061, | May 31 2016 | 128 TECHNOLOGY, INC | Detecting source network address translation in a communication system |
10841206, | May 31 2016 | 128 TECHNOLOGY, INC | Flow modification including shared context |
11075836, | May 31 2016 | 128 TECHNOLOGY, INC | Reverse forwarding information base enforcement |
11722405, | May 31 2016 | 128 Technology, Inc. | Reverse forwarding information base enforcement |
9503552, | May 09 2014 | GOOGLE LLC | System and method for adapting to network protocol updates |
ER348, |
Patent | Priority | Assignee | Title |
5909574, | Dec 23 1997 | RPX CLEARINGHOUSE LLC | Computing system with exception handler and method of handling exceptions in a computing system |
6668022, | Aug 12 1999 | LG-ERICSSON CO , LTD | Method and apparatus for modification of channel in digital TV translator |
7263609, | Apr 29 2003 | Cisco Technology, Inc. | Method and apparatus for packet quarantine processing over a secure connection |
7441268, | Jun 08 2004 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Method and apparatus to manage exceptions in network processors |
8107370, | Apr 06 2005 | Cisco Technology, Inc. | Network access device with restricted and unrestricted input ports |
20060075130, | |||
20060088060, | |||
20060215653, | |||
20070091901, | |||
20070106827, | |||
20080310352, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 07 2010 | KELLY, JAMIE S | ADTRAN, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029705 | /0593 | |
Jun 09 2010 | SUDDUTH, JOHN | ADTRAN, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029705 | /0593 | |
Jun 14 2010 | GIEGER, DARRIN | ADTRAN, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029705 | /0593 | |
Jun 17 2010 | Adtran, Inc. | (assignment on the face of the patent) | / | |||
Jul 18 2022 | ADTRAN, INC | WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 060692 | /0249 |
Date | Maintenance Fee Events |
Oct 23 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 22 2021 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 22 2017 | 4 years fee payment window open |
Oct 22 2017 | 6 months grace period start (w surcharge) |
Apr 22 2018 | patent expiry (for year 4) |
Apr 22 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 22 2021 | 8 years fee payment window open |
Oct 22 2021 | 6 months grace period start (w surcharge) |
Apr 22 2022 | patent expiry (for year 8) |
Apr 22 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 22 2025 | 12 years fee payment window open |
Oct 22 2025 | 6 months grace period start (w surcharge) |
Apr 22 2026 | patent expiry (for year 12) |
Apr 22 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |