# US 8,543,890 B2 · Supporting global input/output interconnect features on ports of a midpoint device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,890 B2
- Document ID: US8543890B2
- Status: Granted
- Kind: B2
- Application number: 13/457,275
- Filed: 2012-04-26
- Published: 2012-08-23
- Granted: 2013-09-24
- Earliest claimed: 2009-10-23
- Assignees: PLX Technology, Inc.
- Applicants: Jeffrey Michael Dodson
- Inventors: Jeffrey Michael Dodson
- Web page: https://patentgrep.com/patent/US8543890B2

## CPC

- H03M 13/09: Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In a first embodiment of the present invention, a method for operating a midpoint device utilizing an Input/Output (I/O) interconnect is provided, wherein the midpoint device contains a plurality of ports, the method comprising: receiving a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device; retrieving information regarding whether the first port supports a feature, and information regarding whether the second port supports the feature; and when the first port supports the feature and the second port does not support the feature, permitting the session to be initiated, such that communications between the first device and the second device are performed partially using the feature, independently of support of the feature on other ports.

## Claims

### Claim 1

A method for providing per-port maximum packet payload sizes in an Input/Output (I/O) interconnect having a midpoint device, wherein the midpoint device has a plurality of ports, the method comprising:
receiving a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device;
retrieving a maximum payload size for the device on the first port by accessing a first entry in a data structure, the first entry corresponding to the first port;
retrieving a maximum payload size for the device on the second port by accessing a second entry in the data structure, the second entry corresponding to the second port; and
establishing a session between the device on the first port and the device on the second port, using the maximum payload size for the device on the first port and the maximum payload size for the device on the second port, independently of support of the maximum payload size on other ports;
wherein the establishing a session includes:
calculating a greatest common factor between the maximum payload size for the device on the first port, the maximum payload size for the device on the second port, and the maximum payload size for the midpoint device; and
setting a maximum payload size for the session at the greatest common factor between the maximum payload size for the device on the first port, the maximum payload size for the device on the second port, and the maximum payload size of the midpoint device.

### Claim 2

A method for providing per-port maximum packet payload sizes in an Input/Output (I/O) interconnect having a midpoint device, wherein the midpoint device has a plurality of ports, the method comprising:
receiving a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device;
retrieving a maximum payload size for the device on the first port by accessing a first entry in a data structure, the first entry corresponding to the first port;
retrieving a maximum payload size for the device on the second port by accessing a second entry in the data structure, the second entry corresponding to the second port; and
establishing a session between the device on the first port and the device on the second port, using the maximum payload size for the device on the first port and the maximum payload size for the device on the second port, independently of support of the maximum payload size on other ports;
when the maximum payload size for the device on the first port is greater than the maximum payload size for the device on the second port and a packet is received at the midpoint device from the first port during the first session:
splitting the packet into a plurality of smaller packets, each of the plurality of smaller packets having a maximum payload size equal to the maximum payload size of the device on the second port.

### Claim 3

A method for providing per-port maximum packet payload sizes in an Input/Output (I/O) interconnect having a midpoint device, wherein the midpoint device has a plurality of ports, the method comprising:
receiving a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device;
retrieving a maximum payload size for the device on the first port by accessing a first entry in a data structure, the first entry corresponding to the first port;
retrieving a maximum payload size for the device on the second port by accessing a second entry in the data structure, the second entry corresponding to the second port; and
establishing a session between the device on the first port and the device on the second port, using the maximum payload size for the device on the first port and the maximum payload size for the device on the second port, independently of support of the maximum payload size on other ports;
when the maximum payload size for the device on the second port is greater than the maximum payload size for the device on the first port and a packet is received at the midpoint device from the second port during the second session:
splitting the packet into a plurality of smaller packets, each of the plurality of smaller packets having a maximum payload size equal to the maximum payload size of the device on the first port.

### Claim 4

An apparatus for providing per-port maximum packet payload sizes in an Input/Output (I/O) interconnect having a midpoint device, wherein the midpoint device has a plurality of ports, the apparatus comprising:
means for receiving a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device;
means for retrieving a maximum payload size for the device on the first port by accessing a first entry in a data structure, the second entry corresponding to the first port;
means for retrieving a maximum payload size for the device on the second port by accessing a second entry in the data structure, the second entry corresponding to the second port; and
means for establishing a session between the device on the first port and the device on the second port, using the maximum payload size for the device on the first port and the maximum payload size for the device on the second port, wherein the establishing a session includes:
calculating a greatest common factor between the maximum payload size for the device on the first port, the maximum payload size for the device on the second port, and the maximum payload size for the midpoint device; and
setting a maximum payload size for the session at the greatest common factor between the maximum payload size for the device on the first port, the maximum payload size for the device on the second port, and the maximum payload size of the midpoint device.

### Claim 5

