iPXE
Data Structures | Macros | Typedefs | Functions
netif.h File Reference
#include "ring.h"
#include "../grant_table.h"

Go to the source code of this file.

Data Structures

struct  xen_netif_ctrl_request
 
struct  xen_netif_ctrl_response
 
struct  xen_netif_gref
 
struct  netif_tx_request
 
struct  netif_extra_info
 
struct  netif_tx_response
 
struct  netif_rx_request
 
struct  netif_rx_response
 

Macros

#define XEN_NETIF_NR_SLOTS_MIN   18
 
#define _XEN_NETIF_CTRL_HASH_TYPE_IPV4   0
 
#define XEN_NETIF_CTRL_HASH_TYPE_IPV4   (1 << _XEN_NETIF_CTRL_HASH_TYPE_IPV4)
 
#define _XEN_NETIF_CTRL_HASH_TYPE_IPV4_TCP   1
 
#define XEN_NETIF_CTRL_HASH_TYPE_IPV4_TCP   (1 << _XEN_NETIF_CTRL_HASH_TYPE_IPV4_TCP)
 
#define _XEN_NETIF_CTRL_HASH_TYPE_IPV6   2
 
#define XEN_NETIF_CTRL_HASH_TYPE_IPV6   (1 << _XEN_NETIF_CTRL_HASH_TYPE_IPV6)
 
#define _XEN_NETIF_CTRL_HASH_TYPE_IPV6_TCP   3
 
#define XEN_NETIF_CTRL_HASH_TYPE_IPV6_TCP   (1 << _XEN_NETIF_CTRL_HASH_TYPE_IPV6_TCP)
 
#define XEN_NETIF_CTRL_HASH_ALGORITHM_NONE   0
 
#define XEN_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ   1
 
#define XEN_NETIF_CTRL_TYPE_INVALID   0
 
#define XEN_NETIF_CTRL_TYPE_GET_HASH_FLAGS   1
 
#define XEN_NETIF_CTRL_TYPE_SET_HASH_FLAGS   2
 
#define XEN_NETIF_CTRL_TYPE_SET_HASH_KEY   3
 
#define XEN_NETIF_CTRL_TYPE_GET_HASH_MAPPING_SIZE   4
 
#define XEN_NETIF_CTRL_TYPE_SET_HASH_MAPPING_SIZE   5
 
#define XEN_NETIF_CTRL_TYPE_SET_HASH_MAPPING   6
 
#define XEN_NETIF_CTRL_TYPE_SET_HASH_ALGORITHM   7
 
#define XEN_NETIF_CTRL_TYPE_GET_GREF_MAPPING_SIZE   8
 
#define XEN_NETIF_CTRL_TYPE_ADD_GREF_MAPPING   9
 
#define XEN_NETIF_CTRL_TYPE_DEL_GREF_MAPPING   10
 
#define XEN_NETIF_CTRL_STATUS_SUCCESS   0
 
#define XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED   1
 
#define XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER   2
 
#define XEN_NETIF_CTRL_STATUS_BUFFER_OVERFLOW   3
 
#define _XEN_NETIF_CTRLF_GREF_readonly   0
 
#define XEN_NETIF_CTRLF_GREF_readonly   (1U<<_XEN_NETIF_CTRLF_GREF_readonly)
 
#define _NETTXF_csum_blank   (0)
 
#define NETTXF_csum_blank   (1U<<_NETTXF_csum_blank)
 
#define _NETTXF_data_validated   (1)
 
#define NETTXF_data_validated   (1U<<_NETTXF_data_validated)
 
#define _NETTXF_more_data   (2)
 
#define NETTXF_more_data   (1U<<_NETTXF_more_data)
 
#define _NETTXF_extra_info   (3)
 
#define NETTXF_extra_info   (1U<<_NETTXF_extra_info)
 
#define XEN_NETIF_MAX_TX_SIZE   0xFFFF
 
#define XEN_NETIF_EXTRA_TYPE_NONE   (0) /* Never used - invalid */
 
#define XEN_NETIF_EXTRA_TYPE_GSO   (1) /* u.gso */
 
#define XEN_NETIF_EXTRA_TYPE_MCAST_ADD   (2) /* u.mcast */
 
#define XEN_NETIF_EXTRA_TYPE_MCAST_DEL   (3) /* u.mcast */
 
#define XEN_NETIF_EXTRA_TYPE_HASH   (4) /* u.hash */
 
#define XEN_NETIF_EXTRA_TYPE_MAX   (5)
 
#define _XEN_NETIF_EXTRA_FLAG_MORE   (0)
 
#define XEN_NETIF_EXTRA_FLAG_MORE   (1U<<_XEN_NETIF_EXTRA_FLAG_MORE)
 
#define XEN_NETIF_GSO_TYPE_NONE   (0)
 
#define XEN_NETIF_GSO_TYPE_TCPV4   (1)
 
#define XEN_NETIF_GSO_TYPE_TCPV6   (2)
 
#define _NETRXF_data_validated   (0)
 
#define NETRXF_data_validated   (1U<<_NETRXF_data_validated)
 
#define _NETRXF_csum_blank   (1)
 
#define NETRXF_csum_blank   (1U<<_NETRXF_csum_blank)
 
#define _NETRXF_more_data   (2)
 
#define NETRXF_more_data   (1U<<_NETRXF_more_data)
 
#define _NETRXF_extra_info   (3)
 
#define NETRXF_extra_info   (1U<<_NETRXF_extra_info)
 
#define _NETRXF_gso_prefix   (4)
 
#define NETRXF_gso_prefix   (1U<<_NETRXF_gso_prefix)
 
#define NETIF_RSP_DROPPED   -2
 
#define NETIF_RSP_ERROR   -1
 
#define NETIF_RSP_OKAY   0
 
#define NETIF_RSP_NULL   1
 

Typedefs

typedef struct netif_tx_request netif_tx_request_t
 
typedef struct netif_extra_info netif_extra_info_t
 
typedef struct netif_tx_response netif_tx_response_t
 
typedef struct netif_rx_request netif_rx_request_t
 
typedef struct netif_rx_response netif_rx_response_t
 

Functions

 FILE_LICENCE (MIT)
 
 DEFINE_RING_TYPES (xen_netif_ctrl, struct xen_netif_ctrl_request, struct xen_netif_ctrl_response)
 
 DEFINE_RING_TYPES (netif_tx, struct netif_tx_request, struct netif_tx_response)
 
 DEFINE_RING_TYPES (netif_rx, struct netif_rx_request, struct netif_rx_response)
 

Macro Definition Documentation

◆ XEN_NETIF_NR_SLOTS_MIN

#define XEN_NETIF_NR_SLOTS_MIN   18

Definition at line 34 of file netif.h.

◆ _XEN_NETIF_CTRL_HASH_TYPE_IPV4

#define _XEN_NETIF_CTRL_HASH_TYPE_IPV4   0

Definition at line 228 of file netif.h.

◆ XEN_NETIF_CTRL_HASH_TYPE_IPV4

#define XEN_NETIF_CTRL_HASH_TYPE_IPV4   (1 << _XEN_NETIF_CTRL_HASH_TYPE_IPV4)

Definition at line 229 of file netif.h.

◆ _XEN_NETIF_CTRL_HASH_TYPE_IPV4_TCP

#define _XEN_NETIF_CTRL_HASH_TYPE_IPV4_TCP   1

Definition at line 243 of file netif.h.

◆ XEN_NETIF_CTRL_HASH_TYPE_IPV4_TCP

#define XEN_NETIF_CTRL_HASH_TYPE_IPV4_TCP   (1 << _XEN_NETIF_CTRL_HASH_TYPE_IPV4_TCP)

Definition at line 244 of file netif.h.

◆ _XEN_NETIF_CTRL_HASH_TYPE_IPV6

#define _XEN_NETIF_CTRL_HASH_TYPE_IPV6   2

Definition at line 255 of file netif.h.

◆ XEN_NETIF_CTRL_HASH_TYPE_IPV6

#define XEN_NETIF_CTRL_HASH_TYPE_IPV6   (1 << _XEN_NETIF_CTRL_HASH_TYPE_IPV6)

Definition at line 256 of file netif.h.

◆ _XEN_NETIF_CTRL_HASH_TYPE_IPV6_TCP

#define _XEN_NETIF_CTRL_HASH_TYPE_IPV6_TCP   3

Definition at line 270 of file netif.h.

◆ XEN_NETIF_CTRL_HASH_TYPE_IPV6_TCP

#define XEN_NETIF_CTRL_HASH_TYPE_IPV6_TCP   (1 << _XEN_NETIF_CTRL_HASH_TYPE_IPV6_TCP)

Definition at line 271 of file netif.h.

◆ XEN_NETIF_CTRL_HASH_ALGORITHM_NONE

#define XEN_NETIF_CTRL_HASH_ALGORITHM_NONE   0

Definition at line 279 of file netif.h.

◆ XEN_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ

#define XEN_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ   1

Definition at line 285 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_INVALID

#define XEN_NETIF_CTRL_TYPE_INVALID   0

