summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/ouroboros/ipcp-dev.h42
-rw-r--r--include/ouroboros/ipcp.h32
2 files changed, 41 insertions, 33 deletions
diff --git a/include/ouroboros/ipcp-dev.h b/include/ouroboros/ipcp-dev.h
index d60e0b45..b57cec0d 100644
--- a/include/ouroboros/ipcp-dev.h
+++ b/include/ouroboros/ipcp-dev.h
@@ -26,33 +26,35 @@
#ifndef OUROBOROS_IPCP_DEV_H
#define OUROBOROS_IPCP_DEV_H
-int ipcp_create_r(int result);
+int ipcp_create_r(int result);
-int ipcp_flow_req_arr(const uint8_t * dst,
- size_t len,
- qosspec_t qs,
- const void * data,
- size_t dlen);
+int ipcp_flow_req_arr(const uint8_t * dst,
+ size_t len,
+ qosspec_t qs,
+ const void * data,
+ size_t dlen);
-int ipcp_flow_alloc_reply(int fd,
- int response,
- const void * data,
- size_t len);
+int ipcp_flow_alloc_reply(int fd,
+ int response,
+ const void * data,
+ size_t len);
-int ipcp_flow_read(int fd,
- struct shm_du_buff ** sdb);
+int ipcp_flow_read(int fd,
+ struct shm_du_buff ** sdb);
-int ipcp_flow_write(int fd,
- struct shm_du_buff * sdb);
+int ipcp_flow_write(int fd,
+ struct shm_du_buff * sdb);
-int ipcp_flow_fini(int fd);
+int ipcp_flow_fini(int fd);
-int ipcp_flow_get_qoscube(int fd,
- qoscube_t * cube);
+int ipcp_flow_get_qoscube(int fd,
+ qoscube_t * cube);
-int ipcp_sdb_reserve(struct shm_du_buff ** sdb,
- size_t len);
+size_t ipcp_flow_queued(int fd);
-void ipcp_sdb_release(struct shm_du_buff * sdb);
+int ipcp_sdb_reserve(struct shm_du_buff ** sdb,
+ size_t len);
+
+void ipcp_sdb_release(struct shm_du_buff * sdb);
#endif /* OUROBOROS_IPCP_DEV_H */
diff --git a/include/ouroboros/ipcp.h b/include/ouroboros/ipcp.h
index 6494d9b7..86dfd2da 100644
--- a/include/ouroboros/ipcp.h
+++ b/include/ouroboros/ipcp.h
@@ -55,6 +55,11 @@ enum pol_routing {
ROUTING_LINK_STATE_ECMP
};
+enum pol_cong_avoid {
+ CA_NONE = 0,
+ CA_MB_ECN
+};
+
enum pol_dir_hash {
DIR_HASH_SHA3_224 = 0,
DIR_HASH_SHA3_256,
@@ -70,29 +75,30 @@ struct layer_info {
/* Structure to configure the first IPCP */
struct ipcp_config {
- struct layer_info layer_info;
+ struct layer_info layer_info;
- enum ipcp_type type;
+ enum ipcp_type type;
/* Unicast */
- uint8_t addr_size;
- uint8_t eid_size;
- uint8_t max_ttl;
+ uint8_t addr_size;
+ uint8_t eid_size;
+ uint8_t max_ttl;
- enum pol_addr_auth addr_auth_type;
- enum pol_routing routing_type;
+ enum pol_addr_auth addr_auth_type;
+ enum pol_routing routing_type;
+ enum pol_cong_avoid cong_avoid;
/* UDP */
- uint32_t ip_addr;
- uint32_t dns_addr;
- uint16_t clt_port;
- uint16_t srv_port;
+ uint32_t ip_addr;
+ uint32_t dns_addr;
+ uint16_t clt_port;
+ uint16_t srv_port;
/* Ethernet */
- char * dev;
+ char * dev;
/* Ethernet DIX */
- uint16_t ethertype;
+ uint16_t ethertype;
};
#endif /* OUROBOROS_IPCP_H */