aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtnccs/tnc/imc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libtnccs/tnc/imc')
-rw-r--r--src/libtnccs/tnc/imc/imc.h33
-rw-r--r--src/libtnccs/tnc/imc/imc_manager.h22
2 files changed, 46 insertions, 9 deletions
diff --git a/src/libtnccs/tnc/imc/imc.h b/src/libtnccs/tnc/imc/imc.h
index 3794fd26d..3ff7d5194 100644
--- a/src/libtnccs/tnc/imc/imc.h
+++ b/src/libtnccs/tnc/imc/imc.h
@@ -95,6 +95,33 @@ struct imc_t {
TNC_MessageType messageType);
/**
+ * The TNC Client calls this function to deliver a message to the IMC.
+ * The message is contained in the buffer referenced by message and contains
+ * the number of octets indicated by messageLength. The type of the message
+ * is indicated by the message Vendor ID and message subtype.
+ *
+ * @param imcID IMC ID assigned by TNCS
+ * @param connectionID network connection ID assigned by TNCC
+ * @param messageFlags message flags
+ * @param message reference to buffer containing message
+ * @param messageLength number of octets in message
+ * @param messageVendorID message Vendor ID
+ * @param messageSubtype message subtype
+ * @param sourceIMVID source IMV ID
+ * @param destinationIMCID destination IMC ID
+ * @return TNC result code
+ */
+ TNC_Result (*receive_message_long)(TNC_IMCID imcID,
+ TNC_ConnectionID connectionID,
+ TNC_UInt32 messageFlags,
+ TNC_BufferReference message,
+ TNC_UInt32 messageLength,
+ TNC_VendorID messageVendorID,
+ TNC_MessageSubtype messageSubtype,
+ TNC_UInt32 sourceIMVID,
+ TNC_UInt32 destinationIMCID);
+
+ /**
* The TNC Client calls this function to notify IMCs that all IMV messages
* received in a batch have been delivered and this is the IMC’s last chance
* to send a message in the batch of IMC messages currently being collected.
@@ -187,10 +214,12 @@ struct imc_t {
/**
* Check if the IMC supports a given message type.
*
- * @param message_type message type
+ * @param msg_vid message vendor ID
+ * @param msg_subtype message subtype
* @return TRUE if supported
*/
- bool (*type_supported)(imc_t *this, TNC_MessageType message_type);
+ bool (*type_supported)(imc_t *this, TNC_VendorID msg_vid,
+ TNC_MessageSubtype msg_subtype);
/**
* Destroys an imc_t object.
diff --git a/src/libtnccs/tnc/imc/imc_manager.h b/src/libtnccs/tnc/imc/imc_manager.h
index ef2dcc654..25e0efe9d 100644
--- a/src/libtnccs/tnc/imc/imc_manager.h
+++ b/src/libtnccs/tnc/imc/imc_manager.h
@@ -128,16 +128,24 @@ struct imc_manager_t {
/**
* Delivers a message to interested IMCs.
*
- * @param connection_id ID of connection over which message was received
- * @param message message
- * @param message_len message length
- * @param message_type message type
+ * @param connection_id connection ID
+ * @param excl exclusive message flag
+ * @param msg message
+ * @param msg_len message length
+ * @param msg_vid message Vendor ID
+ * @param msg_subtype message subtype
+ * @param src_imv_id source IMV ID
+ * @param dst_imc_id destination IMC ID
*/
void (*receive_message)(imc_manager_t *this,
TNC_ConnectionID connection_id,
- TNC_BufferReference message,
- TNC_UInt32 message_len,
- TNC_MessageType message_type);
+ bool excl,
+ TNC_BufferReference msg,
+ TNC_UInt32 msg_len,
+ TNC_VendorID msg_vid,
+ TNC_MessageSubtype msg_subtype,
+ TNC_UInt32 src_imv_id,
+ TNC_UInt32 dst_imc_id);
/**
* Notify all IMCs that all IMV messages received in a batch have been