IP Library Granted Patent US 9,298,658
Granted Patent B2
US 9,298,658 · App. 13/777,063 · Granted Mar 29, 2016

Using PCI-E extended configuration space to send IOCTLS to a PCI-E adapter

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,298,658
App. No.
13/777,063
Granted
Mar 29, 2016
Kind
B2
Abstract

An adapter includes a network interface module configured to interface the adapter to a network and a Peripheral Component Interconnect Express (PCIe) interface module configured to interface the adapter to a PCIe bus. The PCIe interface module comprises registers in PCIe extended configuration space. The registers are configured to receive ioctls from the PCIe bus. The adapter also includes an ioctl processing module configured to receive the ioctls from the registers, to perform the ioctls, and to provide results of the ioctls to the registers for provision by the registers to the PCIe bus. The ioctls comprise commands that relate to transceiving of frames by the adapter on the network. The network interface may be Ethernet, Fiber Channel, Infiniband, etc. Examples of the ioctls include retrieving operation or error statistics, setting virtual channel tag and priorities, and setting a protocol address associated with a port of the adapter.

Claims (39)

1. An adapter, comprising:

a hardware-based network interface module, configured to interface the adapter to a network;

a hardware-based Peripheral Component Interconnect Express (PCIe) interface module, configured to interface the adapter to a PCIe bus, wherein the PCIe interface module comprises registers in PCIe extended configuration space, wherein the registers are configured to receive ioctls from the PCIe bus; and

a hardware-based ioctl processing module, configured to receive the ioctls from the registers, to perform the ioctls, and to provide results of the ioctls to the registers for provision by the registers to the PCIe bus;

wherein:

the ioctls comprise commands that relate to transceiving of frames by the adapter on the network; and

the ioctls are sent directly from a program of a user space in a system comprising the adapter, bypassing a device driver that drives the adapter, where an operating system running on the system comprises the device driver.

2. The adapter of claim 1 , wherein at least one of the ioctls requests the adapter to provide statistics about the frames transceived by the adapter on the network.

3. The adapter of claim 1 , wherein the ioctl requests the adapter to set a virtual network tag and priority of the frames transceived by the adapter on the network.

4. The adapter of claim 1 , wherein the ioctl requests the adapter to set a protocol address associated with a port of the adapter configured to couple to the network.

5. The adapter of claim 1 , wherein the network comprises an Ethernet network.

6. The adapter of claim 1 , wherein the network comprises a Fibre Channel fabric.

7. The adapter of claim 1 , wherein the network comprises an Infiniband fabric.

8. A hardware-based module of an adapter, the module comprising:

a first portion of the module, configured to receive ioctls via Peripheral Component Interconnect Express (PCIe) extended configuration space; and

a second portion of the module, configured to provide results of the ioctls via the PCIe extended configuration space;

wherein:

the ioctls comprise commands that relate to transceiving of frames by the adapter on a network to which the adapter is coupled; and

the ioctls are sent directly from a program of a user space in a system comprising the adapter, bypassing a device driver that drives the adapter, where an operating system running on the system comprises the device driver.

9. The module of claim 8 , wherein at least one of the ioctls requests the adapter to provide statistics about the frames transceived by the adapter on the network.

10. The module of claim 8 , wherein the ioctl requests the adapter to set a virtual network tag and priority of the frames transceived by the adapter on the network.

11. The module of claim 8 , wherein the ioctl requests the adapter to set a protocol address associated with a port of the adapter configured to couple to the network.

12. The module of claim 8 , wherein the network comprises an Ethernet network.

13. The module of claim 8 , wherein the network comprises a Fibre Channel fabric.

14. The module of claim 8 , wherein the network comprises an Infiniband fabric.

15. A method, comprising:

sending, by a program of a user space in a system comprising a Peripheral Component Interconnect Express (PCIe) adapter, an ioctl;

receiving, by the PCIe adapter, the ioctl via PCIe extended configuration space; and

providing, by the PCIe adapter, a result of the ioctl via the PCIe extended configuration space;

wherein:

the ioctl comprises a command that relates to transceiving of frames by the adapter on a network to which the adapter is coupled; and

the ioctl is sent directly from the program of the user space, bypassing a device driver that drives the adapter, where an operating system running on the system comprises the device driver.

16. The method of claim 15 , further comprising:

writing, by a program, the ioctl to registers of the PCIe extended configuration space, prior to said receiving;

wherein the program executes in user space, rather than kernel space, of a computer system that includes the PCIe adapter.

17. The method of claim 16 , wherein said writing the ioctl to registers of the PCIe extended configuration space is performed without invoking a device driver of an operating system running on the computer system.

18. The method of claim 15 , wherein at least one of the ioctls requests the adapter to provide statistics about the frames transceived by the adapter on the network.

19. The method of claim 15 , wherein the ioctl requests the adapter to set a virtual network tag and priority of the frames transceived by the adapter on the network.

20. The method of claim 15 , wherein the ioctl requests the adapter to set a protocol address associated with a port of the adapter configured to couple to the network.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2015
From: EMULEX CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 036942/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: EMULEX DESIGN AND MANUFACTURING CORPORATION
To: EMULEX CORPORATION
Reel/Frame 032087/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2013
From: KALLICKAL, JAYAMOHAN
To: EMULEX DESIGN AND MANUFACTURING CORP.
Reel/Frame 029876/0034 →