# US 2010/0169501 A1 · Massage communication techniques

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

- Number: US 2010/0169501 A1
- Document ID: US20100169501A1
- Status: Published application
- Kind: A1
- Application number: 12/319,099
- Filed: 2008-12-30
- Published: 2010-07-01
- Earliest claimed: 2008-12-30
- Assignees: Intel Corporation
- Inventors: Steven King; Ram Huggahalli; Xia Zhu; Mazhar Memon; Frank Berry; Nitin Bhardwaj; Amit Kumar; Theodore Willke, II
- Web page: https://patentgrep.com/patent/US20100169501A1

## CPC

- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- H04L 9/40: Network security protocols
- H04L 51/066: Format adaptation, e.g. format conversion or compression
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A network protocol unit interface is described that uses a message engine to transfer contents of received network protocol units in message segments to a destination message engine. The network protocol unit interface uses a message engine to receive messages whose content is to be transmitted in network protocol units. A message engine transmits message segments to a destination message engine without the message engine transmitter and receiver sharing memory space. In addition, the transmitter message engine can transmit message segments to a receiver message engine by use of a virtual address associated with the receiver message and a queue identifier, as opposed to a memory address.

## Claims

### Claim 1

A method comprising:
receiving a network protocol unit;
determining a virtual message transmit engine to process the network protocol unit;
determining a virtual message receive engine to receive the network protocol unit;
transforming contents of the network protocol unit into one or more message segments; and
transmitting the message segments to a queue associated with the virtual message receive engine.

### Claim 2 (depends on 1)

The method of claim 1, wherein the transmitting comprises transmitting the message segments to the queue without identifying the destination memory address of the queue.

### Claim 3 (depends on 1)

The method of claim 1, wherein the message segments comprise a reassembly tag and message segment offset fields and further comprising:
identifying the queue based on the reassembly tag field;
identifying a buffer in the queue based on the reassembly tag field; and
identifying a location in the buffer to store at least one of the message segments based in part on the message segment offset field.

### Claim 4 (depends on 1)

The method of claim 1, wherein at least one of the message segments comprises:
a link level address;
an address of the virtual message receive engine;
a reassembly tag field;
a message segment offset field; and a data portion.

### Claim 5 (depends on 1)

The method of claim 1, wherein the network protocol unit is Ethernet compliant.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
receiving message segments;
re-assembling message segments into a message; and
forming a second network protocol unit based on contents of the message.

### Claim 7 (depends on 6)

The method of claim 6, wherein contents of the received message segments comprise at least one of control, data, and management information.

### Claim 8 (depends on 6)

The method of claim 6, wherein the received message segments originate from a message engine associated with a core.

### Claim 9

An apparatus comprising:
logic to receive a network protocol and to perform media access control, filtering, and buffering on the network protocol unit;
a message mapper to determine a destination virtual message engine associated with the network protocol unit; and
a message engine to transmit content of the network protocol unit using at least one message to a queue associated with the destination virtual message engine without the at least one message identifying a memory address of the queue.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein the message mapper is to allocate a destination virtual message engine based on receive side scaling.

### Claim 11 (depends on 9)

The apparatus of claim 9, wherein the destination virtual message engine is associated with a core.

### Claim 12 (depends on 9)

The apparatus of claim 9, wherein the message engine is to form at least one segment from the at least one message.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein at least one segment comprises:
a link layer;
a destination virtual message engine address;
a reassembly tag field;
a message segment offset field; and
a data portion.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the queue is based on the reassembly tag field and further comprising:
a buffer in the queue based on the reassembly tag field; and
a location in the buffer to store at least one of the message segments based in part on the message segment offset field.

### Claim 15 (depends on 9)

The apparatus of claim 9, further comprising:
logic to prepare network protocol units for transmission; and
a second message engine to receive at least one message and to provide content of the received at least one message to the logic to prepare network protocol units for transmission.

### Claim 16

A system comprising:
a storage device;
a network interface to receive a network protocol unit; and
a first message engine to form at least one message from content of the network protocol unit and to transmit the at least one message to a second message engine without knowledge of the destination memory address for the message.

### Claim 17 (depends on 16)

The system of claim 16, wherein the first message engine and the second message engine do not maintain memory coherency.

### Claim 18 (depends on 16)

The system of claim 16, wherein the first message engine and the second message engine do not access the same physical memory.

### Claim 19 (depends on 16)

The system of claim 16, wherein the first message engine comprises:
a message mapper to determine a destination virtual message engine associated with the network protocol unit; and
logic to transmit content of the network protocol unit using at least one message to a queue associated with the destination virtual message engine.

### Claim 20 (depends on 16)

The system of claim 16, wherein the first message engine is to form at least one segment from the at least one message.

### Claim 21 (depends on 20)

The system of claim 20, wherein at least one segment comprises:
a link layer;
a destination virtual message engine address;
a reassembly tag field;
a message segment offset field; and
a data portion.

### Claim 22 (depends on 21)

The system of claim 21, wherein the queue is based on the reassembly tag field and further comprising:
a buffer in the queue based on the reassembly tag field; and
a location in the buffer to store at least one of the message segments based in part on the message segment offset field.
