diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/ouroboros/common.h | 35 | ||||
-rw-r--r-- | include/ouroboros/du_buff.h | 4 | ||||
-rw-r--r-- | include/ouroboros/sockets.h | 54 |
3 files changed, 81 insertions, 12 deletions
diff --git a/include/ouroboros/common.h b/include/ouroboros/common.h index 09900a1f..36f6171c 100644 --- a/include/ouroboros/common.h +++ b/include/ouroboros/common.h @@ -30,30 +30,45 @@ typedef uint32_t port_id_t; -/* FIXME: To be moved into a separate file */ typedef struct { - char * data; + uint8_t * data; size_t size; } buffer_t; typedef struct { char * ap_name; - int api_id; + int api_id; char * ae_name; - int aei_id; + int aei_id; } rina_name_t; /* FIXME: To be extended to have all QoS params */ struct qos_spec { - char * name; - char * dif_name; - double delay; - double jitter; + uint32_t delay; + uint32_t jitter; +}; + +struct dt_const { + /* dt field sizes in octets */ + uint8_t addr_size; + uint8_t cep_id_size; + uint8_t pdu_length_size; + uint8_t qos_id_size; + uint8_t seqno_size; + /* uint8_t ctrl_sqnum_sz; is this in the spec?? */ + + /* constants for dup */ + uint8_t ttl_size; + uint8_t chk_size; }; /* FIXME: What should be configurable in the DIF? */ struct dif_info { - int cep_id_size; + /* values, octets */ + uint32_t min_pdu_size; + uint32_t max_pdu_size; + + struct dt_const dtc; }; -#endif +#endif /* OUROBOROS_COMMON_H */ diff --git a/include/ouroboros/du_buff.h b/include/ouroboros/du_buff.h index 92d0609d..66904ca7 100644 --- a/include/ouroboros/du_buff.h +++ b/include/ouroboros/du_buff.h @@ -39,8 +39,8 @@ int du_buff_init(du_buff_t * dub, uint8_t * data, size_t len); -int du_buff_head_alloc(du_buff_t * dub, size_t size); -int du_buff_tail_alloc(du_buff_t * dub, size_t size); +uint8_t * du_buff_head_alloc(du_buff_t * dub, size_t size); +uint8_t * du_buff_tail_alloc(du_buff_t * dub, size_t size); int du_buff_head_release(du_buff_t * dub, size_t size); int du_buff_tail_release(du_buff_t * dub, size_t size); diff --git a/include/ouroboros/sockets.h b/include/ouroboros/sockets.h new file mode 100644 index 00000000..fe7ddb28 --- /dev/null +++ b/include/ouroboros/sockets.h @@ -0,0 +1,54 @@ +/* + * Ouroboros - Copyright (C) 2016 + * + * The sockets layer to communicate between daemons + * + * Sander Vrijders <sander.vrijders@intec.ugent.be> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef OUROBOROS_SOCKETS_H +#define OUROBOROS_SOCKETS_H + +#define IRM_SOCK_PATH "/tmp/irm_sock" + +enum irm_msg_code { + IRM_CREATE_IPCP, + IRM_DESTROY_IPCP, + IRM_BOOTSTRAP_IPCP, + IRM_ENROLL_IPCP, + IRM_REG_IPCP, + IRM_UNREG_IPCP, + IRM_LIST_IPCPS +}; + +struct irm_msg { + enum irm_msg_code code; + union { + struct { + rina_name_t * name; + char * ipcp_type; + } create_ipcp; + } msgs; +}; + +int client_socket_open(char * file_name); +int server_socket_open(char * file_name); + +buffer_t * serialize_irm_msg(struct irm_msg * msg); +struct irm_msg * deserialize_irm_msg(buffer_t * data); + +#endif |