FreeBSD kernel CXGBE device code
t4_ioctl.h
Go to the documentation of this file.
1
/*-
2
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3
*
4
* Copyright (c) 2011 Chelsio Communications, Inc.
5
* All rights reserved.
6
* Written by: Navdeep Parhar <np@FreeBSD.org>
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
* 1. Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* 2. Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in the
15
* documentation and/or other materials provided with the distribution.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
* $FreeBSD$
30
*
31
*/
32
33
#ifndef __T4_IOCTL_H__
34
#define __T4_IOCTL_H__
35
36
#include <sys/types.h>
37
#include <net/ethernet.h>
38
#include <net/bpf.h>
39
40
/*
41
* Ioctl commands specific to this driver.
42
*/
43
enum
{
44
T4_GETREG
= 0x40,
/* read register */
45
T4_SETREG
,
/* write register */
46
T4_REGDUMP
,
/* dump of all registers */
47
T4_GET_FILTER_MODE
,
/* get global filter mode */
48
T4_SET_FILTER_MODE
,
/* set global filter mode */
49
T4_GET_FILTER
,
/* get information about a filter */
50
T4_SET_FILTER
,
/* program a filter */
51
T4_DEL_FILTER
,
/* delete a filter */
52
T4_GET_SGE_CONTEXT
,
/* get SGE context for a queue */
53
T4_LOAD_FW
,
/* flash firmware */
54
T4_GET_MEM
,
/* read memory */
55
T4_GET_I2C
,
/* read from i2c addressible device */
56
T4_CLEAR_STATS
,
/* clear a port's MAC statistics */
57
T4_SET_OFLD_POLICY
,
/* Set offload policy */
58
T4_SET_SCHED_CLASS
,
/* set sched class */
59
T4_SET_SCHED_QUEUE
,
/* set queue class */
60
T4_GET_TRACER
,
/* get information about a tracer */
61
T4_SET_TRACER
,
/* program a tracer */
62
T4_LOAD_CFG
,
/* copy a config file to card's flash */
63
T4_LOAD_BOOT
,
/* flash boot rom */
64
T4_LOAD_BOOTCFG
,
/* flash bootcfg */
65
T4_CUDBG_DUMP
,
/* debug dump of chip state */
66
T4_SET_FILTER_MASK
,
/* set filter mask (hashfilter mode) */
67
T4_HOLD_CLIP_ADDR
,
/* add ref on an IP in the CLIP */
68
T4_RELEASE_CLIP_ADDR
,
/* remove ref from an IP in the CLIP */
69
};
70
71
struct
t4_reg
{
72
uint32_t
addr
;
73
uint32_t
size
;
74
uint64_t
val
;
75
};
76
77
#define T4_REGDUMP_SIZE (160 * 1024)
78
#define T5_REGDUMP_SIZE (332 * 1024)
79
struct
t4_regdump
{
80
uint32_t
version
;
81
uint32_t
len
;
/* bytes */
82
uint32_t *
data
;
83
};
84
85
struct
t4_data
{
86
uint32_t
len
;
87
uint8_t *
data
;
88
};
89
90
struct
t4_bootrom
{
91
uint32_t
pf_offset
;
92
uint32_t
pfidx_addr
;
93
uint32_t
len
;
94
uint8_t *
data
;
95
};
96
97
struct
t4_i2c_data
{
98
uint8_t
port_id
;
99
uint8_t
dev_addr
;
100
uint8_t
offset
;
101
uint8_t
len
;
102
uint8_t
data
[8];
103
};
104
105
/*
106
* A hardware filter is some valid combination of these.
107
*/
108
#define T4_FILTER_IPv4 0x1
/* IPv4 packet */
109
#define T4_FILTER_IPv6 0x2
/* IPv6 packet */
110
#define T4_FILTER_IP_SADDR 0x4
/* Source IP address or network */
111
#define T4_FILTER_IP_DADDR 0x8
/* Destination IP address or network */
112
#define T4_FILTER_IP_SPORT 0x10
/* Source IP port */
113
#define T4_FILTER_IP_DPORT 0x20
/* Destination IP port */
114
#define T4_FILTER_FCoE 0x40
/* Fibre Channel over Ethernet packet */
115
#define T4_FILTER_PORT 0x80
/* Physical ingress port */
116
#define T4_FILTER_VNIC 0x100
/* See the IC_* bits towards the end */
117
#define T4_FILTER_VLAN 0x200
/* VLAN ID */
118
#define T4_FILTER_IP_TOS 0x400
/* IPv4 TOS/IPv6 Traffic Class */
119
#define T4_FILTER_IP_PROTO 0x800
/* IP protocol */
120
#define T4_FILTER_ETH_TYPE 0x1000
/* Ethernet Type */
121
#define T4_FILTER_MAC_IDX 0x2000
/* MPS MAC address match index */
122
#define T4_FILTER_MPS_HIT_TYPE 0x4000
/* MPS match type */
123
#define T4_FILTER_IP_FRAGMENT 0x8000
/* IP fragment */
124
/*
125
* T4_FILTER_VNIC's real meaning depends on the ingress config.
126
*/
127
#define T4_FILTER_IC_OVLAN 0
/* outer VLAN */
128
#define T4_FILTER_IC_VNIC 0x80000000
/* VNIC id (PF/VF) */
129
#define T4_FILTER_IC_ENCAP 0x40000000
130
131
/* Filter action */
132
enum
{
133
FILTER_PASS
= 0,
/* default */
134
FILTER_DROP
,
135
FILTER_SWITCH
136
};
137
138
/* 802.1q manipulation on FILTER_SWITCH */
139
enum
{
140
VLAN_NOCHANGE
= 0,
/* default */
141
VLAN_REMOVE
,
142
VLAN_INSERT
,
143
VLAN_REWRITE
144
};
145
146
/* MPS match type */
147
enum
{
148
UCAST_EXACT
= 0,
/* exact unicast match */
149
UCAST_HASH
= 1,
/* inexact (hashed) unicast match */
150
MCAST_EXACT
= 2,
/* exact multicast match */
151
MCAST_HASH
= 3,
/* inexact (hashed) multicast match */
152
PROMISC
= 4,
/* no match but port is promiscuous */
153
HYPPROMISC
= 5,
/* port is hypervisor-promisuous + not bcast */
154
BCAST
= 6,
/* broadcast packet */
155
};
156
157
/* Rx steering */
158
enum
{
159
DST_MODE_QUEUE
,
/* queue is directly specified by filter */
160
DST_MODE_RSS_QUEUE
,
/* filter specifies RSS entry containing queue */
161
DST_MODE_RSS
,
/* queue selected by default RSS hash lookup */
162
DST_MODE_FILT_RSS
/* queue selected by hashing in filter-specified
163
RSS subtable */
164
};
165
166
enum
{
167
NAT_MODE_NONE
= 0,
/* No NAT performed */
168
NAT_MODE_DIP
,
/* NAT on Dst IP */
169
NAT_MODE_DIP_DP
,
/* NAT on Dst IP, Dst Port */
170
NAT_MODE_DIP_DP_SIP
,
/* NAT on Dst IP, Dst Port and Src IP */
171
NAT_MODE_DIP_DP_SP
,
/* NAT on Dst IP, Dst Port and Src Port */
172
NAT_MODE_SIP_SP
,
/* NAT on Src IP and Src Port */
173
NAT_MODE_DIP_SIP_SP
,
/* NAT on Dst IP, Src IP and Src Port */
174
NAT_MODE_ALL
/* NAT on entire 4-tuple */
175
};
176
177
struct
t4_filter_tuple
{
178
/*
179
* These are always available.
180
*/
181
uint8_t
sip
[16];
/* source IP address (IPv4 in [3:0]) */
182
uint8_t
dip
[16];
/* destination IP address (IPv4 in [3:0]) */
183
uint16_t
sport
;
/* source port */
184
uint16_t
dport
;
/* destination port */
185
186
/*
187
* A combination of these (up to 36 bits) is available. TP_VLAN_PRI_MAP
188
* is used to select the global mode and all filters are limited to the
189
* set of fields allowed by the global mode.
190
*/
191
uint16_t
vnic
;
/* VNIC id (PF/VF) or outer VLAN tag */
192
uint16_t
vlan
;
/* VLAN tag */
193
uint16_t
ethtype
;
/* Ethernet type */
194
uint8_t
tos
;
/* TOS/Traffic Type */
195
uint8_t
proto
;
/* protocol type */
196
uint32_t
fcoe
:1;
/* FCoE packet */
197
uint32_t
iport
:3;
/* ingress port */
198
uint32_t
matchtype
:3;
/* MPS match type */
199
uint32_t
frag
:1;
/* fragmentation extension header */
200
uint32_t
macidx
:9;
/* exact match MAC index */
201
uint32_t
vlan_vld
:1;
/* VLAN valid */
202
uint32_t
ovlan_vld
:1;
/* outer VLAN tag valid, value in "vnic" */
203
uint32_t
pfvf_vld
:1;
/* VNIC id (PF/VF) valid, value in "vnic" */
204
};
205
206
struct
t4_filter_specification
{
207
uint32_t
hitcnts
:1;
/* count filter hits in TCB */
208
uint32_t
prio
:1;
/* filter has priority over active/server */
209
uint32_t
type
:1;
/* 0 => IPv4, 1 => IPv6 */
210
uint32_t
hash
:1;
/* 0 => LE TCAM, 1 => Hash */
211
uint32_t
action
:2;
/* drop, pass, switch */
212
uint32_t
rpttid
:1;
/* report TID in RSS hash field */
213
uint32_t
dirsteer
:1;
/* 0 => RSS, 1 => steer to iq */
214
uint32_t
iq
:10;
/* ingress queue */
215
uint32_t
maskhash
:1;
/* dirsteer=0: steer to an RSS sub-region */
216
uint32_t
dirsteerhash
:1;
/* dirsteer=1: 0 => TCB contains RSS hash */
217
/* 1 => TCB contains IQ ID */
218
219
/*
220
* Switch proxy/rewrite fields. An ingress packet which matches a
221
* filter with "switch" set will be looped back out as an egress
222
* packet -- potentially with some Ethernet header rewriting.
223
*/
224
uint32_t
eport
:2;
/* egress port to switch packet out */
225
uint32_t
newdmac
:1;
/* rewrite destination MAC address */
226
uint32_t
newsmac
:1;
/* rewrite source MAC address */
227
uint32_t
swapmac
:1;
/* swap SMAC/DMAC for loopback packet */
228
uint32_t
newvlan
:2;
/* rewrite VLAN Tag */
229
uint32_t
nat_mode
:3;
/* NAT operation mode */
230
uint32_t
nat_flag_chk
:1;
/* check TCP flags before NAT'ing */
231
uint32_t
nat_seq_chk
;
/* sequence value to use for NAT check*/
232
uint8_t
dmac
[ETHER_ADDR_LEN];
/* new destination MAC address */
233
uint8_t
smac
[ETHER_ADDR_LEN];
/* new source MAC address */
234
uint16_t
vlan
;
/* VLAN Tag to insert */
235
236
uint8_t
nat_dip
[16];
/* destination IP to use after NAT'ing */
237
uint8_t
nat_sip
[16];
/* source IP to use after NAT'ing */
238
uint16_t
nat_dport
;
/* destination port to use after NAT'ing */
239
uint16_t
nat_sport
;
/* source port to use after NAT'ing */
240
241
/*
242
* Filter rule value/mask pairs.
243
*/
244
struct
t4_filter_tuple
val
;
245
struct
t4_filter_tuple
mask
;
246
};
247
248
struct
t4_filter
{
249
uint32_t
idx
;
250
uint16_t
l2tidx
;
251
uint16_t
smtidx
;
252
uint64_t
hits
;
253
struct
t4_filter_specification
fs
;
254
};
255
256
/* Tx Scheduling Class parameters */
257
struct
t4_sched_class_params
{
258
int8_t
level
;
/* scheduler hierarchy level */
259
int8_t
mode
;
/* per-class or per-flow */
260
int8_t
rateunit
;
/* bit or packet rate */
261
int8_t
ratemode
;
/* %port relative or kbps absolute */
262
int8_t
channel
;
/* scheduler channel [0..N] */
263
int8_t
cl
;
/* scheduler class [0..N] */
264
int32_t
minrate
;
/* minimum rate */
265
int32_t
maxrate
;
/* maximum rate */
266
int16_t
weight
;
/* percent weight */
267
int16_t
pktsize
;
/* average packet size */
268
};
269
270
/*
271
* Support for "sched-class" command to allow a TX Scheduling Class to be
272
* programmed with various parameters.
273
*/
274
struct
t4_sched_params
{
275
int8_t
subcmd
;
/* sub-command */
276
int8_t
type
;
/* packet or flow */
277
union
{
278
struct
{
/* sub-command SCHED_CLASS_CONFIG */
279
int8_t
minmax
;
/* minmax enable */
280
}
config
;
281
struct
t4_sched_class_params
params
;
282
uint8_t
reserved
[6 + 8 * 8];
283
}
u
;
284
};
285
286
enum
{
287
SCHED_CLASS_SUBCMD_CONFIG
,
/* config sub-command */
288
SCHED_CLASS_SUBCMD_PARAMS
,
/* params sub-command */
289
};
290
291
enum
{
292
SCHED_CLASS_TYPE_PACKET
,
293
};
294
295
enum
{
296
SCHED_CLASS_LEVEL_CL_RL
,
/* class rate limiter */
297
SCHED_CLASS_LEVEL_CL_WRR
,
/* class weighted round robin */
298
SCHED_CLASS_LEVEL_CH_RL
,
/* channel rate limiter */
299
};
300
301
enum
{
302
SCHED_CLASS_MODE_CLASS
,
/* per-class scheduling */
303
SCHED_CLASS_MODE_FLOW
,
/* per-flow scheduling */
304
};
305
306
enum
{
307
SCHED_CLASS_RATEUNIT_BITS
,
/* bit rate scheduling */
308
SCHED_CLASS_RATEUNIT_PKTS
,
/* packet rate scheduling */
309
};
310
311
enum
{
312
SCHED_CLASS_RATEMODE_REL
,
/* percent of port bandwidth */
313
SCHED_CLASS_RATEMODE_ABS
,
/* Kb/s */
314
};
315
316
/*
317
* Support for "sched_queue" command to allow one or more NIC TX Queues to be
318
* bound to a TX Scheduling Class.
319
*/
320
struct
t4_sched_queue
{
321
uint8_t
port
;
322
int8_t
queue
;
/* queue index; -1 => all queues */
323
int8_t
cl
;
/* class index; -1 => unbind */
324
};
325
326
#define T4_SGE_CONTEXT_SIZE 24
327
enum
{
328
SGE_CONTEXT_EGRESS
,
329
SGE_CONTEXT_INGRESS
,
330
SGE_CONTEXT_FLM
,
331
SGE_CONTEXT_CNM
332
};
333
334
struct
t4_sge_context
{
335
uint32_t
mem_id
;
336
uint32_t
cid
;
337
uint32_t
data
[
T4_SGE_CONTEXT_SIZE
/ 4];
338
};
339
340
struct
t4_mem_range
{
341
uint32_t
addr
;
342
uint32_t
len
;
343
uint32_t *
data
;
344
};
345
346
#define T4_TRACE_LEN 112
347
struct
t4_trace_params
{
348
uint32_t
data
[
T4_TRACE_LEN
/ 4];
349
uint32_t
mask
[
T4_TRACE_LEN
/ 4];
350
uint16_t
snap_len
;
351
uint16_t
min_len
;
352
uint8_t
skip_ofst
;
353
uint8_t
skip_len
;
354
uint8_t
invert
;
355
uint8_t
port
;
356
};
357
358
struct
t4_tracer
{
359
uint8_t
idx
;
360
uint8_t
enabled
;
361
uint8_t
valid
;
362
struct
t4_trace_params
tp
;
363
};
364
365
struct
t4_cudbg_dump
{
366
uint8_t
wr_flash
;
367
uint8_t
bitmap
[16];
368
uint32_t
len
;
369
uint8_t *
data
;
370
};
371
372
enum
{
373
OPEN_TYPE_LISTEN
=
'L'
,
374
OPEN_TYPE_ACTIVE
=
'A'
,
375
OPEN_TYPE_PASSIVE
=
'P'
,
376
OPEN_TYPE_DONTCARE
=
'D'
,
377
};
378
379
struct
offload_settings
{
380
int8_t
offload
;
381
int8_t
rx_coalesce
;
382
int8_t
cong_algo
;
383
int8_t
sched_class
;
384
int8_t
tstamp
;
385
int8_t
sack
;
386
int8_t
nagle
;
387
int8_t
ecn
;
388
int8_t
ddp
;
389
int8_t
tls
;
390
int16_t
txq
;
391
int16_t
rxq
;
392
int16_t
mss
;
393
};
394
395
struct
offload_rule
{
396
char
open_type
;
397
struct
offload_settings
settings
;
398
struct
bpf_program
bpf_prog
;
/* compiled program/filter */
399
};
400
401
/*
402
* An offload policy consists of a set of rules matched in sequence. The
403
* settings of the first rule that matches are applied to that connection.
404
*/
405
struct
t4_offload_policy
{
406
uint32_t
nrules
;
407
struct
offload_rule
*
rule
;
408
};
409
410
/* Address/mask entry in the CLIP. FW_CLIP2_CMD is aware of the mask. */
411
struct
t4_clip_addr
{
412
uint8_t
addr
[16];
413
uint8_t
mask
[16];
414
};
415
416
#define CHELSIO_T4_GETREG _IOWR('f', T4_GETREG, struct t4_reg)
417
#define CHELSIO_T4_SETREG _IOW('f', T4_SETREG, struct t4_reg)
418
#define CHELSIO_T4_REGDUMP _IOWR('f', T4_REGDUMP, struct t4_regdump)
419
#define CHELSIO_T4_GET_FILTER_MODE _IOWR('f', T4_GET_FILTER_MODE, uint32_t)
420
#define CHELSIO_T4_SET_FILTER_MODE _IOW('f', T4_SET_FILTER_MODE, uint32_t)
421
#define CHELSIO_T4_GET_FILTER _IOWR('f', T4_GET_FILTER, struct t4_filter)
422
#define CHELSIO_T4_SET_FILTER _IOWR('f', T4_SET_FILTER, struct t4_filter)
423
#define CHELSIO_T4_DEL_FILTER _IOW('f', T4_DEL_FILTER, struct t4_filter)
424
#define CHELSIO_T4_GET_SGE_CONTEXT _IOWR('f', T4_GET_SGE_CONTEXT, \
425
struct t4_sge_context)
426
#define CHELSIO_T4_LOAD_FW _IOW('f', T4_LOAD_FW, struct t4_data)
427
#define CHELSIO_T4_GET_MEM _IOW('f', T4_GET_MEM, struct t4_mem_range)
428
#define CHELSIO_T4_GET_I2C _IOWR('f', T4_GET_I2C, struct t4_i2c_data)
429
#define CHELSIO_T4_CLEAR_STATS _IOW('f', T4_CLEAR_STATS, uint32_t)
430
#define CHELSIO_T4_SCHED_CLASS _IOW('f', T4_SET_SCHED_CLASS, \
431
struct t4_sched_params)
432
#define CHELSIO_T4_SCHED_QUEUE _IOW('f', T4_SET_SCHED_QUEUE, \
433
struct t4_sched_queue)
434
#define CHELSIO_T4_GET_TRACER _IOWR('f', T4_GET_TRACER, struct t4_tracer)
435
#define CHELSIO_T4_SET_TRACER _IOW('f', T4_SET_TRACER, struct t4_tracer)
436
#define CHELSIO_T4_LOAD_CFG _IOW('f', T4_LOAD_CFG, struct t4_data)
437
#define CHELSIO_T4_LOAD_BOOT _IOW('f', T4_LOAD_BOOT, struct t4_bootrom)
438
#define CHELSIO_T4_LOAD_BOOTCFG _IOW('f', T4_LOAD_BOOTCFG, struct t4_data)
439
#define CHELSIO_T4_CUDBG_DUMP _IOWR('f', T4_CUDBG_DUMP, struct t4_cudbg_dump)
440
#define CHELSIO_T4_SET_OFLD_POLICY _IOW('f', T4_SET_OFLD_POLICY, struct t4_offload_policy)
441
#define CHELSIO_T4_SET_FILTER_MASK _IOW('f', T4_SET_FILTER_MASK, uint32_t)
442
#define CHELSIO_T4_HOLD_CLIP_ADDR _IOW('f', T4_HOLD_CLIP_ADDR, struct t4_clip_addr)
443
#define CHELSIO_T4_RELEASE_CLIP_ADDR _IOW('f', T4_RELEASE_CLIP_ADDR, struct t4_clip_addr)
444
#endif
offload_rule
Definition:
t4_ioctl.h:395
offload_rule::settings
struct offload_settings settings
Definition:
t4_ioctl.h:397
offload_rule::open_type
char open_type
Definition:
t4_ioctl.h:396
offload_rule::bpf_prog
struct bpf_program bpf_prog
Definition:
t4_ioctl.h:398
offload_settings
Definition:
t4_ioctl.h:379
offload_settings::ecn
int8_t ecn
Definition:
t4_ioctl.h:387
offload_settings::txq
int16_t txq
Definition:
t4_ioctl.h:390
offload_settings::cong_algo
int8_t cong_algo
Definition:
t4_ioctl.h:382
offload_settings::tstamp
int8_t tstamp
Definition:
t4_ioctl.h:384
offload_settings::mss
int16_t mss
Definition:
t4_ioctl.h:392
offload_settings::sack
int8_t sack
Definition:
t4_ioctl.h:385
offload_settings::tls
int8_t tls
Definition:
t4_ioctl.h:389
offload_settings::ddp
int8_t ddp
Definition:
t4_ioctl.h:388
offload_settings::offload
int8_t offload
Definition:
t4_ioctl.h:380
offload_settings::rxq
int16_t rxq
Definition:
t4_ioctl.h:391
offload_settings::sched_class
int8_t sched_class
Definition:
t4_ioctl.h:383
offload_settings::rx_coalesce
int8_t rx_coalesce
Definition:
t4_ioctl.h:381
offload_settings::nagle
int8_t nagle
Definition:
t4_ioctl.h:386
t4_bootrom
Definition:
t4_ioctl.h:90
t4_bootrom::len
uint32_t len
Definition:
t4_ioctl.h:93
t4_bootrom::pf_offset
uint32_t pf_offset
Definition:
t4_ioctl.h:91
t4_bootrom::data
uint8_t * data
Definition:
t4_ioctl.h:94
t4_bootrom::pfidx_addr
uint32_t pfidx_addr
Definition:
t4_ioctl.h:92
t4_clip_addr
Definition:
t4_ioctl.h:411
t4_clip_addr::addr
uint8_t addr[16]
Definition:
t4_ioctl.h:412
t4_clip_addr::mask
uint8_t mask[16]
Definition:
t4_ioctl.h:413
t4_cudbg_dump
Definition:
t4_ioctl.h:365
t4_cudbg_dump::data
uint8_t * data
Definition:
t4_ioctl.h:369
t4_cudbg_dump::len
uint32_t len
Definition:
t4_ioctl.h:368
t4_cudbg_dump::wr_flash
uint8_t wr_flash
Definition:
t4_ioctl.h:366
t4_cudbg_dump::bitmap
uint8_t bitmap[16]
Definition:
t4_ioctl.h:367
t4_data
Definition:
t4_ioctl.h:85
t4_data::len
uint32_t len
Definition:
t4_ioctl.h:86
t4_data::data
uint8_t * data
Definition:
t4_ioctl.h:87
t4_filter_specification
Definition:
t4_ioctl.h:206
t4_filter_specification::swapmac
uint32_t swapmac
Definition:
t4_ioctl.h:227
t4_filter_specification::val
struct t4_filter_tuple val
Definition:
t4_ioctl.h:244
t4_filter_specification::prio
uint32_t prio
Definition:
t4_ioctl.h:208
t4_filter_specification::nat_dip
uint8_t nat_dip[16]
Definition:
t4_ioctl.h:236
t4_filter_specification::nat_flag_chk
uint32_t nat_flag_chk
Definition:
t4_ioctl.h:230
t4_filter_specification::newvlan
uint32_t newvlan
Definition:
t4_ioctl.h:228
t4_filter_specification::type
uint32_t type
Definition:
t4_ioctl.h:209
t4_filter_specification::action
uint32_t action
Definition:
t4_ioctl.h:211
t4_filter_specification::hitcnts
uint32_t hitcnts
Definition:
t4_ioctl.h:207
t4_filter_specification::nat_mode
uint32_t nat_mode
Definition:
t4_ioctl.h:229
t4_filter_specification::nat_sport
uint16_t nat_sport
Definition:
t4_ioctl.h:239
t4_filter_specification::iq
uint32_t iq
Definition:
t4_ioctl.h:214
t4_filter_specification::newsmac
uint32_t newsmac
Definition:
t4_ioctl.h:226
t4_filter_specification::nat_dport
uint16_t nat_dport
Definition:
t4_ioctl.h:238
t4_filter_specification::mask
struct t4_filter_tuple mask
Definition:
t4_ioctl.h:245
t4_filter_specification::dirsteer
uint32_t dirsteer
Definition:
t4_ioctl.h:213
t4_filter_specification::newdmac
uint32_t newdmac
Definition:
t4_ioctl.h:225
t4_filter_specification::maskhash
uint32_t maskhash
Definition:
t4_ioctl.h:215
t4_filter_specification::dmac
uint8_t dmac[ETHER_ADDR_LEN]
Definition:
t4_ioctl.h:232
t4_filter_specification::nat_sip
uint8_t nat_sip[16]
Definition:
t4_ioctl.h:237
t4_filter_specification::dirsteerhash
uint32_t dirsteerhash
Definition:
t4_ioctl.h:216
t4_filter_specification::smac
uint8_t smac[ETHER_ADDR_LEN]
Definition:
t4_ioctl.h:233
t4_filter_specification::nat_seq_chk
uint32_t nat_seq_chk
Definition:
t4_ioctl.h:231
t4_filter_specification::rpttid
uint32_t rpttid
Definition:
t4_ioctl.h:212
t4_filter_specification::vlan
uint16_t vlan
Definition:
t4_ioctl.h:234
t4_filter_specification::hash
uint32_t hash
Definition:
t4_ioctl.h:210
t4_filter_specification::eport
uint32_t eport
Definition:
t4_ioctl.h:224
t4_filter_tuple
Definition:
t4_ioctl.h:177
t4_filter_tuple::dport
uint16_t dport
Definition:
t4_ioctl.h:184
t4_filter_tuple::frag
uint32_t frag
Definition:
t4_ioctl.h:199
t4_filter_tuple::dip
uint8_t dip[16]
Definition:
t4_ioctl.h:182
t4_filter_tuple::sport
uint16_t sport
Definition:
t4_ioctl.h:183
t4_filter_tuple::ovlan_vld
uint32_t ovlan_vld
Definition:
t4_ioctl.h:202
t4_filter_tuple::iport
uint32_t iport
Definition:
t4_ioctl.h:197
t4_filter_tuple::sip
uint8_t sip[16]
Definition:
t4_ioctl.h:181
t4_filter_tuple::vnic
uint16_t vnic
Definition:
t4_ioctl.h:191
t4_filter_tuple::tos
uint8_t tos
Definition:
t4_ioctl.h:194
t4_filter_tuple::vlan_vld
uint32_t vlan_vld
Definition:
t4_ioctl.h:201
t4_filter_tuple::fcoe
uint32_t fcoe
Definition:
t4_ioctl.h:196
t4_filter_tuple::macidx
uint32_t macidx
Definition:
t4_ioctl.h:200
t4_filter_tuple::proto
uint8_t proto
Definition:
t4_ioctl.h:195
t4_filter_tuple::vlan
uint16_t vlan
Definition:
t4_ioctl.h:192
t4_filter_tuple::matchtype
uint32_t matchtype
Definition:
t4_ioctl.h:198
t4_filter_tuple::ethtype
uint16_t ethtype
Definition:
t4_ioctl.h:193
t4_filter_tuple::pfvf_vld
uint32_t pfvf_vld
Definition:
t4_ioctl.h:203
t4_filter
Definition:
t4_ioctl.h:248
t4_filter::l2tidx
uint16_t l2tidx
Definition:
t4_ioctl.h:250
t4_filter::smtidx
uint16_t smtidx
Definition:
t4_ioctl.h:251
t4_filter::fs
struct t4_filter_specification fs
Definition:
t4_ioctl.h:253
t4_filter::hits
uint64_t hits
Definition:
t4_ioctl.h:252
t4_filter::idx
uint32_t idx
Definition:
t4_ioctl.h:249
t4_i2c_data
Definition:
t4_ioctl.h:97
t4_i2c_data::data
uint8_t data[8]
Definition:
t4_ioctl.h:102
t4_i2c_data::offset
uint8_t offset
Definition:
t4_ioctl.h:100
t4_i2c_data::len
uint8_t len
Definition:
t4_ioctl.h:101
t4_i2c_data::dev_addr
uint8_t dev_addr
Definition:
t4_ioctl.h:99
t4_i2c_data::port_id
uint8_t port_id
Definition:
t4_ioctl.h:98
t4_mem_range
Definition:
t4_ioctl.h:340
t4_mem_range::len
uint32_t len
Definition:
t4_ioctl.h:342
t4_mem_range::data
uint32_t * data
Definition:
t4_ioctl.h:343
t4_mem_range::addr
uint32_t addr
Definition:
t4_ioctl.h:341
t4_offload_policy
Definition:
t4_ioctl.h:405
t4_offload_policy::nrules
uint32_t nrules
Definition:
t4_ioctl.h:406
t4_offload_policy::rule
struct offload_rule * rule
Definition:
t4_ioctl.h:407
t4_reg
Definition:
t4_ioctl.h:71
t4_reg::size
uint32_t size
Definition:
t4_ioctl.h:73
t4_reg::val
uint64_t val
Definition:
t4_ioctl.h:74
t4_reg::addr
uint32_t addr
Definition:
t4_ioctl.h:72
t4_regdump
Definition:
t4_ioctl.h:79
t4_regdump::version
uint32_t version
Definition:
t4_ioctl.h:80
t4_regdump::len
uint32_t len
Definition:
t4_ioctl.h:81
t4_regdump::data
uint32_t * data
Definition:
t4_ioctl.h:82
t4_sched_class_params
Definition:
t4_ioctl.h:257
t4_sched_class_params::maxrate
int32_t maxrate
Definition:
t4_ioctl.h:265
t4_sched_class_params::pktsize
int16_t pktsize
Definition:
t4_ioctl.h:267
t4_sched_class_params::weight
int16_t weight
Definition:
t4_ioctl.h:266
t4_sched_class_params::rateunit
int8_t rateunit
Definition:
t4_ioctl.h:260
t4_sched_class_params::channel
int8_t channel
Definition:
t4_ioctl.h:262
t4_sched_class_params::minrate
int32_t minrate
Definition:
t4_ioctl.h:264
t4_sched_class_params::level
int8_t level
Definition:
t4_ioctl.h:258
t4_sched_class_params::mode
int8_t mode
Definition:
t4_ioctl.h:259
t4_sched_class_params::cl
int8_t cl
Definition:
t4_ioctl.h:263
t4_sched_class_params::ratemode
int8_t ratemode
Definition:
t4_ioctl.h:261
t4_sched_params
Definition:
t4_ioctl.h:274
t4_sched_params::subcmd
int8_t subcmd
Definition:
t4_ioctl.h:275
t4_sched_params::params
struct t4_sched_class_params params
Definition:
t4_ioctl.h:281
t4_sched_params::type
int8_t type
Definition:
t4_ioctl.h:276
t4_sched_params::config
struct t4_sched_params::@94::@95 config
t4_sched_params::reserved
uint8_t reserved[6+8 *8]
Definition:
t4_ioctl.h:282
t4_sched_params::u
union t4_sched_params::@94 u
t4_sched_params::minmax
int8_t minmax
Definition:
t4_ioctl.h:279
t4_sched_queue
Definition:
t4_ioctl.h:320
t4_sched_queue::queue
int8_t queue
Definition:
t4_ioctl.h:322
t4_sched_queue::port
uint8_t port
Definition:
t4_ioctl.h:321
t4_sched_queue::cl
int8_t cl
Definition:
t4_ioctl.h:323
t4_sge_context
Definition:
t4_ioctl.h:334
t4_sge_context::cid
uint32_t cid
Definition:
t4_ioctl.h:336
t4_sge_context::data
uint32_t data[T4_SGE_CONTEXT_SIZE/4]
Definition:
t4_ioctl.h:337
t4_sge_context::mem_id
uint32_t mem_id
Definition:
t4_ioctl.h:335
t4_trace_params
Definition:
t4_ioctl.h:347
t4_trace_params::mask
uint32_t mask[T4_TRACE_LEN/4]
Definition:
t4_ioctl.h:349
t4_trace_params::port
uint8_t port
Definition:
t4_ioctl.h:355
t4_trace_params::data
uint32_t data[T4_TRACE_LEN/4]
Definition:
t4_ioctl.h:348
t4_trace_params::skip_ofst
uint8_t skip_ofst
Definition:
t4_ioctl.h:352
t4_trace_params::skip_len
uint8_t skip_len
Definition:
t4_ioctl.h:353
t4_trace_params::invert
uint8_t invert
Definition:
t4_ioctl.h:354
t4_trace_params::snap_len
uint16_t snap_len
Definition:
t4_ioctl.h:350
t4_trace_params::min_len
uint16_t min_len
Definition:
t4_ioctl.h:351
t4_tracer
Definition:
t4_ioctl.h:358
t4_tracer::enabled
uint8_t enabled
Definition:
t4_ioctl.h:360
t4_tracer::valid
uint8_t valid
Definition:
t4_ioctl.h:361
t4_tracer::tp
struct t4_trace_params tp
Definition:
t4_ioctl.h:362
t4_tracer::idx
uint8_t idx
Definition:
t4_ioctl.h:359
VLAN_REMOVE
@ VLAN_REMOVE
Definition:
t4_ioctl.h:141
VLAN_INSERT
@ VLAN_INSERT
Definition:
t4_ioctl.h:142
VLAN_NOCHANGE
@ VLAN_NOCHANGE
Definition:
t4_ioctl.h:140
VLAN_REWRITE
@ VLAN_REWRITE
Definition:
t4_ioctl.h:143
T4_LOAD_BOOT
@ T4_LOAD_BOOT
Definition:
t4_ioctl.h:63
T4_SET_FILTER_MODE
@ T4_SET_FILTER_MODE
Definition:
t4_ioctl.h:48
T4_GET_TRACER
@ T4_GET_TRACER
Definition:
t4_ioctl.h:60
T4_GET_FILTER
@ T4_GET_FILTER
Definition:
t4_ioctl.h:49
T4_REGDUMP
@ T4_REGDUMP
Definition:
t4_ioctl.h:46
T4_SET_TRACER
@ T4_SET_TRACER
Definition:
t4_ioctl.h:61
T4_DEL_FILTER
@ T4_DEL_FILTER
Definition:
t4_ioctl.h:51
T4_SET_FILTER_MASK
@ T4_SET_FILTER_MASK
Definition:
t4_ioctl.h:66
T4_GETREG
@ T4_GETREG
Definition:
t4_ioctl.h:44
T4_SET_FILTER
@ T4_SET_FILTER
Definition:
t4_ioctl.h:50
T4_CLEAR_STATS
@ T4_CLEAR_STATS
Definition:
t4_ioctl.h:56
T4_GET_SGE_CONTEXT
@ T4_GET_SGE_CONTEXT
Definition:
t4_ioctl.h:52
T4_SET_OFLD_POLICY
@ T4_SET_OFLD_POLICY
Definition:
t4_ioctl.h:57
T4_LOAD_CFG
@ T4_LOAD_CFG
Definition:
t4_ioctl.h:62
T4_HOLD_CLIP_ADDR
@ T4_HOLD_CLIP_ADDR
Definition:
t4_ioctl.h:67
T4_GET_MEM
@ T4_GET_MEM
Definition:
t4_ioctl.h:54
T4_LOAD_BOOTCFG
@ T4_LOAD_BOOTCFG
Definition:
t4_ioctl.h:64
T4_GET_FILTER_MODE
@ T4_GET_FILTER_MODE
Definition:
t4_ioctl.h:47
T4_SET_SCHED_QUEUE
@ T4_SET_SCHED_QUEUE
Definition:
t4_ioctl.h:59
T4_RELEASE_CLIP_ADDR
@ T4_RELEASE_CLIP_ADDR
Definition:
t4_ioctl.h:68
T4_LOAD_FW
@ T4_LOAD_FW
Definition:
t4_ioctl.h:53
T4_SET_SCHED_CLASS
@ T4_SET_SCHED_CLASS
Definition:
t4_ioctl.h:58
T4_CUDBG_DUMP
@ T4_CUDBG_DUMP
Definition:
t4_ioctl.h:65
T4_GET_I2C
@ T4_GET_I2C
Definition:
t4_ioctl.h:55
T4_SETREG
@ T4_SETREG
Definition:
t4_ioctl.h:45
SCHED_CLASS_RATEUNIT_BITS
@ SCHED_CLASS_RATEUNIT_BITS
Definition:
t4_ioctl.h:307
SCHED_CLASS_RATEUNIT_PKTS
@ SCHED_CLASS_RATEUNIT_PKTS
Definition:
t4_ioctl.h:308
SCHED_CLASS_LEVEL_CL_WRR
@ SCHED_CLASS_LEVEL_CL_WRR
Definition:
t4_ioctl.h:297
SCHED_CLASS_LEVEL_CH_RL
@ SCHED_CLASS_LEVEL_CH_RL
Definition:
t4_ioctl.h:298
SCHED_CLASS_LEVEL_CL_RL
@ SCHED_CLASS_LEVEL_CL_RL
Definition:
t4_ioctl.h:296
DST_MODE_QUEUE
@ DST_MODE_QUEUE
Definition:
t4_ioctl.h:159
DST_MODE_RSS
@ DST_MODE_RSS
Definition:
t4_ioctl.h:161
DST_MODE_FILT_RSS
@ DST_MODE_FILT_RSS
Definition:
t4_ioctl.h:162
DST_MODE_RSS_QUEUE
@ DST_MODE_RSS_QUEUE
Definition:
t4_ioctl.h:160
SGE_CONTEXT_CNM
@ SGE_CONTEXT_CNM
Definition:
t4_ioctl.h:331
SGE_CONTEXT_EGRESS
@ SGE_CONTEXT_EGRESS
Definition:
t4_ioctl.h:328
SGE_CONTEXT_FLM
@ SGE_CONTEXT_FLM
Definition:
t4_ioctl.h:330
SGE_CONTEXT_INGRESS
@ SGE_CONTEXT_INGRESS
Definition:
t4_ioctl.h:329
SCHED_CLASS_TYPE_PACKET
@ SCHED_CLASS_TYPE_PACKET
Definition:
t4_ioctl.h:292
OPEN_TYPE_ACTIVE
@ OPEN_TYPE_ACTIVE
Definition:
t4_ioctl.h:374
OPEN_TYPE_LISTEN
@ OPEN_TYPE_LISTEN
Definition:
t4_ioctl.h:373
OPEN_TYPE_PASSIVE
@ OPEN_TYPE_PASSIVE
Definition:
t4_ioctl.h:375
OPEN_TYPE_DONTCARE
@ OPEN_TYPE_DONTCARE
Definition:
t4_ioctl.h:376
FILTER_SWITCH
@ FILTER_SWITCH
Definition:
t4_ioctl.h:135
FILTER_DROP
@ FILTER_DROP
Definition:
t4_ioctl.h:134
FILTER_PASS
@ FILTER_PASS
Definition:
t4_ioctl.h:133
UCAST_HASH
@ UCAST_HASH
Definition:
t4_ioctl.h:149
PROMISC
@ PROMISC
Definition:
t4_ioctl.h:152
MCAST_EXACT
@ MCAST_EXACT
Definition:
t4_ioctl.h:150
BCAST
@ BCAST
Definition:
t4_ioctl.h:154
HYPPROMISC
@ HYPPROMISC
Definition:
t4_ioctl.h:153
MCAST_HASH
@ MCAST_HASH
Definition:
t4_ioctl.h:151
UCAST_EXACT
@ UCAST_EXACT
Definition:
t4_ioctl.h:148
SCHED_CLASS_MODE_CLASS
@ SCHED_CLASS_MODE_CLASS
Definition:
t4_ioctl.h:302
SCHED_CLASS_MODE_FLOW
@ SCHED_CLASS_MODE_FLOW
Definition:
t4_ioctl.h:303
T4_TRACE_LEN
#define T4_TRACE_LEN
Definition:
t4_ioctl.h:346
NAT_MODE_DIP_DP_SP
@ NAT_MODE_DIP_DP_SP
Definition:
t4_ioctl.h:171
NAT_MODE_NONE
@ NAT_MODE_NONE
Definition:
t4_ioctl.h:167
NAT_MODE_DIP_DP
@ NAT_MODE_DIP_DP
Definition:
t4_ioctl.h:169
NAT_MODE_ALL
@ NAT_MODE_ALL
Definition:
t4_ioctl.h:174
NAT_MODE_SIP_SP
@ NAT_MODE_SIP_SP
Definition:
t4_ioctl.h:172
NAT_MODE_DIP
@ NAT_MODE_DIP
Definition:
t4_ioctl.h:168
NAT_MODE_DIP_SIP_SP
@ NAT_MODE_DIP_SIP_SP
Definition:
t4_ioctl.h:173
NAT_MODE_DIP_DP_SIP
@ NAT_MODE_DIP_DP_SIP
Definition:
t4_ioctl.h:170
T4_SGE_CONTEXT_SIZE
#define T4_SGE_CONTEXT_SIZE
Definition:
t4_ioctl.h:326
SCHED_CLASS_RATEMODE_REL
@ SCHED_CLASS_RATEMODE_REL
Definition:
t4_ioctl.h:312
SCHED_CLASS_RATEMODE_ABS
@ SCHED_CLASS_RATEMODE_ABS
Definition:
t4_ioctl.h:313
SCHED_CLASS_SUBCMD_PARAMS
@ SCHED_CLASS_SUBCMD_PARAMS
Definition:
t4_ioctl.h:288
SCHED_CLASS_SUBCMD_CONFIG
@ SCHED_CLASS_SUBCMD_CONFIG
Definition:
t4_ioctl.h:287
dev
cxgbe
t4_ioctl.h
Generated by
1.9.3