summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Guibert <philippe.guibert@6wind.com>2017-02-09 08:44:13 +0100
committerPhilippe Guibert <philippe.guibert@6wind.com>2017-02-14 13:59:00 +0100
commit31689a53f1314f803f50fe07c25a0e51c46a5279 (patch)
tree4ea3d62a91d8fa79ae0cfea64b306abba09e83d4
parentdb42a173d67868b522b3a3a035372f582152b3c1 (diff)
bgpd: change str2mac call api
With the changed API, some adaptations are done in rfapi code, and in bgpd evpn code. For evpn code, the internal storage of routermac addr is kept as struct ethaddr structure. Also the evpn add_routermac api has as incoming parameter a struct ethaddr param. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
-rw-r--r--bgpd/bgp_attr_evpn.c6
-rw-r--r--bgpd/bgp_attr_evpn.h3
-rw-r--r--bgpd/bgp_route.h2
-rw-r--r--bgpd/rfapi/rfapi_vty.c2
4 files changed, 6 insertions, 7 deletions
diff --git a/bgpd/bgp_attr_evpn.c b/bgpd/bgp_attr_evpn.c
index f60784e708..93b3c9390b 100644
--- a/bgpd/bgp_attr_evpn.c
+++ b/bgpd/bgp_attr_evpn.c
@@ -34,7 +34,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include "bgpd/bgp_ecommunity.h"
#include "bgpd/bgp_evpn.h"
-void bgp_add_routermac_ecom(struct attr *attr, char *routermac)
+void bgp_add_routermac_ecom(struct attr *attr, struct ethaddr *routermac)
{
struct ecommunity_val routermac_ecom;
@@ -42,7 +42,7 @@ void bgp_add_routermac_ecom(struct attr *attr, char *routermac)
memset(&routermac_ecom, 0, sizeof(struct ecommunity_val));
routermac_ecom.val[0] = ECOMMUNITY_ENCODE_EVPN;
routermac_ecom.val[1] = ECOMMUNITY_EVPN_SUBTYPE_ROUTERMAC;
- memcpy(&routermac_ecom.val[2], routermac, ETHER_ADDR_LEN);
+ memcpy(&routermac_ecom.val[2], routermac->octet, ETHER_ADDR_LEN);
if (!attr->extra->ecommunity)
attr->extra->ecommunity = ecommunity_new();
ecommunity_add_val(attr->extra->ecommunity, &routermac_ecom);
@@ -171,7 +171,7 @@ char *ecom_mac2str(char *ecom_mac)
en = ecom_mac;
en += 2;
- return prefix_mac2str(en, NULL, 0);
+ return prefix_mac2str((struct ethaddr *)en, NULL, 0);
}
/* dst prefix must be AF_INET or AF_INET6 prefix, to forge EVPN prefix */
diff --git a/bgpd/bgp_attr_evpn.h b/bgpd/bgp_attr_evpn.h
index 7fa7256ca0..e6da7e7080 100644
--- a/bgpd/bgp_attr_evpn.h
+++ b/bgpd/bgp_attr_evpn.h
@@ -50,11 +50,10 @@ struct bgp_route_evpn {
};
extern int str2esi(const char *str, struct eth_segment_id *id);
-extern int str2mac(const char *str, char *mac);
extern char *esi2str(struct eth_segment_id *id);
extern char *ecom_mac2str(char *ecom_mac);
-extern void bgp_add_routermac_ecom(struct attr *attr, char *routermac);
+extern void bgp_add_routermac_ecom(struct attr *attr, struct ethaddr *routermac);
extern int bgp_build_evpn_prefix(int type, uint32_t eth_tag,
struct prefix *dst);
#endif /* _QUAGGA_BGP_ATTR_EVPN_H */
diff --git a/bgpd/bgp_route.h b/bgpd/bgp_route.h
index 3cd4dd59a0..e75978d003 100644
--- a/bgpd/bgp_route.h
+++ b/bgpd/bgp_route.h
@@ -206,7 +206,7 @@ struct bgp_static
/* EVPN */
struct eth_segment_id *eth_s_id;
- char *router_mac;
+ struct ethaddr *router_mac;
uint16_t encap_tunneltype;
struct prefix gatewayIp;
};
diff --git a/bgpd/rfapi/rfapi_vty.c b/bgpd/rfapi/rfapi_vty.c
index 22489e87e2..55ad036f28 100644
--- a/bgpd/rfapi/rfapi_vty.c
+++ b/bgpd/rfapi/rfapi_vty.c
@@ -314,7 +314,7 @@ rfapiL2o2Qprefix (struct rfapi_l2address_option *l2o, struct prefix *pfx)
char *
rfapiEthAddr2Str (const struct ethaddr *ea, char *buf, int bufsize)
{
- return prefix_mac2str (ea->octet, buf, bufsize);
+ return prefix_mac2str (ea, buf, bufsize);
}
int