22 #ifndef __APPID_API_H__
23 #define __APPID_API_H__
34 #define APPID_SESSION_RESPONDER_MONITORED (1ULL << 0)
35 #define APPID_SESSION_INITIATOR_MONITORED (1ULL << 1)
36 #define APPID_SESSION_SPECIAL_MONITORED (1ULL << 2)
37 #define APPID_SESSION_INITIATOR_SEEN (1ULL << 3)
38 #define APPID_SESSION_RESPONDER_SEEN (1ULL << 4)
39 #define APPID_SESSION_DISCOVER_USER (1ULL << 5)
40 #define APPID_SESSION_HAS_DHCP_FP (1ULL << 6)
41 #define APPID_SESSION_HAS_DHCP_INFO (1ULL << 7)
42 #define APPID_SESSION_HAS_SMB_INFO (1ULL << 8)
43 #define APPID_SESSION_MID (1ULL << 9)
44 #define APPID_SESSION_OOO (1ULL << 10)
45 #define APPID_SESSION_SYN_RST (1ULL << 11)
50 #define APPID_SESSION_UDP_REVERSED (1ULL << 12)
51 #define APPID_SESSION_HTTP_SESSION (1ULL << 13)
54 #define APPID_SESSION_SERVICE_DETECTED (1ULL << 14)
57 #define APPID_SESSION_CLIENT_DETECTED (1ULL << 15)
59 #define APPID_SESSION_NOT_A_SERVICE (1ULL << 16)
61 #define APPID_SESSION_DECRYPTED (1ULL << 17)
62 #define APPID_SESSION_SERVICE_DELETED (1ULL << 18)
66 #define APPID_SESSION_CONTINUE (1ULL << 19)
68 #define APPID_SESSION_IGNORE_HOST (1ULL << 20)
70 #define APPID_SESSION_INCOMPATIBLE (1ULL << 21)
72 #define APPID_SESSION_CLIENT_GETS_SERVER_PACKETS (1ULL << 22)
74 #define APPID_SESSION_DISCOVER_APP (1ULL << 23)
76 #define APPID_SESSION_PORT_SERVICE_DONE (1ULL << 24)
77 #define APPID_SESSION_ADDITIONAL_PACKET (1ULL << 25)
78 #define APPID_SESSION_RESPONDER_CHECKED (1ULL << 26)
79 #define APPID_SESSION_INITIATOR_CHECKED (1ULL << 27)
80 #define APPID_SESSION_SSL_SESSION (1ULL << 28)
81 #define APPID_SESSION_LOGIN_SUCCEEDED (1ULL << 29)
83 #define APPID_SESSION_SPDY_SESSION (1ULL << 30)
84 #define APPID_SESSION_ENCRYPTED (1ULL << 31)
86 #define APPID_SESSION_APP_REINSPECT (1ULL << 32)
87 #define APPID_SESSION_RESPONSE_CODE_CHECKED (1ULL << 33)
88 #define APPID_SESSION_REXEC_STDERR (1ULL << 34)
89 #define APPID_SESSION_CHP_INSPECTING (1ULL << 35)
90 #define APPID_SESSION_STICKY_SERVICE (1ULL << 36)
91 #define APPID_SESSION_APP_REINSPECT_SSL (1ULL << 37)
93 #define APPID_SESSION_NO_TPI (1ULL << 38)
94 #define APPID_SESSION_IGNORE_FLOW (1ULL << 39)
95 #define APPID_SESSION_IGNORE_FLOW_LOGGED (1ULL << 40)
97 #define APPID_SESSION_EXPECTED_EVALUATE (1ULL << 41)
98 #define APPID_SESSION_HOST_CACHE_MATCHED (1ULL << 42)
99 #define APPID_SESSION_OOO_CHECK_TP (1ULL << 43)
101 #define APPID_SESSION_HTTP_TUNNEL (1ULL << 44)
102 #define APPID_SESSION_HTTP_CONNECT (1ULL << 45)
104 #define APPID_SESSION_IGNORE_ID_FLAGS (APPID_SESSION_IGNORE_FLOW | \
105 APPID_SESSION_NOT_A_SERVICE | \
106 APPID_SESSION_NO_TPI | \
107 APPID_SESSION_SERVICE_DETECTED | \
108 APPID_SESSION_PORT_SERVICE_DONE)
125 #define DHCP_OP55_MAX_SIZE 64
126 #define DHCP_OP60_MAX_SIZE 64
157 #define APPID_HA_SESSION_APP_NUM_MAX 8
158 #define APPID_HA_FLAGS_APP (1<<0)
159 #define APPID_HA_FLAGS_TP_DONE (1<<1)
160 #define APPID_HA_FLAGS_SVC_DONE (1<<2)
161 #define APPID_HA_FLAGS_HTTP (1<<3)
196 const char * (*getApplicationName)(
int32_t appId);
217 char* (*getUserName)(
struct AppIdData *session,
tAppId *service,
bool *isLoginSuccessful);
234 char* (*getHttpResponseCode)(
struct AppIdData *session);
259 struct AppIdData * (*getAppIdData)(
void *lwssn);
#define DHCP_OP60_MAX_SIZE
struct _FpSMBData FpSMBData
@ SEARCH_SUPPORT_TYPE_UNKNOWN
@ UNSUPPORTED_SEARCH_ENGINE
@ SUPPORTED_SEARCH_ENGINE
#define DHCP_OP55_MAX_SIZE
struct _AppIdSessionHA AppIdSessionHA
struct _RNAServiceSubtype RNAServiceSubtype
#define APPID_HA_SESSION_APP_NUM_MAX
struct _DHCPInfo DHCPInfo
struct _DHCP_FP_DATA DhcpFPData
tAppId(* getPortServiceAppId)(struct AppIdData *session)
APPID_FLOW_TYPE(* getFlowType)(struct AppIdData *session)
tAppId(* getFwMiscAppId)(struct AppIdData *session)
uint16_t(* getHttpUriEndOffset)(struct AppIdData *session)
uint16_t(* getHttpFieldOffset)(struct AppIdData *session, HTTP_FIELD_ID fieldId)
int(* getAppIdSessionPacketCount)(struct AppIdData *appIdData)
uint64_t(* getAppIdSessionAttribute)(struct AppIdData *session, uint64_t flag)
bool(* isAppIdInspectingSession)(struct AppIdData *session)
tAppId(* getApplicationId)(const char *appName)
uint16_t(* getHttpCookieEndOffset)(struct AppIdData *session)
uint16_t(* getDNSRecordType)(struct AppIdData *appIdData)
tAppId(* getFwPayloadAppId)(struct AppIdData *session)
tAppId(* getReferredAppId)(struct AppIdData *session)
tAppId(* getOnlyServiceAppId)(struct AppIdData *session)
tAppId(* getServiceAppId)(struct AppIdData *session)
SEARCH_SUPPORT_TYPE(* getHttpSearch)(struct AppIdData *session)
tAppId(* getClientAppId)(struct AppIdData *session)
uint32_t(* consumeHAState)(void *lwssn, const uint8_t *buf, uint8_t length, uint8_t proto, const struct in6_addr *ip, uint16_t initiatorPort)
tAppId(* getFwReferredAppId)(struct AppIdData *session)
uint16_t(* getHttpCookieOffset)(struct AppIdData *session)
tAppId(* getPayloadAppId)(struct AppIdData *session)
void(* getServiceInfo)(struct AppIdData *session, char **serviceVendor, char **serviceVersion, RNAServiceSubtype **subtype)
uint32_t(* produceHAState)(void *lwssn, uint8_t *buf)
void(* freeHttpNewField)(struct AppIdData *appIdData, HTTP_FIELD_ID fieldId)
uint8_t(* getDNSResponseType)(struct AppIdData *appIdData)
tAppId(* getFwServiceAppId)(struct AppIdData *session)
void(* freeDhcpFpData)(struct AppIdData *session, DhcpFPData *data)
void(* dumpDebugHostInfo)(void)
uint16_t(* getDNSOptionsOffset)(struct AppIdData *appIdData)
uint16_t(* getDNSQueryoffset)(struct AppIdData *appIdData)
tAppId(* getMiscAppId)(struct AppIdData *session)
uint16_t(* getHttpFieldEndOffset)(struct AppIdData *session, HTTP_FIELD_ID fieldId)
bool(* isSessionSslDecrypted)(struct AppIdData *session)
short(* getServicePort)(struct AppIdData *session)
void(* freeSmbFpData)(struct AppIdData *session, FpSMBData *data)
tAppId(* getFwClientAppId)(struct AppIdData *session)
uint16_t(* getHttpUriOffset)(struct AppIdData *session)
void(* freeDhcpInfo)(struct AppIdData *session, DHCPInfo *data)
bool(* isHttpInspectionDone)(struct AppIdData *session)
bool(* isAppIdAvailable)(struct AppIdData *session)
uint32_t(* getDNSTTL)(struct AppIdData *appIdData)
struct _RNAServiceSubtype * subtype
struct _DHCP_FP_DATA * next
struct _RNAServiceSubtype * next