~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to include/xen/interface/io/netif.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
/*
24
24
 * This is the 'wire' format for packets:
25
 
 *  Request 1: netif_tx_request -- NETTXF_* (any flags)
26
 
 * [Request 2: netif_tx_extra]  (only if request 1 has NETTXF_extra_info)
27
 
 * [Request 3: netif_tx_extra]  (only if request 2 has XEN_NETIF_EXTRA_MORE)
28
 
 *  Request 4: netif_tx_request -- NETTXF_more_data
29
 
 *  Request 5: netif_tx_request -- NETTXF_more_data
 
25
 *  Request 1: xen_netif_tx_request  -- XEN_NETTXF_* (any flags)
 
26
 * [Request 2: xen_netif_extra_info]    (only if request 1 has XEN_NETTXF_extra_info)
 
27
 * [Request 3: xen_netif_extra_info]    (only if request 2 has XEN_NETIF_EXTRA_MORE)
 
28
 *  Request 4: xen_netif_tx_request  -- XEN_NETTXF_more_data
 
29
 *  Request 5: xen_netif_tx_request  -- XEN_NETTXF_more_data
30
30
 *  ...
31
 
 *  Request N: netif_tx_request -- 0
 
31
 *  Request N: xen_netif_tx_request  -- 0
32
32
 */
33
33
 
34
34
/* Protocol checksum field is blank in the packet (hardware offload)? */
35
 
#define _NETTXF_csum_blank     (0)
36
 
#define  NETTXF_csum_blank     (1U<<_NETTXF_csum_blank)
 
35
#define _XEN_NETTXF_csum_blank          (0)
 
36
#define  XEN_NETTXF_csum_blank          (1U<<_XEN_NETTXF_csum_blank)
37
37
 
38
38
/* Packet data has been validated against protocol checksum. */
39
 
#define _NETTXF_data_validated (1)
40
 
#define  NETTXF_data_validated (1U<<_NETTXF_data_validated)
 
39
#define _XEN_NETTXF_data_validated      (1)
 
40
#define  XEN_NETTXF_data_validated      (1U<<_XEN_NETTXF_data_validated)
41
41
 
42
42
/* Packet continues in the next request descriptor. */
43
 
#define _NETTXF_more_data      (2)
44
 
#define  NETTXF_more_data      (1U<<_NETTXF_more_data)
 
43
#define _XEN_NETTXF_more_data           (2)
 
44
#define  XEN_NETTXF_more_data           (1U<<_XEN_NETTXF_more_data)
45
45
 
46
46
/* Packet to be followed by extra descriptor(s). */
47
 
#define _NETTXF_extra_info     (3)
48
 
#define  NETTXF_extra_info     (1U<<_NETTXF_extra_info)
 
47
#define _XEN_NETTXF_extra_info          (3)
 
48
#define  XEN_NETTXF_extra_info          (1U<<_XEN_NETTXF_extra_info)
49
49
 
50
50
struct xen_netif_tx_request {
51
51
    grant_ref_t gref;      /* Reference to buffer page */
52
52
    uint16_t offset;       /* Offset within buffer page */
53
 
    uint16_t flags;        /* NETTXF_* */
 
53
    uint16_t flags;        /* XEN_NETTXF_* */
54
54
    uint16_t id;           /* Echoed in response message. */
55
55
    uint16_t size;         /* Packet size in bytes.       */
56
56
};
57
57
 
58
 
/* Types of netif_extra_info descriptors. */
59
 
#define XEN_NETIF_EXTRA_TYPE_NONE  (0)  /* Never used - invalid */
60
 
#define XEN_NETIF_EXTRA_TYPE_GSO   (1)  /* u.gso */
61
 
#define XEN_NETIF_EXTRA_TYPE_MAX   (2)
 
58
/* Types of xen_netif_extra_info descriptors. */
 
59
#define XEN_NETIF_EXTRA_TYPE_NONE       (0)  /* Never used - invalid */
 
60
#define XEN_NETIF_EXTRA_TYPE_GSO        (1)  /* u.gso */
 
61
#define XEN_NETIF_EXTRA_TYPE_MAX        (2)
62
62
 
63
 
/* netif_extra_info flags. */
64
 
#define _XEN_NETIF_EXTRA_FLAG_MORE (0)
65
 