Definition at line 365 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_GET_HASH_FLAGS

#define XEN_NETIF_CTRL_TYPE_GET_HASH_FLAGS   1

Definition at line 366 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_SET_HASH_FLAGS

#define XEN_NETIF_CTRL_TYPE_SET_HASH_FLAGS   2

Definition at line 367 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_SET_HASH_KEY

#define XEN_NETIF_CTRL_TYPE_SET_HASH_KEY   3

Definition at line 368 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_GET_HASH_MAPPING_SIZE

#define XEN_NETIF_CTRL_TYPE_GET_HASH_MAPPING_SIZE   4

Definition at line 369 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_SET_HASH_MAPPING_SIZE

#define XEN_NETIF_CTRL_TYPE_SET_HASH_MAPPING_SIZE   5

Definition at line 370 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_SET_HASH_MAPPING

#define XEN_NETIF_CTRL_TYPE_SET_HASH_MAPPING   6

Definition at line 371 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_SET_HASH_ALGORITHM

#define XEN_NETIF_CTRL_TYPE_SET_HASH_ALGORITHM   7

Definition at line 372 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_GET_GREF_MAPPING_SIZE

#define XEN_NETIF_CTRL_TYPE_GET_GREF_MAPPING_SIZE   8

Definition at line 373 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_ADD_GREF_MAPPING

#define XEN_NETIF_CTRL_TYPE_ADD_GREF_MAPPING   9

Definition at line 374 of file netif.h.

◆ XEN_NETIF_CTRL_TYPE_DEL_GREF_MAPPING

#define XEN_NETIF_CTRL_TYPE_DEL_GREF_MAPPING   10

Definition at line 375 of file netif.h.

◆ XEN_NETIF_CTRL_STATUS_SUCCESS

#define XEN_NETIF_CTRL_STATUS_SUCCESS   0

Definition at line 405 of file netif.h.

◆ XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED

#define XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED   1

Definition at line 406 of file netif.h.

◆ XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER

#define XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER   2

Definition at line 407 of file netif.h.

◆ XEN_NETIF_CTRL_STATUS_BUFFER_OVERFLOW

#define XEN_NETIF_CTRL_STATUS_BUFFER_OVERFLOW   3

Definition at line 408 of file netif.h.

◆ _XEN_NETIF_CTRLF_GREF_readonly

#define _XEN_NETIF_CTRLF_GREF_readonly   0

Definition at line 445 of file netif.h.

◆ XEN_NETIF_CTRLF_GREF_readonly

#define XEN_NETIF_CTRLF_GREF_readonly   (1U<<_XEN_NETIF_CTRLF_GREF_readonly)

Definition at line 446 of file netif.h.

◆ _NETTXF_csum_blank

#define _NETTXF_csum_blank   (0)

Definition at line 960 of file netif.h.

◆ NETTXF_csum_blank

#define NETTXF_csum_blank   (1U<<_NETTXF_csum_blank)

Definition at line 961 of file netif.h.

◆ _NETTXF_data_validated

#define _NETTXF_data_validated   (1)

Definition at line 964 of file netif.h.

◆ NETTXF_data_validated

#define NETTXF_data_validated   (1U<<_NETTXF_data_validated)

Definition at line 965 of file netif.h.

◆ _NETTXF_more_data

#define _NETTXF_more_data   (2)

Definition at line 968 of file netif.h.

◆ NETTXF_more_data

#define NETTXF_more_data   (1U<<_NETTXF_more_data)

Definition at line 969 of file netif.h.

◆ _NETTXF_extra_info

#define _NETTXF_extra_info   (3)

Definition at line 972 of file netif.h.

◆ NETTXF_extra_info

#define NETTXF_extra_info   (1U<<_NETTXF_extra_info)

Definition at line 973 of file netif.h.

◆ XEN_NETIF_MAX_TX_SIZE

#define XEN_NETIF_MAX_TX_SIZE   0xFFFF

Definition at line 975 of file netif.h.

◆ XEN_NETIF_EXTRA_TYPE_NONE

#define XEN_NETIF_EXTRA_TYPE_NONE   (0) /* Never used - invalid */

Definition at line 986 of file netif.h.

◆ XEN_NETIF_EXTRA_TYPE_GSO

#define XEN_NETIF_EXTRA_TYPE_GSO   (1) /* u.gso */

Definition at line 987 of file netif.h.

◆ XEN_NETIF_EXTRA_TYPE_MCAST_ADD

#define XEN_NETIF_EXTRA_TYPE_MCAST_ADD   (2) /* u.mcast */

