From 36b3e7f310c624b7b4e31829090dd02131c528d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ram=C5=ABnas=20Ma=C5=BEeikis?= Date: Tue, 21 May 2019 19:16:22 +0300 Subject: Protocol: implementation of device-side protocol. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Parts of protocol specific for device are implementepd to reflect the fact that the device is a client. This effectively means that device gets a single connection only and severe memory restrictions about which the daemon might get informed about in the future. Signed-off-by: Ramūnas Mažeikis --- src/device/protocol_device_private.h | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'src/device/protocol_device_private.h') diff --git a/src/device/protocol_device_private.h b/src/device/protocol_device_private.h index 0fb46c7..29ff567 100755 --- a/src/device/protocol_device_private.h +++ b/src/device/protocol_device_private.h @@ -1,10 +1,27 @@ #ifndef PROTOCOL_DEVICE_PRIVATE_H #define PROTOCOL_DEVICE_PRIVATE_H +#include "net.h" + #define MAX_PACKET_SIZE_OUT (64) + +/* Maximum size of packet that can fit into the packet buffer. UDP can carry + * bigger packets but memory is hard to come by and more won't be needed + * anyway. + * */ #define MAX_PACKET_SIZE_IN (512) + +/** + * Device only gets one connection. Because daemon. + */ #define MAX_CONNECTIONS (1UL) +/** + * Error which says that writing any more to packet buffer will overflow + * outgoing buffer. + */ +#define E_PACKET_OVERFLOW (1 << 0) + /** * Device's view of connection to daemon. */ @@ -15,8 +32,8 @@ struct connection_t { */ int is_live; - /** Daemon IP adress */ - IPAddress address; + /** Network descriptor that maps to daemon */ + int nd; /** Time last packet was reveived */ time_t last_packet_sec; @@ -32,6 +49,12 @@ struct connection_t { /** Outgoing packet cursor */ size_t outp_crs; + + /** + * Next tlv to be returned via get_tlv. NULL initially and after last + * element. + * */ + struct tlv next_tlv; }; #endif /* PROTOCOL_DEVICE_PRIVATE_H */ \ No newline at end of file -- cgit v1.2.3