Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs
Setup

Data Structures

union  netio_group_t
 A group-to-bucket identifier. More...
 
struct  netio_input_config_t
 An object for specifying the characteristics of NetIO communication endpoint. More...
 
struct  netio_queue_t
 

Macros

#define NETIO_MAX_TILES_PER_QUEUE   64
 
#define NETIO_MAX_QUEUE_ID   255
 
#define NETIO_NUM_NODE_WEIGHTS   16
 
#define NETIO_STRICT_HOMING   0x00000002
 
#define NETIO_TAG_NONE   0x00000004
 
#define NETIO_TAG_MRVL   0x00000008
 
#define NETIO_TAG_BRCM   0x00000010
 
#define NETIO_RECV   0x00000020
 
#define NETIO_NO_RECV   0x00000040
 
#define NETIO_XMIT   0x00000080
 
#define NETIO_XMIT_CSUM   0x00000100
 
#define NETIO_NO_XMIT   0x00000200
 
#define NETIO_FIXED_BUFFER_VA   0x00000400
 
#define NETIO_REQUIRE_LINK_UP   0x00000800
 
#define NETIO_NOREQUIRE_LINK_UP   0x00001000
 
#define _NETIO_AUTO_UP   0x00002000
 
#define _NETIO_AUTO_DN   0x00004000
 
#define _NETIO_AUTO_PRESENT   0x00008000
 
#define NETIO_AUTO_LINK_UP   (_NETIO_AUTO_PRESENT | _NETIO_AUTO_UP)
 
#define NETIO_AUTO_LINK_UPDN
 
#define NETIO_AUTO_LINK_DN   (_NETIO_AUTO_PRESENT | _NETIO_AUTO_DN)
 
#define NETIO_AUTO_LINK_NONE   _NETIO_AUTO_PRESENT
 
#define NETIO_MIN_RECEIVE_PKTS   16
 
#define NETIO_MAX_RECEIVE_PKTS   128
 
#define NETIO_MAX_SEND_BUFFERS   16
 
#define NETIO_TOTAL_SENDS_OUTSTANDING   2015
 
#define NETIO_MIN_SENDS_OUTSTANDING   16
 

Typedefs

typedef netio_group_t netio_vlan_t
 A VLAN-to-bucket identifier.
 
typedef unsigned char netio_bucket_t
 
typedef unsigned int netio_size_t
 

Detailed Description

Registration flags; used in the netio_input_config_t structure.

Macro Definition Documentation

#define _NETIO_AUTO_DN   0x00004000

Definition at line 2540 of file netio_intf.h.

#define _NETIO_AUTO_PRESENT   0x00008000

Definition at line 2541 of file netio_intf.h.

#define _NETIO_AUTO_UP   0x00002000

Definition at line 2539 of file netio_intf.h.

#define NETIO_AUTO_LINK_DN   (_NETIO_AUTO_PRESENT | _NETIO_AUTO_DN)

Set the desired state of the link to down the next time no tiles are registered for packet reception or transmission. This flag is ignored if it is specified along with NETIO_NO_XMIT and NETIO_NO_RECV. See link for more information on link management.

Definition at line 2568 of file netio_intf.h.

#define NETIO_AUTO_LINK_NONE   _NETIO_AUTO_PRESENT

Do not bring up the link automatically as part of this registration operation. Do not take down the link automatically. This flag is ignored if it is specified along with NETIO_NO_XMIT and NETIO_NO_RECV. See link for more information on link management.

Definition at line 2575 of file netio_intf.h.

#define NETIO_AUTO_LINK_UP   (_NETIO_AUTO_PRESENT | _NETIO_AUTO_UP)

Set the desired state of the link to up, allowing any speeds which are supported by the link hardware, as part of this registration operation. Do not take down the link automatically. This is the default if no other NETIO_AUTO_LINK_xxx flags are specified. This flag is ignored if it is specified along with NETIO_NO_XMIT and NETIO_NO_RECV. See link for more information on link management.

Definition at line 2551 of file netio_intf.h.

#define NETIO_AUTO_LINK_UPDN
Value:
_NETIO_AUTO_DN)

Set the desired state of the link to up, allowing any speeds which are supported by the link hardware, as part of this registration operation. Set the desired state of the link to down the next time no tiles are registered for packet reception or transmission. This flag is ignored if it is specified along with NETIO_NO_XMIT and NETIO_NO_RECV. See link for more information on link management.

Definition at line 2560 of file netio_intf.h.

#define NETIO_FIXED_BUFFER_VA   0x00000400

This registration wants NetIO buffers mapped at an application-specified virtual address.

NetIO buffers are by default created by the TMC common memory facility, which must be configured by a common ancestor of all processes sharing a network interface. When this flag is specified, NetIO buffers are instead mapped at an address chosen by the application (and specified in netio_input_config_t::fixed_buffer_va). This allows multiple unrelated but cooperating processes to share a NetIO interface. All processes sharing the same interface must specify this flag, and all must specify the same fixed virtual address.

