Abstract:
One aspect of the invention relates to a network interface system (2) for interfacing a host system with a network (8). The network interface system (2) includes a bus interface system (4), a media access control system (10), and a security system (14). The security system (14) selectively perform security processing on data incoming from the network (8) based on security associations stored in a memory external to the network interface system (2), typically a host system memory (128). The security association for any given frame, when available, is fetched from the external memory (128) after the frame begins to arrive in the network interface system (2) based in part on information contained in the frame. Preferably, the fetch begins before the frame is fully received and the security association is queued whereby security processing can begin without having to wait for the security association to be fetched.
Abstract:
The invention relates to a network interface system (2) for interfacing a host system (6) with a network (8). The network interface system (2) includes a bus interface system (6), a media access control system (10), and a security system (14). The network interface (2) offloads IPsec processing from the host system (6). According to the invention, the security system (14) includes two processors (20, 2l.) for encrypting the outgoing data. Outgoing data packets are sent alternately to one or the other processor (20, 21), whereby transmission processing can be accelerated relative to receive processing.
Abstract:
A data structure to provide high performance in the transmit portion of an ethernet controller (14). The data structure includes the data to be transmitted (58, 60, 76, 82), the STATUS information (62, 84) of the data to be transmitted, and the DESCRIPTOR information (64, 86) of the data to be transmitted. The data is organized in 8-bit bytes in 32-bit rows, the 32-bit STATUS information is organized in four 8-bit bytes in a 32-bit row, and the 32-bit DESCRIPTOR information is organized in four 8-bit bytes in a 32-bit row. A one-bit tag field (66, 72) is associated with each of the rows and a 1 in the tag field indicates that the end-of-packet is located in the row associated with that tag. The lower four bits of a STATUS byte contains information indicating which byte in the row contains the end-of-packet.
Abstract:
A register arrangement that enables a host CPU to optimize its accesses to registers in a network interface in order to reduce the impact of such accesses on the CPU performance. Registers that must frequently be read by the CPU are combined into a first group and assigned with consecutive addresses corresponding to one end of the register address range. Registers that must frequently be written by the CPU are grouped into a second group and assigned with consecutive addresses corresponding to the opposite end of the register address range. Registers that must frequently be both read and written by the CPU are combined into a third group and assigned with consecutive addresses between the addresses of the first group and addresses of the second group.
Abstract:
A register arrangement that enables a host CPU to optimize its accesses to registers in a network interface in order to reduce the impact of such accesses on the CPU performance. Registers that must frequently be read by the CPU are combined into a first group and assigned with consecutive addresses corresponding to one end of the register address range. Registers that must frequently be written by the CPU are grouped into a second group and assigned with consecutive addresses corresponding to the opposite end of the register address range. Registers that must frequently be both read and written by the CPU are combined into a third group and assigned with consecutive addresses between the addresses of the first group and addresses of the second group.
Abstract:
A data structure to provide high performance in the transmit portion of an ethernet controller (14). The data structure includes the data to be transmitted (58, 60, 76, 82), the STATUS information (62, 84) of the data to be transmitted, and the DESCRIPTOR information (64, 86) of the data to be transmitted. The data is organized in 8-bit bytes in 32-bit rows, the 32-bit STATUS information is organized in four 8-bit bytes in a 32-bit row, and the 32-bit DESCRIPTOR information is organized in four 8-bit bytes in a 32-bit row. A one-bit tag field (66, 72) is associated with each of the rows and a 1 in the tag field indicates that the end-of-packet is located in the row associated with that tag. The lower four bits of a STATUS byte contains information indicating which byte in the row contains the end-of-packet.
Abstract:
A data structure to provide high performance in the transmit portion of an ethernet controller (14). The data structure includes the data to be transmitted (58, 60, 76, 82), the STATUS information (62, 84) of the data to be transmitted, and the DESCRIPTOR information (64, 86) of the data to be transmitted. The data is organized in 8-bit bytes in 32-bit rows, the 32-bit STATUS information is organized in four 8-bit bytes in a 32-bit row, and the 32-bit DESCRIPTOR information is organized in four 8-bit bytes in a 32-bit row. A one-bit tag field (66, 72) is associated with each of the rows and a 1 in the tag field indicates that the end-of-packet is located in the row associated with that tag. The lower four bits of a STATUS byte contains information indicating which byte in the row contains the end-of-packet.