An apparatus for providing per-port maximum packet payload sizes in an Input/Output (I/O) interconnect having a midpoint device, wherein the midpoint device has a plurality of ports, the apparatus comprising:
means for receiving a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device;
means for retrieving a maximum payload size for the device on the first port by accessing a first entry in a data structure, the second entry corresponding to the first port;
means for retrieving a maximum payload size for the device on the second port by accessing a second entry in the data structure, the second entry corresponding to the second port; and
means for establishing a session between the device on the first port and the device on the second port, using the maximum payload size for the device on the first port and the maximum payload size for the device on the second port,
when the maximum payload size for the device on the second port is greater than the maximum payload size for the device on the first port and a packet is received at the midpoint device from the second port during the second session:
splitting the packet into a plurality of smaller packets, each of the plurality of smaller packets having a maximum payload size equal to the maximum payload size of the device on the first port.

### Claim 6

An apparatus for providing per-port maximum packet payload sizes in an Input/Output (I/O) interconnect having a midpoint device, wherein the midpoint device has a plurality of ports, the apparatus comprising:
means for receiving a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device;
means for retrieving a maximum payload size for the device on the first port by accessing a first entry in a data structure, the second entry corresponding to the first port;
means for retrieving a maximum payload size for the device on the second port by accessing a second entry in the data structure, the second entry corresponding to the second port; and
means for establishing a session between the device on the first port and the device on the second port, using the maximum payload size for the device on the first port and the maximum payload size for the device on the second port,
when the maximum payload size for the device on the first port is greater than the maximum payload size for the device on the second port and a packet is received at the midpoint device from the first port during the first session:
splitting the packet into a plurality of smaller packets, each of the plurality of smaller packets having a maximum payload size equal to the maximum payload size of the device on the second port.

### Claim 7

An apparatus for providing per-port maximum packet payload sizes in an Input/Output (I/O) interconnect having a midpoint device, wherein the midpoint device has a plurality of ports, the apparatus comprising:
a memory storing a data structure, wherein the data structure includes entries for each of the ports, wherein each entry includes information regarding whether the corresponding port supports a feature; and
a processor configured to:
receive a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device;
retrieve a maximum payload size for the device on the first port by accessing a first entry in a data structure, the first entry corresponding to the first port;
retrieve a maximum payload size for the device on the second port by accessing a second entry in the data structure, the second entry corresponding to the second port; and
establish a session between the device on the first port and the device on the second port, using the maximum payload size for the device on the first port and the maximum payload size for the device on the second port, independently of support of the maximum payload size on other ports;
wherein the establishing a session includes:
calculating a greatest common factor between the maximum payload size for the device on the first port, the maximum payload size for the device on the second port, and the maximum payload size for the midpoint device; and
setting a maximum payload size for the session at the greatest common factor between the maximum payload size for the device on the first port, the maximum payload size for the device on the second port, and the maximum payload size of the midpoint device.

### Claim 8

An apparatus for providing per-port maximum packet payload sizes in an Input/Output (I/O) interconnect having a midpoint device, wherein the midpoint device has a plurality of ports, the apparatus comprising:
a memory storing a data structure, wherein the data structure includes entries for each of the ports, wherein each entry includes information regarding whether the corresponding port supports a feature; and
a processor configured to:
receive a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device;
retrieve a maximum payload size for the device on the first port by accessing a first entry in a data structure, the first entry corresponding to the first port;
retrieve a maximum payload size for the device on the second port by accessing a second entry in the data structure, the second entry corresponding to the second port; and
establish a session between the device on the first port and the device on the second port, using the maximum payload size for the device on the first port and the maximum payload size for the device on the second port, independently of support of the maximum payload size on other ports;
when the maximum payload size for the device on the first port is greater than the maximum payload size for the device on the second port and a packet is received at the midpoint device from the first port during the first session:
splitting the packet into a plurality of smaller packets, each of the plurality of smaller packets having a maximum payload size equal to the maximum payload size of the device on the second port.

### Claim 9

An apparatus for providing per-port maximum packet payload sizes in an Input/Output (I/O) interconnect having a midpoint device, wherein the midpoint device has a plurality of ports, the apparatus comprising:
a memory storing a data structure, wherein the data structure includes entries for each of the ports, wherein each entry includes information regarding whether the corresponding port supports a feature; and
a processor configured to:
receive a request to initiate a session between a device on a first port of the midpoint device and a device on a second port of the midpoint device;
retrieve a maximum payload size for the device on the first port by accessing a first entry in a data structure, the first entry corresponding to the first port;
retrieve a maximum payload size for the device on the second port by accessing a second entry in the data structure, the second entry corresponding to the second port; and
establish a session between the device on the first port and the device on the second port, using the maximum payload size for the device on the first port and the maximum payload size for the device on the second port, independently of support of the maximum payload size on other ports;
when the maximum payload size for the device on the second port is greater than the maximum payload size for the device on the first port and a packet is received at the midpoint device from the second port during the second session:
splitting the packet into a plurality of smaller packets, each of the plurality of smaller packets having a maximum payload size equal to the maximum payload size of the device on the first port.
