Przeglądaj źródła

Adds base for CIP Security List Identity Item

Signed-off-by: Martin Melik Merkumians <melik-merkumians@acin.tuwien.ac.at>
Martin Melik Merkumians 6 lat temu
rodzic
commit
e808ca32b4
1 zmienionych plików z 18 dodań i 0 usunięć
  1. 18 0
      source/src/enet_encap/encap.c

+ 18 - 0
source/src/enet_encap/encap.c

@@ -423,6 +423,24 @@ void HandleReceivedListIdentityCommandUdp(const int socket,
   }
 }
 
+void EncodeListIdentitySecurityItem(ENIPMessage *const outgoing_message) {
+  const CipUint kCipSecurityItemId = 0x86;
+  const CipUint kCipSecurityItemLength = 5u; /* WORD + USINT + USINT + BYTE*/
+  outgoing_message->used_message_length += AddIntToMessage(kCipSecurityItemId,
+                                                           outgoing_message->current_message_position);
+  outgoing_message->used_message_length += AddIntToMessage(
+    kCipSecurityItemLength,
+    outgoing_message->current_message_position);
+  outgoing_message->used_message_length += AddIntToMessage(0,
+                                                           outgoing_message->current_message_position);    /* TODO: Security Profiles */
+  outgoing_message->used_message_length += AddSintToMessage(0,
+                                                            outgoing_message->current_message_position);    /* TODO: CIP Security State */
+  outgoing_message->used_message_length += AddSintToMessage(0,
+                                                            outgoing_message->current_message_position);    /* TODO: EtherNet/IP Security State */
+  outgoing_message->used_message_length += AddSintToMessage(0,
+                                                            outgoing_message->current_message_position);    /* TODO: IANA Port State */
+}
+
 CipUint ListIdentityGetCipIdentityItemLength() {
   return sizeof(CipUint) + sizeof(CipInt) + sizeof(CipUint) + sizeof(CipUdint) +
          8 * sizeof(CipUsint) + sizeof(CipUint) + sizeof(CipUint) +