IP Library Granted Patent US 9,160,677
Granted Patent B2
US 9,160,677 · App. 14/325,872 · Granted Oct 13, 2015

Segmentation of network packets for a switch fabric

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,160,677
App. No.
14/325,872
Granted
Oct 13, 2015
Kind
B2
Abstract

A network packet is segmented for transfer through a switch fabric. The last segment of the packet is allowed to exceed the maximum size of previous segments so as to increase the switch fabric utilization. Other features are also provided.

Claims (50)

1. A method of processing network packets, the method comprising:

receiving a packet on a port of a network switching device;

segmenting the packet into one or more first segments each having a first segment size and a second segment having a second segment size at least when a length of the packet is greater than the second segment size, wherein the segmenting operation allows the second segment size to exceed the first segment size by up to an overflow amount when doing so will allow the second segment to be a last segment in the packet;

outputting the first segment to a switch fabric during a first epoch; and

outputting the second segment to the switch fabric during a second epoch different from the first epoch.

2. The method of claim 1 , further comprising delaying outputting of the second segment to the switch fabric until it is determined whether the second segment can be made the last segment of a size exceeding the first segment size by up to the overflow amount.

3. The method of claim 1 wherein each segment of the first and second segments is accompanied by a length parameter indicating:

the segment's length if the segment is not at a start of the packet;

the packet's size if the segment is at the start of the packet.

4. A method of processing network packets, the method comprising:

receiving packets on at least some of ports of a network processing device;

processing the packets; and

transmitting at least some of the packets on at least some of the ports of the network processing device;

wherein processing the packets comprises, for at least some packets that are to be transmitted, transferring the packets through a switch fabric of the network processing device to deliver the packets to one or more ports on which the packets are to be transmitted;

wherein the switch fabric operates in epochs, each epoch corresponding to an interconnection between the switch fabric's inputs and the switch fabric's outputs;

wherein processing the packets comprises, for at least some packets transferred through the switch fabric, segmenting at least those packets that exceed a predefined maximum segment size into one or more segments, wherein each segment that is not the last segment is at most a predefined first segment size smaller than the maximum segment size, but the last segment of at least one packet is of a size exceeding the first segment size but not the maximum segment size;

wherein the switch fabric is operable to receive segments of different packets for each epoch;

wherein for at least one segmented packet, each segment is provided to the switch fabric in a single epoch, but at least two segments of the packet are provided to the switch fabric in respective different epochs.

5. The method of claim 4 wherein each segment of a segmented packet is created by buffering the packet's data for the segment and tracking a length of data being buffered to determine if the segment being created can be made the last segment of the packet, the length of data being buffered being allowed to reach the maximum segment size, but if the length of data being buffered exceeds the first segment size and the segment cannot be made the last segment of the packet then the segment is defined to have the first segment size.

6. The method of claim 4 wherein each segment of each segmented packet provided to the switch fabric is accompanied by a length parameter indicating:

the segment's length if the segment is not the first segment of the packet;

the packet's size if the segment is the first segment of the packet.

7. The method of claim 6 wherein each segment that is not the last segment has the first segment size.

8. The method of claim 6 wherein the length parameter is part of a segment header provided to the switch fabric with the segment, and the length parameter is augmented by a length of the header.

9. A network processing device comprising:

a plurality of ports for receiving and transmitting packets; and

a processing module for processing of packets received on the ports;

wherein the processing module comprises a switch fabric for transferring the packets to one or more ports on which the packets are to be transmitted;

wherein the processing module is configured to operate the switch fabric in epochs, wherein for each epoch the processing module is to interconnect the switch fabric's inputs and outputs in a configuration corresponding to the epoch, and the processing module comprises a scheduler for determining the configuration for each epoch;

wherein the processing module comprises segmenting logic for segmenting a packet to be transferred by the switch fabric into a plurality of segments if the packet exceeds a predefined maximum segment size, each segment other than the last segment being at most a predefined first segment size smaller than the maximum segment size, the last segment being allowed to exceed the first segment size but not the maximum segment size;

wherein the processing module comprises a manager for selecting packets or packet segments for providing to the switch fabric for each epoch, the switch fabric being operable to receive segments of different packets for each epoch, and to receive different segments of a packet in respective different epochs.

10. The network processing device of claim 9 wherein the segmenting logic is configured to create segments of a packet by buffering the packet's data for the segment and tracking a length of data being buffered to determine if the segment being created can be made the last segment of the packet, the length of data being buffered being allowed to reach the maximum segment size, but if the length of data being buffered exceeds the first segment size and the segment cannot be made the last segment of the packet then the segment is defined to have the first segment size.

11. The network processing device of claim 9 wherein the processing module comprises a plurality of line cards each of which comprises one or more of the ports on which packets can be received, and the manager comprises a separate manager in each line card for selecting packets or packet segments received at the line card for transfer by the switch fabric.

12. The network processing device of claim 9 wherein the manager is configured to provide, to the switch fabric, each segment with a length parameter indicating:

the segment's length if the segment is not the first segment of the packet;

the packet's size if the segment is the first segment of the packet.

13. The network processing device of claim 12 wherein each segment that is not the last segment has the first segment size.

14. The network processing device of claim 12 wherein the length parameter is part of a segment header to be provided to the switch fabric with the segment, and the length parameter is augmented by a length of the header.

15. A line card for use in a network processing device, the line card comprising:

a plurality of ports;

a PHY device for receiving packets on one or more of the ports;

an ingress traffic manager for obtaining at least some of the packets received by the PHY device and segmenting at least some of the packets that exceed a predefined maximum segment size into multiple segments such that each segment that is not the last segment of a packet has a predefined first segment size smaller than the maximum segment size;

an interface for connection to a switch fabric configured for transferring at least packets segmented by the ingress traffic manager to one or more ports of the network processing device on which the packets are to be transmitted by the network processing device;

wherein for each epoch for which the switch fabric's inputs and outputs are interconnected in a configuration corresponding to the epoch, the ingress traffic manager is operable to provide to the switch fabric, for the epoch, a plurality of segments of different packets for transfer by the switch fabric if the ingress traffic manager has obtained such segments.

16. The line card of claim 15 wherein the ingress traffic manager is configured to create segments of a packet by buffering the packet's data for the segment and tracking a length of data being buffered to determine if the segment being created can be made the last segment of the packet, the length of data being buffered being allowed to reach the maximum segment size, but if the length of data being buffered exceeds the first segment size and the segment cannot be made the last segment of the packet then the segment is defined to have the first segment size.

17. The line card of claim 15 wherein the ingress traffic manager is to provide, to the switch fabric, each segment with a length parameter indicating:

the segment's length if the segment is not the first segment of the packet;

the packet's size if the segment is the first segment of the packet.

18. The line card of claim 17 wherein each segment that is not the last segment has the first segment size.

19. The line card of claim 17 wherein the length parameter is part of a segment header to be provided to the switch fabric with the segment, and the length parameter is augmented by a length of the header.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
MERGER Recorded Mar 4, 2021
From: FORCE10 NETWORKS, INC.
To: DELL MARKETING CORPORATION
Reel/Frame 056104/0988 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2015
From: POOLE, GLENN; DANOFSKY, BRAD; HADDAD, DAVID; GUI, ANN; CHUNG, HEELOO; LIN, JOANNA
To: FORCE10 NETWORKS, INC.
Reel/Frame 036271/0080 →