diff options
Diffstat (limited to 'lib/zclient.h')
| -rw-r--r-- | lib/zclient.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/lib/zclient.h b/lib/zclient.h index d99b6ddf8f..3ded2f55d7 100644 --- a/lib/zclient.h +++ b/lib/zclient.h @@ -457,6 +457,7 @@ struct zapi_route { */ #define ZEBRA_FLAG_RR_USE_DISTANCE 0x40 + /* The older XXX_MESSAGE flags live here */ uint8_t message; /* @@ -849,6 +850,25 @@ extern void zclient_send_mlag_data(struct zclient *client, int zclient_send_opaque(struct zclient *zclient, uint32_t type, const uint8_t *data, size_t datasize); +int zclient_send_opaque_unicast(struct zclient *zclient, uint32_t type, + uint8_t proto, uint16_t instance, + uint32_t session_id, const uint8_t *data, + size_t datasize); + +/* Struct representing the decoded opaque header info */ +struct zapi_opaque_msg { + uint32_t type; /* Subtype */ + uint16_t len; /* len after zapi header and this info */ + uint16_t flags; + + /* Client-specific info - *if* UNICAST flag is set */ + uint8_t proto; + uint16_t instance; + uint32_t session_id; +}; + +#define ZAPI_OPAQUE_FLAG_UNICAST 0x01 + /* Simple struct to convey registration/unreg requests */ struct zapi_opaque_reg_info { /* Message subtype */ @@ -860,10 +880,13 @@ struct zapi_opaque_reg_info { uint32_t session_id; }; +/* Decode incoming opaque */ +int zclient_opaque_decode(struct stream *msg, struct zapi_opaque_msg *info); + int zclient_register_opaque(struct zclient *zclient, uint32_t type); int zclient_unregister_opaque(struct zclient *zclient, uint32_t type); -int zapi_parse_opaque_reg(struct stream *msg, - struct zapi_opaque_reg_info *info); +int zapi_opaque_reg_decode(struct stream *msg, + struct zapi_opaque_reg_info *info); /* * Registry of opaque message types. Please do not reuse an in-use |