Definition at line 988 of file netif.h.

◆ XEN_NETIF_EXTRA_TYPE_MCAST_DEL

#define XEN_NETIF_EXTRA_TYPE_MCAST_DEL   (3) /* u.mcast */

Definition at line 989 of file netif.h.

◆ XEN_NETIF_EXTRA_TYPE_HASH

#define XEN_NETIF_EXTRA_TYPE_HASH   (4) /* u.hash */

Definition at line 990 of file netif.h.

◆ XEN_NETIF_EXTRA_TYPE_MAX

#define XEN_NETIF_EXTRA_TYPE_MAX   (5)

Definition at line 991 of file netif.h.

◆ _XEN_NETIF_EXTRA_FLAG_MORE

#define _XEN_NETIF_EXTRA_FLAG_MORE   (0)

Definition at line 994 of file netif.h.

◆ XEN_NETIF_EXTRA_FLAG_MORE

#define XEN_NETIF_EXTRA_FLAG_MORE   (1U<<_XEN_NETIF_EXTRA_FLAG_MORE)

Definition at line 995 of file netif.h.

◆ XEN_NETIF_GSO_TYPE_NONE

#define XEN_NETIF_GSO_TYPE_NONE   (0)

Definition at line 998 of file netif.h.

◆ XEN_NETIF_GSO_TYPE_TCPV4

#define XEN_NETIF_GSO_TYPE_TCPV4   (1)

Definition at line 999 of file netif.h.

◆ XEN_NETIF_GSO_TYPE_TCPV6

#define XEN_NETIF_GSO_TYPE_TCPV6   (2)

Definition at line 1000 of file netif.h.

◆ _NETRXF_data_validated

#define _NETRXF_data_validated   (0)

Definition at line 1043 of file netif.h.

◆ NETRXF_data_validated

#define NETRXF_data_validated   (1U<<_NETRXF_data_validated)

Definition at line 1044 of file netif.h.

◆ _NETRXF_csum_blank

#define _NETRXF_csum_blank   (1)

Definition at line 1047 of file netif.h.

◆ NETRXF_csum_blank

#define NETRXF_csum_blank   (1U<<_NETRXF_csum_blank)

Definition at line 1048 of file netif.h.

◆ _NETRXF_more_data

#define _NETRXF_more_data   (2)

Definition at line 1051 of file netif.h.

◆ NETRXF_more_data

#define NETRXF_more_data   (1U<<_NETRXF_more_data)

Definition at line 1052 of file netif.h.

◆ _NETRXF_extra_info

#define _NETRXF_extra_info   (3)

Definition at line 1055 of file netif.h.

◆ NETRXF_extra_info

#define NETRXF_extra_info   (1U<<_NETRXF_extra_info)

Definition at line 1056 of file netif.h.

◆ _NETRXF_gso_prefix

#define _NETRXF_gso_prefix   (4)

Definition at line 1059 of file netif.h.

◆ NETRXF_gso_prefix

#define NETRXF_gso_prefix   (1U<<_NETRXF_gso_prefix)

Definition at line 1060 of file netif.h.

◆ NETIF_RSP_DROPPED

#define NETIF_RSP_DROPPED   -2

Definition at line 1077 of file netif.h.

◆ NETIF_RSP_ERROR

#define NETIF_RSP_ERROR   -1

Definition at line 1078 of file netif.h.

◆ NETIF_RSP_OKAY

#define NETIF_RSP_OKAY   0

Definition at line 1079 of file netif.h.

◆ NETIF_RSP_NULL

#define NETIF_RSP_NULL   1

Definition at line 1081 of file netif.h.

Typedef Documentation

◆ netif_tx_request_t

Definition at line 983 of file netif.h.

◆ netif_extra_info_t

Definition at line 1027 of file netif.h.

◆ netif_tx_response_t

Definition at line 1033 of file netif.h.

◆ netif_rx_request_t

Definition at line 1040 of file netif.h.

◆ netif_rx_response_t

Definition at line 1068 of file netif.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( MIT  )

◆ DEFINE_RING_TYPES() [1/3]

DEFINE_RING_TYPES ( xen_netif_ctrl  ,
struct xen_netif_ctrl_request  ,
struct xen_netif_ctrl_response   
)

◆ DEFINE_RING_TYPES() [2/3]

DEFINE_RING_TYPES ( netif_tx  ,
struct netif_tx_request  ,
struct netif_tx_response   
)

◆ DEFINE_RING_TYPES() [3/3]

DEFINE_RING_TYPES ( netif_rx  ,
struct netif_rx_request  ,
struct netif_rx_response   
)