/*
* 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 _IPP_IPGPC_CLASSIFIER_OBJECTS_H
#define _IPP_IPGPC_CLASSIFIER_OBJECTS_H
#ifdef __cplusplus
extern "C" {
#endif
/* common objects and defines used by the ipgpc code base */
/* default wildcard and unspecified value for selectors */
#define IPGPC_UNSPECIFIED 0
/* trie id's */
#define IPGPC_TRIE_SPORTID 0
/*
* IPv6 trie id's
* note: tries for SPORT, DPORT are shared between IPv4 and IPv6 filters
*/
/* ba table id's */
/* table id's */
/* Match types for selector searching */
#define NORMAL_MATCH 0
/* match masks */
/* used when inserting values into selector structures */
/* filter definition structure */
typedef struct ipgpc_filter_s {
/* exact match selectors */
/*
* packet direction
* value = IPP_LOCAL_IN | IPP_LOCAL_OUT |
* IPP_FWD_IN | IPP_FWD_OUT | 0 for wildcard
*/
/* non-exact match selectors */
/* IP Addresses are represented as IPV6 address structures */
/* filter ranking variables */
/*
* filter_type accepted values =
* IPGPC_GENERIC_FLTR | IPGPC_V4_FLTR |
* IPGPC_V6_FLTR
*/
typedef struct ipgpc_class_stats_s {
/* linked list Element node structure */
typedef struct element_node_s {
int id;
/* trie node structure */
typedef struct node_s {
} node_t;
/* hashtable node structure */
typedef struct ht_node_s {
int info;
} ht_node_t;
/* behavior aggregate table element structure */
typedef struct ba_table_element_s {
/* behavior aggregate table structure */
typedef struct ba_table_s {
} ba_table_t;
/* selector information structure */
typedef struct sel_info_s {
} sel_info_t;
/* selector statistics structure */
typedef struct sel_stats_s {
} sel_stats_t;
/* identification structure for a trie */
typedef struct trie_id_s {
} trie_id_t;
/* identification structure for a table */
typedef struct table_id_s {
} table_id_t;
/* identification structure for a ba_table */
typedef struct ba_table_id_s {
/* class definition structure */
typedef struct ipgpc_class_s {
/* filter id association data structure */
typedef struct fid_s {
} fid_t;
/* class_id structure */
typedef struct cid_s {
} cid_t;
/* ipp_stat global stats structure */
typedef struct globalstats_s {
/* ipp_stat class stats structure */
typedef struct classstats_s {
} classstats_t;
/* matching hash table element */
typedef struct ht_match_s {
} ht_match_t;
extern kmem_cache_t *ht_node_cache;
extern kmem_cache_t *element_node_cache;
extern kmem_cache_t *ht_match_cache;
extern kmem_cache_t *trie_node_cache;
#ifdef __cplusplus
}
#endif
#endif /* _IPP_IPGPC_CLASSIFIER_OBJECTS_H */