Skip to content

Commit

Permalink
Revert "Merge pull request FRRouting#4885 from satheeshkarra/pim_mlag"
Browse files Browse the repository at this point in the history
This reverts commit d563896, reversing
changes made to 09ea1a4.
  • Loading branch information
qlyoung committed Oct 14, 2019
1 parent e34e314 commit 6a59722
Show file tree
Hide file tree
Showing 25 changed files with 22 additions and 2,749 deletions.
1 change: 0 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ include doc/manpages/subdir.am
include doc/developer/subdir.am
include include/subdir.am
include lib/subdir.am
include mlag/subdir.am
include zebra/subdir.am
include watchfrr/subdir.am
include qpb/subdir.am
Expand Down
130 changes: 0 additions & 130 deletions lib/mlag.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
105 changes: 0 additions & 105 deletions lib/mlag.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
66 changes: 0 additions & 66 deletions lib/zclient.c
Original file line number Diff line number Diff line change
Expand Up @@ -2717,63 +2717,6 @@ static void zclient_capability_decode(ZAPI_CALLBACK_ARGS)
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)
{
Expand Down Expand Up @@ -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;
}
Expand Down
14 changes: 0 additions & 14 deletions lib/zclient.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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. */
Expand Down Expand Up @@ -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 */
Loading

0 comments on commit 6a59722

Please sign in to comment.