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