netio_input_config_t::fixed_buffer_va must be a multiple of 16 MB, and the packet buffers will occupy netio_input_config_t::total_buffer_size bytes of virtual address space, beginning at that address. If any of those virtual addresses are currently occupied by other memory objects, like application or shared library code or data, netio_input_register() will return NETIO_FAULT. While it is impossible to provide a fixed_buffer_va which will work for all applications, a good first guess might be to use 0xb0000000 minus netio_input_config_t::total_buffer_size. If that fails, it might be helpful to consult the running application's virtual address description file (/proc/pid/maps) to see which regions of virtual address space are available.

Definition at line 2504 of file netio_intf.h.

#define NETIO_MAX_QUEUE_ID   255

Largest permissible queue identifier.

Definition at line 97 of file netio_intf.h.

#define NETIO_MAX_RECEIVE_PKTS   128

Lower bound on the maximum number of receive packets; may be higher than this on some interfaces.

Definition at line 2583 of file netio_intf.h.

#define NETIO_MAX_SEND_BUFFERS   16

Maximum number of send buffers, per packet size.

Definition at line 2586 of file netio_intf.h.

#define NETIO_MAX_TILES_PER_QUEUE   64

How many tiles can register for a given queue.

Definition at line 92 of file netio_intf.h.

#define NETIO_MIN_RECEIVE_PKTS   16

Minimum number of receive packets.

Definition at line 2579 of file netio_intf.h.

#define NETIO_MIN_SENDS_OUTSTANDING   16

Minimum number of EPP queue slots, and thus outstanding sends, per transmitting tile.

Definition at line 2593 of file netio_intf.h.

#define NETIO_NO_RECV   0x00000040

This registration may not call routines which receive packets.

Definition at line 2467 of file netio_intf.h.

#define NETIO_NO_XMIT   0x00000200

This registration may not call routines which transmit packets.

Definition at line 2477 of file netio_intf.h.

#define NETIO_NOREQUIRE_LINK_UP   0x00001000

This registration call will complete even if the network link is not up. Whenever the link is not up, packets will not be sent or received: netio_get_packet() will return NETIO_NOPKT once all queued packets have been drained, and netio_send_packet() and similar routines will return NETIO_QUEUE_FULL once the outgoing packet queue in the EPP or the I/O shim is full. See link for more information on link management.

Definition at line 2531 of file netio_intf.h.

#define NETIO_NUM_NODE_WEIGHTS   16

Number of NUMA nodes we can distribute buffers to.

Definition at line 2104 of file netio_intf.h.

#define NETIO_RECV   0x00000020

This registration may call routines which receive packets.

Definition at line 2464 of file netio_intf.h.

#define NETIO_REQUIRE_LINK_UP   0x00000800

This registration call will not complete unless the network link is up. The process will wait several seconds for this to happen (the precise interval is link-dependent), but if the link does not come up, NETIO_LINK_DOWN will be returned. This flag is the default if NETIO_NOREQUIRE_LINK_UP is not specified. Note that this flag by itself does not request that the link be brought up; that can be done with the NETIO_AUTO_LINK_UPDN or NETIO_AUTO_LINK_UP flags (the latter is the default if no NETIO_AUTO_LINK_xxx flags are specified), or by explicitly setting the link's desired state via netio_set(). If the link is not brought up by one of those methods, and this flag is specified, the registration operation will return NETIO_LINK_DOWN. This flag is ignored if it is specified along with NETIO_NO_XMIT and NETIO_NO_RECV. See link for more information on link management.

Definition at line 2521 of file netio_intf.h.

#define NETIO_STRICT_HOMING   0x00000002

Fail a registration request if we can't put packet buffers on the specified memory controllers.

Definition at line 2452 of file netio_intf.h.

#define NETIO_TAG_BRCM   0x00000010

This application expects Broadcom tags on its L2 headers.

Definition at line 2461 of file netio_intf.h.

#define NETIO_TAG_MRVL   0x00000008

This application expects Marvell extended tags on its L2 headers.

Definition at line 2458 of file netio_intf.h.

#define NETIO_TAG_NONE   0x00000004

This application expects no tags on its L2 headers.

Definition at line 2455 of file netio_intf.h.

#define NETIO_TOTAL_SENDS_OUTSTANDING   2015

Number of EPP queue slots, and thus outstanding sends, per EPP.

Definition at line 2589 of file netio_intf.h.

#define NETIO_XMIT   0x00000080

This registration may call routines which transmit packets.

Definition at line 2470 of file netio_intf.h.

#define NETIO_XMIT_CSUM   0x00000100

This registration may call routines which transmit packets with checksum acceleration.

Definition at line 2474 of file netio_intf.h.

Typedef Documentation

typedef unsigned char netio_bucket_t

A bucket-to-queue mapping.

Definition at line 317 of file netio_intf.h.

typedef unsigned int netio_size_t

A packet size can always fit in a netio_size_t.

Definition at line 324 of file netio_intf.h.

A VLAN-to-bucket identifier.

This tells us what to do with a given VLAN.

Definition at line 310 of file netio_intf.h.