cb243c36a8
* Change MIT license texts to SPDX-License-Identifier SPDX-License-Identifier is much easier to understand and grep than license text so use that instead. * Change GPL exception license texts to SPDX-License-Identifier SPDX-License-Identifier is much easier to understand and grep than license text so use that instead. * Change misc license texts to SPDX-License-Identifier There are some external code in repo which are not licenses as most of the stuff in this repo. We still want every file to have SPDX identifier to easily grep licenses. * Add currently used license files Even though Bacnet-Stack is using SPDX identifiers we still need to give those license files with source. For this reason add all license files to license/ folder. SPDX has also files which would make same thing but this is style which example Linux kernel is using and it is quite clear so I choose that one for now. I choosed not yet bring CC-PDDC as that is not right license for those files. --------- Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
62 lines
1.3 KiB
C
62 lines
1.3 KiB
C
/**
|
|
* @file
|
|
* @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv
|
|
* @date 2012
|
|
* @brief Datalink IP module
|
|
*
|
|
* @section LICENSE
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
#ifndef UDPMODULE_H
|
|
#define UDPMODULE_H
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include "bacport.h"
|
|
#include "portthread.h"
|
|
#include "bacnet/datalink/bip.h"
|
|
|
|
#define MAX_BIP_APDU 1476
|
|
#define MAX_BIP_PDU (MAX_NPDU + MAX_BIP_APDU)
|
|
#define MAX_BIP_MPDU (BIP_HEADER_MAX + MAX_BIP_PDU)
|
|
/* Yes, we know this is longer than an Ethernet Frame,
|
|
a UDP payload and an IPv6 packet.
|
|
Grandfathered in from BACnet Ethernet days,
|
|
and we can rely on the lower layers of the
|
|
Ethernet stack to fragment/reassemble the BACnet MPDUs */
|
|
|
|
typedef struct ip_data {
|
|
int socket;
|
|
uint16_t port;
|
|
struct in_addr local_addr;
|
|
struct in_addr broadcast_addr;
|
|
uint8_t *buff;
|
|
uint16_t max_buff;
|
|
} IP_DATA;
|
|
|
|
|
|
void *dl_ip_thread(
|
|
void *pArgs);
|
|
|
|
bool dl_ip_init(
|
|
ROUTER_PORT * port,
|
|
IP_DATA * data);
|
|
|
|
int dl_ip_send(
|
|
IP_DATA * data,
|
|
BACNET_ADDRESS * dest,
|
|
uint8_t * pdu,
|
|
unsigned pdu_len);
|
|
|
|
int dl_ip_recv(
|
|
IP_DATA * data,
|
|
MSG_DATA ** msg, /* on recieve fill up message */
|
|
BACNET_ADDRESS * src,
|
|
unsigned timeout);
|
|
|
|
void dl_ip_cleanup(
|
|
IP_DATA * data);
|
|
|
|
#endif /* end of UDPMODULE_H */
|