1*5b9c547cSRui Paulo /* 2*5b9c547cSRui Paulo * TNC - Common defines 3*5b9c547cSRui Paulo * Copyright (c) 2007-2014, Jouni Malinen <j@w1.fi> 4*5b9c547cSRui Paulo * 5*5b9c547cSRui Paulo * This software may be distributed under the terms of the BSD license. 6*5b9c547cSRui Paulo * See README for more details. 7*5b9c547cSRui Paulo */ 8*5b9c547cSRui Paulo 9*5b9c547cSRui Paulo #ifndef TNC_H 10*5b9c547cSRui Paulo #define TNC_H 11*5b9c547cSRui Paulo 12*5b9c547cSRui Paulo typedef unsigned long TNC_UInt32; 13*5b9c547cSRui Paulo typedef unsigned char *TNC_BufferReference; 14*5b9c547cSRui Paulo 15*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_IMVID; 16*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_IMCID; 17*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_ConnectionID; 18*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_ConnectionState; 19*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_RetryReason; 20*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_IMV_Action_Recommendation; 21*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_IMV_Evaluation_Result; 22*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_MessageType; 23*5b9c547cSRui Paulo typedef TNC_MessageType *TNC_MessageTypeList; 24*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_VendorID; 25*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_Subtype; 26*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_MessageSubtype; 27*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_Version; 28*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_Result; 29*5b9c547cSRui Paulo typedef TNC_UInt32 TNC_AttributeID; 30*5b9c547cSRui Paulo 31*5b9c547cSRui Paulo typedef TNC_Result (*TNC_TNCS_BindFunctionPointer)( 32*5b9c547cSRui Paulo TNC_IMVID imvID, 33*5b9c547cSRui Paulo char *functionName, 34*5b9c547cSRui Paulo void **pOutfunctionPointer); 35*5b9c547cSRui Paulo typedef TNC_Result (*TNC_TNCS_ReportMessageTypesPointer)( 36*5b9c547cSRui Paulo TNC_IMVID imvID, 37*5b9c547cSRui Paulo TNC_MessageTypeList supportedTypes, 38*5b9c547cSRui Paulo TNC_UInt32 typeCount); 39*5b9c547cSRui Paulo typedef TNC_Result (*TNC_TNCS_SendMessagePointer)( 40*5b9c547cSRui Paulo TNC_IMVID imvID, 41*5b9c547cSRui Paulo TNC_ConnectionID connectionID, 42*5b9c547cSRui Paulo TNC_BufferReference message, 43*5b9c547cSRui Paulo TNC_UInt32 messageLength, 44*5b9c547cSRui Paulo TNC_MessageType messageType); 45*5b9c547cSRui Paulo typedef TNC_Result (*TNC_TNCS_RequestHandshakeRetryPointer)( 46*5b9c547cSRui Paulo TNC_IMVID imvID, 47*5b9c547cSRui Paulo TNC_ConnectionID connectionID, 48*5b9c547cSRui Paulo TNC_RetryReason reason); 49*5b9c547cSRui Paulo typedef TNC_Result (*TNC_TNCS_ProvideRecommendationPointer)( 50*5b9c547cSRui Paulo TNC_IMVID imvID, 51*5b9c547cSRui Paulo TNC_ConnectionID connectionID, 52*5b9c547cSRui Paulo TNC_IMV_Action_Recommendation recommendation, 53*5b9c547cSRui Paulo TNC_IMV_Evaluation_Result evaluation); 54*5b9c547cSRui Paulo typedef TNC_Result (*TNC_TNCC_BindFunctionPointer)( 55*5b9c547cSRui Paulo TNC_IMCID imcID, 56*5b9c547cSRui Paulo char *functionName, 57*5b9c547cSRui Paulo void **pOutfunctionPointer); 58*5b9c547cSRui Paulo typedef TNC_Result (*TNC_TNCC_SendMessagePointer)( 59*5b9c547cSRui Paulo TNC_IMCID imcID, 60*5b9c547cSRui Paulo TNC_ConnectionID connectionID, 61*5b9c547cSRui Paulo TNC_BufferReference message, 62*5b9c547cSRui Paulo TNC_UInt32 messageLength, 63*5b9c547cSRui Paulo TNC_MessageType messageType); 64*5b9c547cSRui Paulo typedef TNC_Result (*TNC_TNCC_ReportMessageTypesPointer)( 65*5b9c547cSRui Paulo TNC_IMCID imcID, 66*5b9c547cSRui Paulo TNC_MessageTypeList supportedTypes, 67*5b9c547cSRui Paulo TNC_UInt32 typeCount); 68*5b9c547cSRui Paulo typedef TNC_Result (*TNC_TNCC_RequestHandshakeRetryPointer)( 69*5b9c547cSRui Paulo TNC_IMCID imcID, 70*5b9c547cSRui Paulo TNC_ConnectionID connectionID, 71*5b9c547cSRui Paulo TNC_RetryReason reason); 72*5b9c547cSRui Paulo 73*5b9c547cSRui Paulo #define TNC_IFIMV_VERSION_1 1 74*5b9c547cSRui Paulo #define TNC_IFIMC_VERSION_1 1 75*5b9c547cSRui Paulo 76*5b9c547cSRui Paulo #define TNC_RESULT_SUCCESS 0 77*5b9c547cSRui Paulo #define TNC_RESULT_NOT_INITIALIZED 1 78*5b9c547cSRui Paulo #define TNC_RESULT_ALREADY_INITIALIZED 2 79*5b9c547cSRui Paulo #define TNC_RESULT_NO_COMMON_VERSION 3 80*5b9c547cSRui Paulo #define TNC_RESULT_CANT_RETRY 4 81*5b9c547cSRui Paulo #define TNC_RESULT_WONT_RETRY 5 82*5b9c547cSRui Paulo #define TNC_RESULT_INVALID_PARAMETER 6 83*5b9c547cSRui Paulo #define TNC_RESULT_CANT_RESPOND 7 84*5b9c547cSRui Paulo #define TNC_RESULT_ILLEGAL_OPERATION 8 85*5b9c547cSRui Paulo #define TNC_RESULT_OTHER 9 86*5b9c547cSRui Paulo #define TNC_RESULT_FATAL 10 87*5b9c547cSRui Paulo 88*5b9c547cSRui Paulo #define TNC_CONNECTION_STATE_CREATE 0 89*5b9c547cSRui Paulo #define TNC_CONNECTION_STATE_HANDSHAKE 1 90*5b9c547cSRui Paulo #define TNC_CONNECTION_STATE_ACCESS_ALLOWED 2 91*5b9c547cSRui Paulo #define TNC_CONNECTION_STATE_ACCESS_ISOLATED 3 92*5b9c547cSRui Paulo #define TNC_CONNECTION_STATE_ACCESS_NONE 4 93*5b9c547cSRui Paulo #define TNC_CONNECTION_STATE_DELETE 5 94*5b9c547cSRui Paulo 95*5b9c547cSRui Paulo #define TNC_VENDORID_ANY ((TNC_VendorID) 0xffffff) 96*5b9c547cSRui Paulo #define TNC_SUBTYPE_ANY ((TNC_Subtype) 0xff) 97*5b9c547cSRui Paulo 98*5b9c547cSRui Paulo /* TNCC-TNCS Message Types */ 99*5b9c547cSRui Paulo #define TNC_TNCCS_RECOMMENDATION 0x00000001 100*5b9c547cSRui Paulo #define TNC_TNCCS_ERROR 0x00000002 101*5b9c547cSRui Paulo #define TNC_TNCCS_PREFERREDLANGUAGE 0x00000003 102*5b9c547cSRui Paulo #define TNC_TNCCS_REASONSTRINGS 0x00000004 103*5b9c547cSRui Paulo 104*5b9c547cSRui Paulo /* Possible TNC_IMV_Action_Recommendation values: */ 105*5b9c547cSRui Paulo enum IMV_Action_Recommendation { 106*5b9c547cSRui Paulo TNC_IMV_ACTION_RECOMMENDATION_ALLOW, 107*5b9c547cSRui Paulo TNC_IMV_ACTION_RECOMMENDATION_NO_ACCESS, 108*5b9c547cSRui Paulo TNC_IMV_ACTION_RECOMMENDATION_ISOLATE, 109*5b9c547cSRui Paulo TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION 110*5b9c547cSRui Paulo }; 111*5b9c547cSRui Paulo 112*5b9c547cSRui Paulo /* Possible TNC_IMV_Evaluation_Result values: */ 113*5b9c547cSRui Paulo enum IMV_Evaluation_Result { 114*5b9c547cSRui Paulo TNC_IMV_EVALUATION_RESULT_COMPLIANT, 115*5b9c547cSRui Paulo TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MINOR, 116*5b9c547cSRui Paulo TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MAJOR, 117*5b9c547cSRui Paulo TNC_IMV_EVALUATION_RESULT_ERROR, 118*5b9c547cSRui Paulo TNC_IMV_EVALUATION_RESULT_DONT_KNOW 119*5b9c547cSRui Paulo }; 120*5b9c547cSRui Paulo 121*5b9c547cSRui Paulo #endif /* TNC_H */ 122