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  | 
