150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt/* 250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt * TNC - Common defines 350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt * Copyright (c) 2007-2014, Jouni Malinen <j@w1.fi> 450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt * 550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt * See README for more details. 750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt */ 850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#ifndef TNC_H 1050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_H 1150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 1250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef unsigned long TNC_UInt32; 1350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef unsigned char *TNC_BufferReference; 1450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 1550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_IMVID; 1650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_IMCID; 1750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_ConnectionID; 1850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_ConnectionState; 1950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_RetryReason; 2050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_IMV_Action_Recommendation; 2150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_IMV_Evaluation_Result; 2250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_MessageType; 2350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_MessageType *TNC_MessageTypeList; 2450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_VendorID; 2550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_Subtype; 2650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_MessageSubtype; 2750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_Version; 2850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_Result; 2950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_UInt32 TNC_AttributeID; 3050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 3150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_Result (*TNC_TNCS_BindFunctionPointer)( 3250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMVID imvID, 3350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt char *functionName, 3450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt void **pOutfunctionPointer); 3550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_Result (*TNC_TNCS_ReportMessageTypesPointer)( 3650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMVID imvID, 3750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_MessageTypeList supportedTypes, 3850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_UInt32 typeCount); 3950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_Result (*TNC_TNCS_SendMessagePointer)( 4050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMVID imvID, 4150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_ConnectionID connectionID, 4250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_BufferReference message, 4350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_UInt32 messageLength, 4450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_MessageType messageType); 4550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_Result (*TNC_TNCS_RequestHandshakeRetryPointer)( 4650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMVID imvID, 4750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_ConnectionID connectionID, 4850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_RetryReason reason); 4950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_Result (*TNC_TNCS_ProvideRecommendationPointer)( 5050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMVID imvID, 5150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_ConnectionID connectionID, 5250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_Action_Recommendation recommendation, 5350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_Evaluation_Result evaluation); 5450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_Result (*TNC_TNCC_BindFunctionPointer)( 5550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMCID imcID, 5650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt char *functionName, 5750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt void **pOutfunctionPointer); 5850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_Result (*TNC_TNCC_SendMessagePointer)( 5950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMCID imcID, 6050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_ConnectionID connectionID, 6150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_BufferReference message, 6250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_UInt32 messageLength, 6350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_MessageType messageType); 6450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_Result (*TNC_TNCC_ReportMessageTypesPointer)( 6550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMCID imcID, 6650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_MessageTypeList supportedTypes, 6750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_UInt32 typeCount); 6850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidttypedef TNC_Result (*TNC_TNCC_RequestHandshakeRetryPointer)( 6950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMCID imcID, 7050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_ConnectionID connectionID, 7150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_RetryReason reason); 7250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 7350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_IFIMV_VERSION_1 1 7450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_IFIMC_VERSION_1 1 7550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 7650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_SUCCESS 0 7750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_NOT_INITIALIZED 1 7850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_ALREADY_INITIALIZED 2 7950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_NO_COMMON_VERSION 3 8050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_CANT_RETRY 4 8150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_WONT_RETRY 5 8250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_INVALID_PARAMETER 6 8350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_CANT_RESPOND 7 8450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_ILLEGAL_OPERATION 8 8550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_OTHER 9 8650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_RESULT_FATAL 10 8750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 8850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_CONNECTION_STATE_CREATE 0 8950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_CONNECTION_STATE_HANDSHAKE 1 9050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_CONNECTION_STATE_ACCESS_ALLOWED 2 9150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_CONNECTION_STATE_ACCESS_ISOLATED 3 9250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_CONNECTION_STATE_ACCESS_NONE 4 9350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_CONNECTION_STATE_DELETE 5 9450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 9550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_VENDORID_ANY ((TNC_VendorID) 0xffffff) 9650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_SUBTYPE_ANY ((TNC_Subtype) 0xff) 9750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 9850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt/* TNCC-TNCS Message Types */ 9950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_TNCCS_RECOMMENDATION 0x00000001 10050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_TNCCS_ERROR 0x00000002 10150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_TNCCS_PREFERREDLANGUAGE 0x00000003 10250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#define TNC_TNCCS_REASONSTRINGS 0x00000004 10350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 10450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt/* Possible TNC_IMV_Action_Recommendation values: */ 10550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidtenum IMV_Action_Recommendation { 10650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_ACTION_RECOMMENDATION_ALLOW, 10750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_ACTION_RECOMMENDATION_NO_ACCESS, 10850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_ACTION_RECOMMENDATION_ISOLATE, 10950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION 11050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt}; 11150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 11250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt/* Possible TNC_IMV_Evaluation_Result values: */ 11350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidtenum IMV_Evaluation_Result { 11450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_EVALUATION_RESULT_COMPLIANT, 11550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MINOR, 11650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MAJOR, 11750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_EVALUATION_RESULT_ERROR, 11850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt TNC_IMV_EVALUATION_RESULT_DONT_KNOW 11950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt}; 12050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt 12150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt#endif /* TNC_H */ 122