6 #ifndef OPENER_ENCAP_H_
7 #define OPENER_ENCAP_H_
22 #define ENCAPSULATION_HEADER_LENGTH 24
25 static const int kOpenerEthernetPort = 0xAF12;
104 int receive_buffer_length,
110 const size_t command_specific_data_length,
111 const size_t session_handle,
129 const struct sockaddr *
const originator_address,
struct encapsulation_data EncapsulationData
void EncapsulateListIdentityResponseMessage(const EncapsulationData *const receive_data, ENIPMessage *const outgoing_message)
const EipUint8 * current_communication_buffer_position
size_t GetSessionFromSocket(const int socket_handle)
void HandleReceivedListInterfacesCommand(const EncapsulationData *const receive_data, ENIPMessage *const outgoing_message)
void ManageEncapsulationMessages(const MilliSeconds elapsed_time)
Handle delayed encapsulation message responses.
EncapsulationProtocolErrorCode
definition of status codes in encapsulation protocol All other codes are either legacy codes...
void GenerateEncapsulationHeader(const EncapsulationData *const receive_data, const size_t command_specific_data_length, const size_t session_handle, const EncapsulationProtocolErrorCode encapsulation_protocol_status, ENIPMessage *const outgoing_message)
uint8_t CipOctet
Data types as defined in the CIP Specification Vol 1 Appendix C.
EipStatus
EIP stack status enum.
void EncapsulationShutDown(void)
Shutdown the encapsulation layer.
void CloseEncapsulationSessionBySockAddr(const CipConnectionObject *const connection_object)
CipOctet sender_context[8]
void RemoveSession(const int socket)
void EncapsulationInit(void)
Initialize the encapsulation layer.
EipStatus HandleReceivedSendRequestResponseDataCommand(const EncapsulationData *const receive_data, const struct sockaddr *const originator_address, ENIPMessage *const outgoing_message)
Call UCMM or Message Router if UCMM not implemented.
void SkipEncapsulationHeader(ENIPMessage *const outgoing_message)
unsigned long MilliSeconds
void HandleReceivedListServicesCommand(const EncapsulationData *const receive_data, ENIPMessage *const outgoing_message)
generate reply with "Communications Services" + compatibility Flags.
const EipUint8 * communication_buffer_start
EipInt16 CreateEncapsulationStructure(const EipUint8 *receive_buffer, int receive_buffer_length, EncapsulationData *const encapsulation_data)
copy data from pa_buf in little endian to host in structure.
void CloseClass3ConnectionBasedOnSession(size_t encapsulation_session_handle)
void CloseSessionBySessionHandle(const CipConnectionObject *const connection_object)
struct encapsulation_interface_information EncapsulationInterfaceInformation
void HandleReceivedRegisterSessionCommand(int socket, const EncapsulationData *const receive_data, ENIPMessage *const outgoing_message)