1121934Sharti/* 2121934Sharti * TNC - Common defines 3121934Sharti * Copyright (c) 2007-2014, Jouni Malinen <j@w1.fi> 4121934Sharti * 5121934Sharti * This software may be distributed under the terms of the BSD license. 6121934Sharti * See README for more details. 7121934Sharti */ 8121934Sharti 9121934Sharti#ifndef TNC_H 10121934Sharti#define TNC_H 11121934Sharti 12121934Shartitypedef unsigned long TNC_UInt32; 13121934Shartitypedef unsigned char *TNC_BufferReference; 14121934Sharti 15121934Shartitypedef TNC_UInt32 TNC_IMVID; 16121934Shartitypedef TNC_UInt32 TNC_IMCID; 17121934Shartitypedef TNC_UInt32 TNC_ConnectionID; 18121934Shartitypedef TNC_UInt32 TNC_ConnectionState; 19121934Shartitypedef TNC_UInt32 TNC_RetryReason; 20121934Shartitypedef TNC_UInt32 TNC_IMV_Action_Recommendation; 21121934Shartitypedef TNC_UInt32 TNC_IMV_Evaluation_Result; 22121934Shartitypedef TNC_UInt32 TNC_MessageType; 23121934Shartitypedef TNC_MessageType *TNC_MessageTypeList; 24121934Shartitypedef TNC_UInt32 TNC_VendorID; 25121934Shartitypedef TNC_UInt32 TNC_Subtype; 26121934Shartitypedef TNC_UInt32 TNC_MessageSubtype; 27121934Shartitypedef TNC_UInt32 TNC_Version; 28121934Shartitypedef TNC_UInt32 TNC_Result; 29131826Shartitypedef TNC_UInt32 TNC_AttributeID; 30121934Sharti 31121934Shartitypedef TNC_Result (*TNC_TNCS_BindFunctionPointer)( 32121934Sharti TNC_IMVID imvID, 33121934Sharti char *functionName, 34121934Sharti void **pOutfunctionPointer); 35121934Shartitypedef TNC_Result (*TNC_TNCS_ReportMessageTypesPointer)( 36121934Sharti TNC_IMVID imvID, 37121934Sharti TNC_MessageTypeList supportedTypes, 38121934Sharti TNC_UInt32 typeCount); 39121934Shartitypedef TNC_Result (*TNC_TNCS_SendMessagePointer)( 40121934Sharti TNC_IMVID imvID, 41121934Sharti TNC_ConnectionID connectionID, 42121934Sharti TNC_BufferReference message, 43121934Sharti TNC_UInt32 messageLength, 44121934Sharti TNC_MessageType messageType); 45121934Shartitypedef TNC_Result (*TNC_TNCS_RequestHandshakeRetryPointer)( 46121934Sharti TNC_IMVID imvID, 47121934Sharti TNC_ConnectionID connectionID, 48121934Sharti TNC_RetryReason reason); 49121934Shartitypedef TNC_Result (*TNC_TNCS_ProvideRecommendationPointer)( 50121934Sharti TNC_IMVID imvID, 51121934Sharti TNC_ConnectionID connectionID, 52121934Sharti TNC_IMV_Action_Recommendation recommendation, 53121934Sharti TNC_IMV_Evaluation_Result evaluation); 54121934Shartitypedef TNC_Result (*TNC_TNCC_BindFunctionPointer)( 55121934Sharti TNC_IMCID imcID, 56121934Sharti char *functionName, 57121934Sharti void **pOutfunctionPointer); 58121934Shartitypedef TNC_Result (*TNC_TNCC_SendMessagePointer)( 59121934Sharti TNC_IMCID imcID, 60121934Sharti TNC_ConnectionID connectionID, 61121934Sharti TNC_BufferReference message, 62121934Sharti TNC_UInt32 messageLength, 63121934Sharti TNC_MessageType messageType); 64121934Shartitypedef TNC_Result (*TNC_TNCC_ReportMessageTypesPointer)( 65121934Sharti TNC_IMCID imcID, 66121934Sharti TNC_MessageTypeList supportedTypes, 67121934Sharti TNC_UInt32 typeCount); 68121934Shartitypedef TNC_Result (*TNC_TNCC_RequestHandshakeRetryPointer)( 69121934Sharti TNC_IMCID imcID, 70121934Sharti TNC_ConnectionID connectionID, 71121934Sharti TNC_RetryReason reason); 72121934Sharti 73121934Sharti#define TNC_IFIMV_VERSION_1 1 74121934Sharti#define TNC_IFIMC_VERSION_1 1 75121934Sharti 76121934Sharti#define TNC_RESULT_SUCCESS 0 77121934Sharti#define TNC_RESULT_NOT_INITIALIZED 1 78121934Sharti#define TNC_RESULT_ALREADY_INITIALIZED 2 79121934Sharti#define TNC_RESULT_NO_COMMON_VERSION 3 80121934Sharti#define TNC_RESULT_CANT_RETRY 4 81121934Sharti#define TNC_RESULT_WONT_RETRY 5 82121934Sharti#define TNC_RESULT_INVALID_PARAMETER 6 83121934Sharti#define TNC_RESULT_CANT_RESPOND 7 84121934Sharti#define TNC_RESULT_ILLEGAL_OPERATION 8 85121934Sharti#define TNC_RESULT_OTHER 9 86121934Sharti#define TNC_RESULT_FATAL 10 87121934Sharti 88121934Sharti#define TNC_CONNECTION_STATE_CREATE 0 89121934Sharti#define TNC_CONNECTION_STATE_HANDSHAKE 1 90121934Sharti#define TNC_CONNECTION_STATE_ACCESS_ALLOWED 2 91121934Sharti#define TNC_CONNECTION_STATE_ACCESS_ISOLATED 3 92121934Sharti#define TNC_CONNECTION_STATE_ACCESS_NONE 4 93121934Sharti#define TNC_CONNECTION_STATE_DELETE 5 94121934Sharti 95121934Sharti#define TNC_VENDORID_ANY ((TNC_VendorID) 0xffffff) 96121934Sharti#define TNC_SUBTYPE_ANY ((TNC_Subtype) 0xff) 97121934Sharti 98121934Sharti/* TNCC-TNCS Message Types */ 99121934Sharti#define TNC_TNCCS_RECOMMENDATION 0x00000001 100121934Sharti#define TNC_TNCCS_ERROR 0x00000002 101121934Sharti#define TNC_TNCCS_PREFERREDLANGUAGE 0x00000003 102121934Sharti#define TNC_TNCCS_REASONSTRINGS 0x00000004 103121934Sharti 104121934Sharti/* Possible TNC_IMV_Action_Recommendation values: */ 105121934Shartienum IMV_Action_Recommendation { 106121934Sharti TNC_IMV_ACTION_RECOMMENDATION_ALLOW, 107121934Sharti TNC_IMV_ACTION_RECOMMENDATION_NO_ACCESS, 108121934Sharti TNC_IMV_ACTION_RECOMMENDATION_ISOLATE, 109121934Sharti TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION 110121934Sharti}; 111121934Sharti 112121934Sharti/* Possible TNC_IMV_Evaluation_Result values: */ 113121934Shartienum IMV_Evaluation_Result { 114121934Sharti TNC_IMV_EVALUATION_RESULT_COMPLIANT, 115121934Sharti TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MINOR, 116121934Sharti TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MAJOR, 117121934Sharti TNC_IMV_EVALUATION_RESULT_ERROR, 118121934Sharti TNC_IMV_EVALUATION_RESULT_DONT_KNOW 119121934Sharti}; 120121934Sharti 121121934Sharti#endif /* TNC_H */ 122121934Sharti