X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=secnet.h;h=6ac64e30a7b517986faeb25fda9d32bca78b196c;hp=06beb05df27fd9c2bb8221052a7d90f48176ec22;hb=46008a7c3e56df88d06087d26cb9ddc197933589;hpb=7b1a9fb74228564b5ee07b48c042ee7b9a2260f1 diff --git a/secnet.h b/secnet.h index 06beb05..6ac64e3 100644 --- a/secnet.h +++ b/secnet.h @@ -387,15 +387,21 @@ struct site_if { typedef struct transform_inst_if *transform_createinstance_fn(void *st); typedef bool_t transform_setkey_fn(void *st, uint8_t *key, int32_t keylen); +typedef bool_t transform_valid_fn(void *st); /* 0: no key; 1: ok */ typedef void transform_delkey_fn(void *st); typedef void transform_destroyinstance_fn(void *st); -/* Returns 0 for 'all is well', any other value for a problem */ +/* Returns: + * 0: all is well + * 1: for any other problem + * 2: message decrypted but sequence number was out of range + */ typedef uint32_t transform_apply_fn(void *st, struct buffer_if *buf, const char **errmsg); struct transform_inst_if { void *st; transform_setkey_fn *setkey; + transform_valid_fn *valid; transform_delkey_fn *delkey; transform_apply_fn *forwards; transform_apply_fn *reverse; @@ -420,10 +426,11 @@ struct transform_if { typedef void netlink_deliver_fn(void *st, struct buffer_if *buf); /* site code can tell netlink when outgoing packets will be dropped, so netlink can generate appropriate ICMP and make routing decisions */ -#define LINK_QUALITY_DOWN 0 /* No chance of a packet being delivered */ -#define LINK_QUALITY_DOWN_STALE_ADDRESS 1 /* Link down, old address information */ -#define LINK_QUALITY_DOWN_CURRENT_ADDRESS 2 /* Link down, current address information */ -#define LINK_QUALITY_UP 3 /* Link active */ +#define LINK_QUALITY_UNUSED 0 /* This link is unused, do not make this netlink */ +#define LINK_QUALITY_DOWN 1 /* No chance of a packet being delivered right away*/ +#define LINK_QUALITY_DOWN_STALE_ADDRESS 2 /* Link down, old address information */ +#define LINK_QUALITY_DOWN_CURRENT_ADDRESS 3 /* Link down, current address information */ +#define LINK_QUALITY_UP 4 /* Link active */ #define MAXIMUM_LINK_QUALITY 3 typedef void netlink_link_quality_fn(void *st, uint32_t quality); typedef void netlink_register_fn(void *st, netlink_deliver_fn *deliver, @@ -437,8 +444,6 @@ struct netlink_if { netlink_register_fn *reg; netlink_deliver_fn *deliver; netlink_link_quality_fn *set_quality; - netlink_output_config_fn *output_config; - netlink_check_config_fn *check_config; netlink_set_mtu_fn *set_mtu; };