/* ****************************************************************************** * INTERPEAK API HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipnet_classifier.h,v $ $Revision: 1.6.156.1 $ * $Source: /home/interpeak/CVSRoot/ipnet2/src/ipnet_classifier.h,v $ * $Author: svc-cmnet $ $Date: 2013-03-13 07:45:36 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Kenneth Jonsson ****************************************************************************** */ #ifndef IPNET_CLASSIFIER_H #define IPNET_CLASSIFIER_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ #include "ipnet_config.h" /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include #include #include #include #include #include "ipnet_qos.h" #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ #define IPNET_CLASSIFIER_INVALID_TAG (-1) /* **************************************************************************** * 5 TYPES **************************************************************************** */ /* Root structure for each classifier */ typedef struct Ipnet_classifier_struct { Ipcom_list rules; Ipcom_hash *cache; } Ipnet_classifier; /* **************************************************************************** * 6 FUNCTIONS **************************************************************************** */ IP_GLOBAL int ipnet_classifier_pkt_to_tag(Ipnet_classifier *c, Ipcom_pkt *pkt); IP_GLOBAL int ipnet_classifier_set_tag(Ipnet_classifier *c, int id, int tag); IP_GLOBAL void ipnet_classifier_invalidate_tag(Ipnet_classifier *c, int tag); IP_GLOBAL int ipnet_classifier_get_smallest_unused_id(Ipnet_classifier *c); IP_GLOBAL int ipnet_classifier_add_mapping(Ipnet_classifier *c, struct Ipnet_classifier_rule *rule, int id); IP_GLOBAL int ipnet_classifier_del_mapping(Ipnet_classifier *c, int id); IP_GLOBAL Ipnet_classifier * ipnet_classifier_new(void); IP_GLOBAL void ipnet_classifier_delete(Ipnet_classifier *c); #if defined(IPNET_USE_DIFFSERV) && !defined(IPNET_DIFFSERV_CLASSIFIER_MODE_BA) IP_GLOBAL int ipnet_classifier_get_filter(Ipnet_classifier *c, struct Ipnet_ds_get_infor *gi); IP_GLOBAL int ipnet_classifier_get_next_filter(Ipnet_classifier *c, struct Ipnet_ds_get_infor *gi); #endif #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */