diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/mlag.c | 130 | ||||
| -rw-r--r-- | lib/mlag.h | 105 | ||||
| -rw-r--r-- | lib/zclient.c | 66 | ||||
| -rw-r--r-- | lib/zclient.h | 14 |
4 files changed, 0 insertions, 315 deletions
diff --git a/lib/mlag.c b/lib/mlag.c index 7aac571da6..acdc662924 100644 --- a/lib/mlag.c +++ b/lib/mlag.c @@ -39,133 +39,3 @@ char *mlag_role2str(enum mlag_role role, char *buf, size_t size) return buf; } - -char *zebra_mlag_lib_msgid_to_str(enum mlag_msg_type msg_type, char *buf, - size_t size) -{ - switch (msg_type) { - case MLAG_REGISTER: - snprintf(buf, size, "Register"); - break; - case MLAG_DEREGISTER: - snprintf(buf, size, "De-Register"); - break; - case MLAG_MROUTE_ADD: - snprintf(buf, size, "Mroute add"); - break; - case MLAG_MROUTE_DEL: - snprintf(buf, size, "Mroute del"); - break; - case MLAG_DUMP: - snprintf(buf, size, "Mlag Replay"); - break; - case MLAG_MROUTE_ADD_BULK: - snprintf(buf, size, "Mroute Add Batch"); - break; - case MLAG_MROUTE_DEL_BULK: - snprintf(buf, size, "Mroute Del Batch"); - break; - case MLAG_STATUS_UPDATE: - snprintf(buf, size, "Mlag Status"); - break; - case MLAG_VXLAN_UPDATE: - snprintf(buf, size, "Mlag vxlan update"); - break; - case MLAG_PEER_FRR_STATUS: - snprintf(buf, size, "Mlag Peer FRR Status"); - break; - default: - snprintf(buf, size, "Unknown %d", msg_type); - break; - } - return buf; -} - - -int zebra_mlag_lib_decode_mlag_hdr(struct stream *s, struct mlag_msg *msg) -{ - if (s == NULL || msg == NULL) - return -1; - - STREAM_GETL(s, msg->msg_type); - STREAM_GETW(s, msg->data_len); - STREAM_GETW(s, msg->msg_cnt); - return 0; -stream_failure: - return -1; -} - -int zebra_mlag_lib_decode_mroute_add(struct stream *s, - struct mlag_mroute_add *msg) -{ - if (s == NULL || msg == NULL) - return -1; - - STREAM_GET(msg->vrf_name, s, VRF_NAMSIZ); - STREAM_GETL(s, msg->source_ip); - STREAM_GETL(s, msg->group_ip); - STREAM_GETL(s, msg->cost_to_rp); - STREAM_GETL(s, msg->owner_id); - STREAM_GETC(s, msg->am_i_dr); - STREAM_GETC(s, msg->am_i_dual_active); - STREAM_GETL(s, msg->vrf_id); - STREAM_GET(msg->intf_name, s, INTERFACE_NAMSIZ); - return 0; -stream_failure: - return -1; -} - -int zebra_mlag_lib_decode_mroute_del(struct stream *s, - struct mlag_mroute_del *msg) -{ - if (s == NULL || msg == NULL) - return -1; - - STREAM_GET(msg->vrf_name, s, VRF_NAMSIZ); - STREAM_GETL(s, msg->source_ip); - STREAM_GETL(s, msg->group_ip); - STREAM_GETL(s, msg->owner_id); - STREAM_GETL(s, msg->vrf_id); - STREAM_GET(msg->intf_name, s, INTERFACE_NAMSIZ); - return 0; -stream_failure: - return -1; -} - -int zebra_mlag_lib_decode_mlag_status(struct stream *s, struct mlag_status *msg) -{ - if (s == NULL || msg == NULL) - return -1; - - STREAM_GET(msg->peerlink_rif, s, INTERFACE_NAMSIZ); - STREAM_GETL(s, msg->my_role); - STREAM_GETL(s, msg->peer_state); - return 0; -stream_failure: - return -1; -} - -int zebra_mlag_lib_decode_vxlan_update(struct stream *s, struct mlag_vxlan *msg) -{ - if (s == NULL || msg == NULL) - return -1; - - STREAM_GETL(s, msg->anycast_ip); - STREAM_GETL(s, msg->local_ip); - return 0; - -stream_failure: - return -1; -} - -int zebra_mlag_lib_decode_frr_status(struct stream *s, - struct mlag_frr_status *msg) -{ - if (s == NULL || msg == NULL) - return -1; - - STREAM_GETL(s, msg->frr_state); - return 0; -stream_failure: - return -1; -} diff --git a/lib/mlag.h b/lib/mlag.h index a88db8b35e..2b904d44f4 100644 --- a/lib/mlag.h +++ b/lib/mlag.h @@ -26,118 +26,13 @@ extern "C" { #endif -#include "lib/if.h" -#include "lib/vrf.h" -#include "lib/stream.h" - -#define MLAG_MSG_NULL_PAYLOAD 0 -#define MLAG_MSG_NO_BATCH 1 -#define MLAG_BUF_LIMIT 2048 - enum mlag_role { MLAG_ROLE_NONE, MLAG_ROLE_PRIMARY, MLAG_ROLE_SECONDARY }; -enum mlag_state { - MLAG_STATE_DOWN, - MLAG_STATE_RUNNING, -}; - -enum mlag_frr_state { - MLAG_FRR_STATE_NONE, - MLAG_FRR_STATE_DOWN, - MLAG_FRR_STATE_UP, -}; - -enum mlag_owner { - MLAG_OWNER_NONE, - MLAG_OWNER_INTERFACE, - MLAG_OWNER_VXLAN, -}; - -/* - * This message definition should match mlag.proto - * Because message registration is based on this - */ -enum mlag_msg_type { - MLAG_MSG_NONE = 0, - MLAG_REGISTER = 1, - MLAG_DEREGISTER = 2, - MLAG_STATUS_UPDATE = 3, - MLAG_MROUTE_ADD = 4, - MLAG_MROUTE_DEL = 5, - MLAG_DUMP = 6, - MLAG_MROUTE_ADD_BULK = 7, - MLAG_MROUTE_DEL_BULK = 8, - MLAG_PIM_CFG_DUMP = 10, - MLAG_VXLAN_UPDATE = 11, - MLAG_PEER_FRR_STATUS = 12, -}; - -struct mlag_frr_status { - enum mlag_frr_state frr_state; -}; - -struct mlag_status { - char peerlink_rif[INTERFACE_NAMSIZ]; - enum mlag_role my_role; - enum mlag_state peer_state; -}; - -#define MLAG_ROLE_STRSIZE 16 - -struct mlag_vxlan { - uint32_t anycast_ip; - uint32_t local_ip; -}; - -struct mlag_mroute_add { - char vrf_name[VRF_NAMSIZ]; - uint32_t source_ip; - uint32_t group_ip; - uint32_t cost_to_rp; - enum mlag_owner owner_id; - uint8_t am_i_dr; - uint8_t am_i_dual_active; - uint32_t vrf_id; - char intf_name[INTERFACE_NAMSIZ]; -}; - -struct mlag_mroute_del { - char vrf_name[VRF_NAMSIZ]; - uint32_t source_ip; - uint32_t group_ip; - enum mlag_owner owner_id; - uint32_t vrf_id; - char intf_name[INTERFACE_NAMSIZ]; -}; - -struct mlag_msg { - enum mlag_msg_type msg_type; - uint16_t data_len; - uint16_t msg_cnt; - uint8_t data[0]; -}; - - extern char *mlag_role2str(enum mlag_role role, char *buf, size_t size); -extern char *zebra_mlag_lib_msgid_to_str(enum mlag_msg_type msg_type, char *buf, - size_t size); -extern int zebra_mlag_lib_decode_mlag_hdr(struct stream *s, - struct mlag_msg *msg); -extern int zebra_mlag_lib_decode_mroute_add(struct stream *s, - struct mlag_mroute_add *msg); -extern int zebra_mlag_lib_decode_mroute_del(struct stream *s, - struct mlag_mroute_del *msg); -extern int zebra_mlag_lib_decode_mlag_status(struct stream *s, - struct mlag_status *msg); -extern int zebra_mlag_lib_decode_vxlan_update(struct stream *s, - struct mlag_vxlan *msg); - -extern int zebra_mlag_lib_decode_frr_status(struct stream *s, - struct mlag_frr_status *msg); #ifdef __cplusplus } diff --git a/lib/zclient.c b/lib/zclient.c index 5e23a5cc33..91dbe30a09 100644 --- a/lib/zclient.c +++ b/lib/zclient.c @@ -2717,63 +2717,6 @@ stream_failure: return; } -void zclient_send_mlag_register(struct zclient *client, uint32_t bit_map) -{ - struct stream *s; - - s = client->obuf; - stream_reset(s); - - zclient_create_header(s, ZEBRA_MLAG_CLIENT_REGISTER, VRF_DEFAULT); - stream_putl(s, bit_map); - - stream_putw_at(s, 0, stream_get_endp(s)); - zclient_send_message(client); -} - -void zclient_send_mlag_deregister(struct zclient *client) -{ - zebra_message_send(client, ZEBRA_MLAG_CLIENT_UNREGISTER, VRF_DEFAULT); -} - -void zclient_send_mlag_data(struct zclient *client, struct stream *client_s) -{ - struct stream *s; - - s = client->obuf; - stream_reset(s); - - zclient_create_header(s, ZEBRA_MLAG_FORWARD_MSG, VRF_DEFAULT); - stream_put(s, client_s->data, client_s->endp); - - stream_putw_at(s, 0, stream_get_endp(s)); - zclient_send_message(client); -} - -static void zclient_mlag_process_up(int command, struct zclient *zclient, - zebra_size_t length, vrf_id_t vrf_id) -{ - if (zclient->mlag_process_up) - (*zclient->mlag_process_up)(); - -} - -static void zclient_mlag_process_down(int command, struct zclient *zclient, - zebra_size_t length, vrf_id_t vrf_id) -{ - if (zclient->mlag_process_down) - (*zclient->mlag_process_down)(); - -} - -static void zclient_mlag_handle_msg(int command, struct zclient *zclient, - zebra_size_t length, vrf_id_t vrf_id) -{ - if (zclient->mlag_handle_msg) - (*zclient->mlag_handle_msg)(zclient->ibuf, length); - -} - /* Zebra client message read function. */ static int zclient_read(struct thread *thread) { @@ -3068,15 +3011,6 @@ static int zclient_read(struct thread *thread) (*zclient->vxlan_sg_del)(command, zclient, length, vrf_id); break; - case ZEBRA_MLAG_PROCESS_UP: - zclient_mlag_process_up(command, zclient, length, vrf_id); - break; - case ZEBRA_MLAG_PROCESS_DOWN: - zclient_mlag_process_down(command, zclient, length, vrf_id); - break; - case ZEBRA_MLAG_FORWARD_MSG: - zclient_mlag_handle_msg(command, zclient, length, vrf_id); - break; default: break; } diff --git a/lib/zclient.h b/lib/zclient.h index 71ebabbf75..5f9edc36ff 100644 --- a/lib/zclient.h +++ b/lib/zclient.h @@ -178,11 +178,6 @@ typedef enum { ZEBRA_VXLAN_SG_ADD, ZEBRA_VXLAN_SG_DEL, ZEBRA_VXLAN_SG_REPLAY, - ZEBRA_MLAG_PROCESS_UP, - ZEBRA_MLAG_PROCESS_DOWN, - ZEBRA_MLAG_CLIENT_REGISTER, - ZEBRA_MLAG_CLIENT_UNREGISTER, - ZEBRA_MLAG_FORWARD_MSG, } zebra_message_types_t; struct redist_proto { @@ -277,9 +272,6 @@ struct zclient { int (*iptable_notify_owner)(ZAPI_CALLBACK_ARGS); int (*vxlan_sg_add)(ZAPI_CALLBACK_ARGS); int (*vxlan_sg_del)(ZAPI_CALLBACK_ARGS); - int (*mlag_process_up)(void); - int (*mlag_process_down)(void); - int (*mlag_handle_msg)(struct stream *msg, int len); }; /* Zebra API message flag. */ @@ -701,11 +693,5 @@ static inline void zapi_route_set_blackhole(struct zapi_route *api, SET_FLAG(api->message, ZAPI_MESSAGE_NEXTHOP); }; -extern void zclient_send_mlag_register(struct zclient *client, - uint32_t bit_map); -extern void zclient_send_mlag_deregister(struct zclient *client); - -extern void zclient_send_mlag_data(struct zclient *client, - struct stream *client_s); #endif /* _ZEBRA_ZCLIENT_H */ |
