]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: Add peer action for PEER_FLAG_IFPEER_V6ONLY flag
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Mon, 25 Feb 2019 19:16:02 +0000 (21:16 +0200)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Wed, 27 Feb 2019 15:36:49 +0000 (17:36 +0200)
peer_flag_modify() will always return BGP_ERR_INVALID_FLAG because
the action was not defined for PEER_FLAG_IFPEER_V6ONLY flag.

```
global PEER_FLAG_IFPEER_V6ONLY = 16384;
global BGP_ERR_INVALID_FLAG = -2;

probe process("/usr/lib/frr/bgpd").statement("peer_flag_modify@/root/frr/bgpd/bgpd.c:3975")
{
if ($flag == PEER_FLAG_IFPEER_V6ONLY && $action->type == 0)
printf("action not found for the flag PEER_FLAG_IFPEER_V6ONLY\n");
}

probe process("/usr/lib/frr/bgpd").function("peer_flag_modify").return
{
if ($return == BGP_ERR_INVALID_FLAG)
printf("return BGP_ERR_INVALID_FLAG\n");
}
```
produces:
action not found for the flag PEER_FLAG_IFPEER_V6ONLY
return BGP_ERR_INVALID_FLAG

$ vtysh -c 'conf t' -c 'router bgp 20' -c 'neighbor eth1 interface v6only remote-as external'

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
bgpd/bgpd.c

index a82dd51cc8b4053967853a58bf940e203b7615ea..7ce83ab1d3300fefcca18b418357389b4113c4c4 100644 (file)
@@ -3660,6 +3660,7 @@ static const struct peer_flag_action peer_flag_action_list[] = {
        {PEER_FLAG_DISABLE_CONNECTED_CHECK, 0, peer_change_reset},
        {PEER_FLAG_CAPABILITY_ENHE, 0, peer_change_reset},
        {PEER_FLAG_ENFORCE_FIRST_AS, 0, peer_change_reset_in},
+       {PEER_FLAG_IFPEER_V6ONLY, 0, peer_change_reset},
        {PEER_FLAG_ROUTEADV, 0, peer_change_none},
        {PEER_FLAG_TIMER, 0, peer_change_none},
        {PEER_FLAG_TIMER_CONNECT, 0, peer_change_none},