mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 10:14:50 +00:00
bgp, zebra: add some alignments with remarks from community
align the code to remarks from community. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
This commit is contained in:
parent
e764d5faab
commit
c6423c3153
@ -2296,13 +2296,12 @@ bgp_attr_ipv6_ext_communities(struct bgp_attr_parser_args *args)
|
||||
|
||||
if (length == 0) {
|
||||
attr->ipv6_ecommunity = NULL;
|
||||
/* Empty extcomm doesn't seem to be invalid per se */
|
||||
return BGP_ATTR_PARSE_PROCEED;
|
||||
return bgp_attr_malformed(args, BGP_NOTIFY_UPDATE_OPT_ATTR_ERR,
|
||||
args->total);
|
||||
}
|
||||
|
||||
attr->ipv6_ecommunity =
|
||||
ecommunity_parse_ipv6((uint8_t *)stream_pnt(peer->curr),
|
||||
length);
|
||||
ecommunity_parse_ipv6(stream_pnt(peer->curr), length);
|
||||
/* XXX: fix ecommunity_parse to use stream API */
|
||||
stream_forward_getp(peer->curr, length);
|
||||
|
||||
|
@ -792,6 +792,7 @@ static int ecommunity_rt_soo_str_internal(char *buf, size_t bufsz,
|
||||
len = snprintf(buf, bufsz, "%s%u:%u", prefix, eas.as, eas.val);
|
||||
} else {
|
||||
/* this is an IPv6 ext community
|
||||
* first 16 bytes stands for IPv6 addres
|
||||
*/
|
||||
memcpy(&eip6.ip, pnt, 16);
|
||||
pnt += 16;
|
||||
|
@ -94,7 +94,7 @@
|
||||
|
||||
/* Extended Communities value is eight octet long. */
|
||||
#define ECOMMUNITY_SIZE 8
|
||||
#define IPV6_ECOMMUNITY_SIZE 20
|
||||
#define IPV6_ECOMMUNITY_SIZE 20
|
||||
|
||||
/* Extended Communities type flag. */
|
||||
#define ECOMMUNITY_FLAG_NON_TRANSITIVE 0x40
|
||||
@ -107,7 +107,7 @@ struct ecommunity {
|
||||
/* Size of Each Unit of Extended Communities attribute.
|
||||
* to differentiate between IPv6 ext comm and ext comm
|
||||
*/
|
||||
int unit_size;
|
||||
uint8_t unit_size;
|
||||
|
||||
/* Size of Extended Communities attribute. */
|
||||
int size;
|
||||
|
@ -263,7 +263,7 @@ void route_vty_out_flowspec(struct vty *vty, const struct prefix *p,
|
||||
{
|
||||
struct attr *attr;
|
||||
char return_string[BGP_FLOWSPEC_STRING_DISPLAY_MAX];
|
||||
char *s = NULL, *s2 = NULL;
|
||||
char *s1 = NULL, *s2 = NULL;
|
||||
json_object *json_nlri_path = NULL;
|
||||
json_object *json_ecom_path = NULL;
|
||||
json_object *json_time_path = NULL;
|
||||
@ -311,23 +311,23 @@ void route_vty_out_flowspec(struct vty *vty, const struct prefix *p,
|
||||
/* Print attribute */
|
||||
attr = path->attr;
|
||||
if (attr->ecommunity)
|
||||
s = ecommunity_ecom2str(attr->ecommunity,
|
||||
s1 = ecommunity_ecom2str(attr->ecommunity,
|
||||
ECOMMUNITY_FORMAT_ROUTE_MAP, 0);
|
||||
if (attr->ipv6_ecommunity)
|
||||
s2 = ecommunity_ecom2str(attr->ipv6_ecommunity,
|
||||
ECOMMUNITY_FORMAT_ROUTE_MAP, 0);
|
||||
if (!s && !s2)
|
||||
if (!s1 && !s2)
|
||||
return;
|
||||
if (display == NLRI_STRING_FORMAT_LARGE)
|
||||
vty_out(vty, "\t%s%s%s\n", s ? s : "",
|
||||
s2 && s ? " " : "", s2 ? s2 : "");
|
||||
vty_out(vty, "\t%s%s%s\n", s1 ? s1 : "",
|
||||
s2 && s1 ? " " : "", s2 ? s2 : "");
|
||||
else if (display == NLRI_STRING_FORMAT_MIN)
|
||||
vty_out(vty, "%s%s", s ? s : "", s2 ? s2 : "");
|
||||
vty_out(vty, "%s%s", s1 ? s1 : "", s2 ? s2 : "");
|
||||
else if (json_paths) {
|
||||
json_ecom_path = json_object_new_object();
|
||||
if (s)
|
||||
if (s1)
|
||||
json_object_string_add(json_ecom_path,
|
||||
"ecomlist", s);
|
||||
"ecomlist", s1);
|
||||
if (s2)
|
||||
json_object_string_add(json_ecom_path,
|
||||
"ecom6list", s2);
|
||||
@ -357,7 +357,8 @@ void route_vty_out_flowspec(struct vty *vty, const struct prefix *p,
|
||||
vty_out(vty, "\tNLRI NH %s\n",
|
||||
local_buff);
|
||||
}
|
||||
XFREE(MTYPE_ECOMMUNITY_STR, s);
|
||||
XFREE(MTYPE_ECOMMUNITY_STR, s1);
|
||||
XFREE(MTYPE_ECOMMUNITY_STR, s2);
|
||||
}
|
||||
peer_uptime(path->uptime, timebuf, BGP_UPTIME_LEN, 0, NULL);
|
||||
if (display == NLRI_STRING_FORMAT_LARGE) {
|
||||
|
@ -7332,7 +7332,7 @@ DEFPY(
|
||||
}
|
||||
|
||||
static int set_ecom_list(struct vty *vty, int argc, struct cmd_token **argv,
|
||||
struct ecommunity **list, int is_rt6)
|
||||
struct ecommunity **list, bool is_rt6)
|
||||
{
|
||||
struct ecommunity *ecom = NULL;
|
||||
struct ecommunity *ecomadd;
|
||||
@ -7425,10 +7425,10 @@ DEFPY (af_rd_vpn_export,
|
||||
int ret;
|
||||
afi_t afi;
|
||||
int idx = 0;
|
||||
int yes = 1;
|
||||
bool yes = true;
|
||||
|
||||
if (argv_find(argv, argc, "no", &idx))
|
||||
yes = 0;
|
||||
yes = false;
|
||||
|
||||
if (yes) {
|
||||
ret = str2prefix_rd(rd_str, &prd);
|
||||
@ -7486,10 +7486,10 @@ DEFPY (af_label_vpn_export,
|
||||
mpls_label_t label = MPLS_LABEL_NONE;
|
||||
afi_t afi;
|
||||
int idx = 0;
|
||||
int yes = 1;
|
||||
bool yes = true;
|
||||
|
||||
if (argv_find(argv, argc, "no", &idx))
|
||||
yes = 0;
|
||||
yes = false;
|
||||
|
||||
/* If "no ...", squash trailing parameter */
|
||||
if (!yes)
|
||||
@ -7581,7 +7581,6 @@ DEFPY (af_nexthop_vpn_export,
|
||||
vty_out(vty, "%% Nexthop required\n");
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
|
||||
if (!sockunion2hostprefix(nexthop_su, &p))
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
@ -7647,10 +7646,10 @@ DEFPY (af_rt_vpn_imexport,
|
||||
vpn_policy_direction_t dir;
|
||||
afi_t afi;
|
||||
int idx = 0;
|
||||
int yes = 1;
|
||||
bool yes = true;
|
||||
|
||||
if (argv_find(argv, argc, "no", &idx))
|
||||
yes = 0;
|
||||
yes = false;
|
||||
|
||||
afi = vpn_policy_getafi(vty, bgp, false);
|
||||
if (afi == AFI_MAX)
|
||||
@ -7665,7 +7664,7 @@ DEFPY (af_rt_vpn_imexport,
|
||||
vty_out(vty, "%% Missing RTLIST\n");
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
ret = set_ecom_list(vty, argc - idx, argv + idx, &ecom, 0);
|
||||
ret = set_ecom_list(vty, argc - idx, argv + idx, &ecom, false);
|
||||
if (ret != CMD_SUCCESS) {
|
||||
return ret;
|
||||
}
|
||||
@ -7727,10 +7726,10 @@ DEFPY (af_route_map_vpn_imexport,
|
||||
vpn_policy_direction_t dir;
|
||||
afi_t afi;
|
||||
int idx = 0;
|
||||
int yes = 1;
|
||||
bool yes = true;
|
||||
|
||||
if (argv_find(argv, argc, "no", &idx))
|
||||
yes = 0;
|
||||
yes = false;
|
||||
|
||||
afi = vpn_policy_getafi(vty, bgp, false);
|
||||
if (afi == AFI_MAX)
|
||||
@ -7969,12 +7968,12 @@ DEFPY (bgp_imexport_vpn,
|
||||
afi_t afi;
|
||||
safi_t safi;
|
||||
int idx = 0;
|
||||
int yes = 1;
|
||||
bool yes = true;
|
||||
int flag;
|
||||
vpn_policy_direction_t dir;
|
||||
|
||||
if (argv_find(argv, argc, "no", &idx))
|
||||
yes = 0;
|
||||
yes = false;
|
||||
|
||||
if (BGP_INSTANCE_TYPE_VRF != bgp->inst_type &&
|
||||
BGP_INSTANCE_TYPE_DEFAULT != bgp->inst_type) {
|
||||
@ -8037,15 +8036,15 @@ DEFPY (af_routetarget_import,
|
||||
struct ecommunity *ecom = NULL;
|
||||
afi_t afi;
|
||||
int idx = 0, idx_unused = 0;
|
||||
int yes = 1;
|
||||
int rt6 = 0;
|
||||
bool yes = true;
|
||||
bool rt6 = false;
|
||||
|
||||
if (argv_find(argv, argc, "no", &idx))
|
||||
yes = 0;
|
||||
yes = false;
|
||||
|
||||
if (argv_find(argv, argc, "rt6", &idx_unused) ||
|
||||
argv_find(argv, argc, "route-target6", &idx_unused))
|
||||
rt6 = 1;
|
||||
rt6 = true;
|
||||
|
||||
afi = vpn_policy_getafi(vty, bgp, false);
|
||||
if (afi == AFI_MAX)
|
||||
@ -14594,7 +14593,7 @@ static void bgp_vpn_policy_config_write_afi(struct vty *vty, struct bgp *bgp,
|
||||
|
||||
if (bgp->vpn_policy[afi].import_redirect_rtlist->unit_size
|
||||
!= ECOMMUNITY_SIZE)
|
||||
vty_out(vty, "%*srt redirect import %s\n",
|
||||
vty_out(vty, "%*srt6 redirect import %s\n",
|
||||
indent, "", b);
|
||||
else
|
||||
vty_out(vty, "%*srt redirect import %s\n",
|
||||
|
@ -1051,7 +1051,7 @@ static int zebra_pbr_show_ipset_walkcb(struct hash_bucket *bucket, void *arg)
|
||||
|
||||
vty_out(vty, "IPset %s type %s family %s\n", zpi->ipset_name,
|
||||
zebra_pbr_ipset_type2str(zpi->type),
|
||||
zpi->family == AF_INET ? "AF_INET" : "AF_INET6");
|
||||
family2str(zpi->family));
|
||||
unique.vty = vty;
|
||||
unique.zpi = zpi;
|
||||
unique.zns = zns;
|
||||
@ -1098,7 +1098,7 @@ void zebra_pbr_show_ipset_list(struct vty *vty, char *ipsetname)
|
||||
}
|
||||
vty_out(vty, "IPset %s type %s family %s\n", ipsetname,
|
||||
zebra_pbr_ipset_type2str(zpi->type),
|
||||
zpi->family == AF_INET ? "AF_INET" : "AF_INET6");
|
||||
family2str(zpi->family));
|
||||
unique.vty = vty;
|
||||
unique.zpi = zpi;
|
||||
unique.zns = zns;
|
||||
|
Loading…
Reference in New Issue
Block a user