#define XEN_NETIF_EXTRA_FLAG_MORE  (1U<<_XEN_NETIF_EXTRA_FLAG_MORE)
 
63
/* xen_netif_extra_info flags. */
 
64
#define _XEN_NETIF_EXTRA_FLAG_MORE      (0)
 
65
#define  XEN_NETIF_EXTRA_FLAG_MORE      (1U<<_XEN_NETIF_EXTRA_FLAG_MORE)
66
66
 
67
67
/* GSO types - only TCPv4 currently supported. */
68
 
#define XEN_NETIF_GSO_TYPE_TCPV4        (1)
 
68
#define XEN_NETIF_GSO_TYPE_TCPV4        (1)
69
69
 
70
70
/*
71
71
 * This structure needs to fit within both netif_tx_request and
107
107
 
108
108
struct xen_netif_tx_response {
109
109
        uint16_t id;
110
 
        int16_t  status;       /* NETIF_RSP_* */
 
110
        int16_t  status;       /* XEN_NETIF_RSP_* */
111
111
};
112
112
 
113
113
struct xen_netif_rx_request {
116
116
};
117
117
 
118
118
/* Packet data has been validated against protocol checksum. */
119
 
#define _NETRXF_data_validated (0)
120
 
#define  NETRXF_data_validated (1U<<_NETRXF_data_validated)
 
119
#define _XEN_NETRXF_data_validated      (0)
 
120
#define  XEN_NETRXF_data_validated      (1U<<_XEN_NETRXF_data_validated)
121
121
 
122
122
/* Protocol checksum field is blank in the packet (hardware offload)? */
123
 
#define _NETRXF_csum_blank     (1)
124
 
#define  NETRXF_csum_blank     (1U<<_NETRXF_csum_blank)
 
123
#define _XEN_NETRXF_csum_blank          (1)
 
124
#define  XEN_NETRXF_csum_blank          (1U<<_XEN_NETRXF_csum_blank)
125
125
 
126
126
/* Packet continues in the next request descriptor. */
127
 
#define _NETRXF_more_data      (2)
128
 
#define  NETRXF_more_data      (1U<<_NETRXF_more_data)
 
127
#define _XEN_NETRXF_more_data           (2)
 
128
#define  XEN_NETRXF_more_data           (1U<<_XEN_NETRXF_more_data)
129
129
 
130
130
/* Packet to be followed by extra descriptor(s). */
131
 
#define _NETRXF_extra_info     (3)
132
 
#define  NETRXF_extra_info     (1U<<_NETRXF_extra_info)
 
131
#define _XEN_NETRXF_extra_info          (3)
 
132
#define  XEN_NETRXF_extra_info          (1U<<_XEN_NETRXF_extra_info)
 
133
 
 
134
/* GSO Prefix descriptor. */
 
135
#define _XEN_NETRXF_gso_prefix          (4)
 
136
#define  XEN_NETRXF_gso_prefix          (1U<<_XEN_NETRXF_gso_prefix)
133
137
 
134
138
struct xen_netif_rx_response {
135
139
    uint16_t id;
136
140
    uint16_t offset;       /* Offset in page of start of received packet  */
137
 
    uint16_t flags;        /* NETRXF_* */
 
141
    uint16_t flags;        /* XEN_NETRXF_* */
138
142
    int16_t  status;       /* -ve: BLKIF_RSP_* ; +ve: Rx'ed pkt size. */
139
143
};
140
144
 
149
153
                  struct xen_netif_rx_request,
150
154
                  struct xen_netif_rx_response);
151
155
 
152
 
#define NETIF_RSP_DROPPED         -2
153
 
#define NETIF_RSP_ERROR           -1
154
 
#define NETIF_RSP_OKAY             0
155
 
/* No response: used for auxiliary requests (e.g., netif_tx_extra). */
156
 
#define NETIF_RSP_NULL             1
 
156
#define XEN_NETIF_RSP_DROPPED   -2
 
157
#define XEN_NETIF_RSP_ERROR     -1
 
158
#define XEN_NETIF_RSP_OKAY       0
 
159
/* No response: used for auxiliary requests (e.g., xen_netif_extra_info). */
 
160
#define XEN_NETIF_RSP_NULL       1
157
161
 
158
162
#endif