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