Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
netio_pkt_t Struct Reference

A packet descriptor. More...

#include <netio_intf.h>

Data Fields

__netio_pkt_notif_t __notif_header
__netio_pkt_handle_t __packet
netio_pkt_metadata_t __metadata

Detailed Description

A packet descriptor.

This data structure represents a packet. The structure is manipulated through the ingress and the egress.

While the contents of a netio_pkt_t are opaque, the structure itself is portable. This means that it may be shared between all tiles which have done a netio_input_register() call for the interface on which the pkt_t was initially received (via netio_get_packet()) or retrieved (via netio_get_buffer()). The contents of a netio_pkt_t can be transmitted to another tile via shared memory, or via a UDN message, or by other means. The destination tile may then use the pkt_t as if it had originally been received locally; it may read or write the packet's data, read its metadata, free the packet, send the packet, transfer the netio_pkt_t to yet another tile, and so forth.

Once a netio_pkt_t has been transferred to a second tile, the first tile should not reference the original copy; in particular, if more than one tile frees or sends the same netio_pkt_t, the IPP's packet free lists will become corrupted. Note also that each tile which reads or modifies packet data must obey the memory coherency rules outlined in input.

Definition at line 553 of file netio_intf.h.

Field Documentation

Metadata associated with the packet.

Definition at line 569 of file netio_intf.h.

__netio_pkt_notif_t __notif_header

For an ingress packet (one with standard metadata), this is the notification header we got from the I/O shim. For an egress packet (one with minimal metadata), this word is zero if the packet has not been populated, and nonzero if it has.

Definition at line 563 of file netio_intf.h.

Virtual address of the packet buffer, plus state flags.

Definition at line 566 of file netio_intf.h.

The documentation for this struct was generated from the following file: