US 11,671,281 B1
Handling interface clock rate mismatches between network devices
Kapil Vishwas Shrikhande, Berkeley, CA (US); William Brad Matthews, San Jose, CA (US); and Meg Pei Lin, Saratoga, CA (US)
Assigned to Innovium, Inc., San Jose, CA (US)
Filed by Innovium, Inc., San Jose, CA (US)
Filed on Apr. 6, 2021, as Appl. No. 17/224,081.
Int. Cl. H04L 12/46 (2006.01); H04L 69/324 (2022.01); H04L 43/0852 (2022.01); H04L 47/36 (2022.01)
CPC H04L 12/4633 (2013.01) [H04L 43/0852 (2013.01); H04L 47/365 (2013.01); H04L 69/324 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A network apparatus comprising:
a media access control (MAC) processing layer configured to receive data units, encapsulate the data units in frames, and transmit the frames with at least interpacket gaps inserted therebetween, the media access control processing layer comprising:
an idle inserter, implemented at least partially in hardware, configured to select sizes for the interpacket gaps based upon a target gap size, the idle inserter is configured to select the sizes for the interpacket gaps based upon the target gap size by using a deficit idle count;
wherein, for each interpacket gap, the idle inserter is configured to:
increment the deficit idle count by the target gap size;
select a gap size for the interpacket gap that is a highest multiple of a fixed block size and lower than the deficit idle count; and
subtract the selected gap size from the deficit idle count;
wherein an idle reducer is configured to reduce the sizes of the interpacket gaps that are greater than a certain size; and
the idle reducer, implemented at least partially in hardware, configured to reduce the sizes of particular interpacket gaps of the interpacket gaps to increase a transmission bandwidth for the data unit.
 
10. A network apparatus comprising:
a network interface configured to receive data units and transmit the data units with at least interpacket gaps inserted therebetween, the network interface including:
an idle inserter, implemented at least partially in hardware, configured to insert the interpacket gaps before or after the data units, the idle inserter is configured to select sizes for the interpacket gaps based upon a target gap size by using a deficit idle count;
wherein, for each interpacket gap, the idle inserter is configured to:
increment the deficit idle count by the target gap size;
select a gap size for the interpacket gap that is highest multiple of a fixed block size and lower than the deficit idle count; and
subtract the selected gap size from the deficit idle count;
wherein an idle reducer is configured to reduce the sizes of the interpacket gaps that are greater than a certain size; and
the idle reducer, implemented at least partially in hardware, configured to reduce the sizes of particular interpacket gaps of the interpacket gaps;
a metric monitor, implemented at least partially in hardware, configured to monitor one or more metrics associated with a state of the network apparatus; and
a rate compensator, implemented at least partially in hardware, configured to instruct the idle reducer to reduce a size of one of the particular interpacket gaps responsive to the one or more metrics meeting a certain threshold.