nxge_flow.h revision 4df55fde49134f9735f84011f23a767c75e393c7
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_NXGE_NXGE_FLOW_H
#define _SYS_NXGE_NXGE_FLOW_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct tcpip4_spec_s {
typedef struct tcpip6_spec_s {
typedef struct udpip4_spec_s {
typedef struct udpip6_spec_s {
typedef struct ahip4_spec_s {
} ahip4_spec_t;
typedef struct ahip6_spec_s {
} ahip6_spec_t;
typedef ahip4_spec_t espip4_spec_t;
typedef ahip6_spec_t espip6_spec_t;
typedef struct rawip4_spec_s {
typedef struct rawip6_spec_s {
typedef struct ether_spec_s {
} ether_spec_t;
#define FSPEC_IP4 1
#define FSPEC_IP6 2
typedef struct ip_user_spec_s {
typedef struct ip6_frag_spec_s {
typedef ether_spec_t arpip_spec_t;
typedef ether_spec_t ether_user_spec_t;
struct flow_spec_s {
union {
} __attribute__((packed));
typedef struct flow_spec_s flow_spec_t;
}
}
}
mask = 0x1f; \
}
mask = 0xff; \
}
struct flow_resource_s {
} __attribute__((packed));
typedef struct flow_resource_s flow_resource_t;
/* ioctl data structure and cmd types for configuring rx classification */
#define NXGE_RX_CLASS_GCHAN 0x01
#define NXGE_RX_CLASS_GRULE_CNT 0x02
#define NXGE_RX_CLASS_GRULE 0x03
#define NXGE_RX_CLASS_GRULE_ALL 0x04
#define NXGE_RX_CLASS_RULE_DEL 0x05
#define NXGE_RX_CLASS_RULE_INS 0x06
#define NXGE_PKT_DISCARD 0xffffffffffffffffULL
struct rx_class_cfg_s {
} __attribute__((packed));
typedef struct rx_class_cfg_s rx_class_cfg_t;
/*
* ioctl data structure and cmd types for configuring rx hash
* for IP tunneled traffic and symmetric mode.
*/
#define NXGE_IPTUN_CFG_ADD_CLS 0x07
#define NXGE_IPTUN_CFG_SET_HASH 0x08
#define NXGE_IPTUN_CFG_DEL_CLS 0x09
#define NXGE_IPTUN_CFG_GET_CLS 0x0a
#define NXGE_CLS_CFG_SET_SYM 0x0b
#define NXGE_CLS_CFG_GET_SYM 0x0c
#define IPTUN_PKT_IPV4 1
#define IPTUN_PKT_IPV6 2
#define IPTUN_PKT_GRE 3
#define IPTUN_PKT_GTP 4
#define OTHER_USR_PKT 5
#define SEL_L4B_0_3 0x0001
#define SEL_L4B_4_7 0x0002
#define SEL_L4B_8_11 0x0004
#define SEL_L4B_12_15 0x0008
#define SEL_L4B_16_19 0x0010
#define SEL_L4B_20_23 0x0020
#define SEL_L4B_24_27 0x0040
#define SEL_L4B_28_31 0x0080
#define SEL_L4B_32_35 0x0100
#define SEL_L4B_36_39 0x0200
#define HASH_IFPORT 0x0001
#define HASH_L2DA 0x0002
#define HASH_VLAN 0x0004
#define HASH_IPSA 0x0008
#define HASH_IPDA 0x0010
#define HASH_L3PROTO 0x0020
#define CLS_TCPV4 0x08
#define CLS_UDPV4 0x09
#define CLS_AHESPV4 0x0A
#define CLS_SCTPV4 0x0B
#define CLS_TCPV6 0x0C
#define CLS_UDPV6 0x0D
#define CLS_AHESPV6 0x0E
#define CLS_SCTPV6 0x0F
#define CLS_IPV6FRAG 0x1F
struct _iptun_cfg {
} __attribute__((packed));
typedef struct _iptun_cfg iptun_cfg_t;
struct _cfg_cmd {
} __attribute__((packed));
#ifdef __cplusplus
}
#endif
#endif /* _SYS_NXGE_NXGE_FLOW_H */