mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-24 17:52:19 +00:00
Merge pull request #10609 from FRRouting/mergify/bp/dev/8.2/pr-10590
Bgp error codes (backport #10590)
This commit is contained in:
commit
8db26e5853
@ -805,11 +805,15 @@ struct peer *peer_and_group_lookup_vty(struct vty *vty, const char *peer_str)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int bgp_vty_return(struct vty *vty, int ret)
|
||||
int bgp_vty_return(struct vty *vty, enum bgp_create_error_code ret)
|
||||
{
|
||||
const char *str = NULL;
|
||||
|
||||
switch (ret) {
|
||||
case BGP_SUCCESS:
|
||||
case BGP_CREATED:
|
||||
case BGP_GR_NO_OPERATION:
|
||||
break;
|
||||
case BGP_ERR_INVALID_VALUE:
|
||||
str = "Invalid value";
|
||||
break;
|
||||
@ -879,6 +883,36 @@ int bgp_vty_return(struct vty *vty, int ret)
|
||||
case BGP_ERR_GR_OPERATION_FAILED:
|
||||
str = "The Graceful Restart Operation failed due to an err.";
|
||||
break;
|
||||
case BGP_ERR_PEER_GROUP_MEMBER:
|
||||
str = "Peer-group member cannot override remote-as of peer-group.";
|
||||
break;
|
||||
case BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT:
|
||||
str = "Peer-group members must be all internal or all external.";
|
||||
break;
|
||||
case BGP_ERR_DYNAMIC_NEIGHBORS_RANGE_NOT_FOUND:
|
||||
str = "Range specified cannot be deleted because it is not part of current config.";
|
||||
break;
|
||||
case BGP_ERR_INSTANCE_MISMATCH:
|
||||
str = "Instance specified does not match the current instance.";
|
||||
break;
|
||||
case BGP_ERR_NO_INTERFACE_CONFIG:
|
||||
str = "Interface specified is not being used for interface based peer.";
|
||||
break;
|
||||
case BGP_ERR_SOFT_RECONFIG_UNCONFIGURED:
|
||||
str = "No configuration already specified for soft reconfiguration.";
|
||||
break;
|
||||
case BGP_ERR_AS_MISMATCH:
|
||||
str = "BGP is already running.";
|
||||
break;
|
||||
case BGP_ERR_AF_UNCONFIGURED:
|
||||
str = "AFI/SAFI specified is not currently configured.";
|
||||
break;
|
||||
case BGP_ERR_CANNOT_HAVE_LOCAL_AS_SAME_AS_REMOTE_AS:
|
||||
str = "AS specified for local as is the same as the remote as and this is not allowed.";
|
||||
break;
|
||||
case BGP_ERR_INVALID_AS:
|
||||
str = "Confederation AS specified is the same AS as our AS.";
|
||||
break;
|
||||
}
|
||||
if (str) {
|
||||
vty_out(vty, "%% %s\n", str);
|
||||
@ -4213,17 +4247,6 @@ static int peer_remote_as_vty(struct vty *vty, const char *peer_str,
|
||||
ret = peer_remote_as(bgp, &su, NULL, &as, as_type);
|
||||
}
|
||||
|
||||
/* This peer belongs to peer group. */
|
||||
switch (ret) {
|
||||
case BGP_ERR_PEER_GROUP_MEMBER:
|
||||
vty_out(vty,
|
||||
"%% Peer-group member cannot override remote-as of peer-group\n");
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
case BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT:
|
||||
vty_out(vty,
|
||||
"%% Peer-group members must be all internal or all external\n");
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
return bgp_vty_return(vty, ret);
|
||||
}
|
||||
|
||||
@ -4960,13 +4983,6 @@ DEFUN (neighbor_set_peer_group,
|
||||
|
||||
ret = peer_group_bind(bgp, &su, peer, group, &as);
|
||||
|
||||
if (ret == BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT) {
|
||||
vty_out(vty,
|
||||
"%% Peer with AS %u cannot be in this peer-group, members must be all internal or all external\n",
|
||||
as);
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
|
||||
return bgp_vty_return(vty, ret);
|
||||
}
|
||||
|
||||
|
@ -651,9 +651,6 @@ int bgp_confederation_peers_add(struct bgp *bgp, as_t as)
|
||||
struct peer *peer;
|
||||
struct listnode *node, *nnode;
|
||||
|
||||
if (!bgp)
|
||||
return BGP_ERR_INVALID_BGP;
|
||||
|
||||
if (bgp->as == as)
|
||||
return BGP_ERR_INVALID_AS;
|
||||
|
||||
|
78
bgpd/bgpd.h
78
bgpd/bgpd.h
@ -1916,46 +1916,46 @@ enum bgp_clear_type {
|
||||
(((S) == OpenSent) || ((S) == OpenConfirm) || ((S) == Established))
|
||||
|
||||
/* BGP error codes. */
|
||||
#define BGP_SUCCESS 0
|
||||
#define BGP_CREATED 1
|
||||
#define BGP_ERR_INVALID_VALUE -1
|
||||
#define BGP_ERR_INVALID_FLAG -2
|
||||
#define BGP_ERR_INVALID_AS -3
|
||||
#define BGP_ERR_INVALID_BGP -4
|
||||
#define BGP_ERR_PEER_GROUP_MEMBER -5
|
||||
#define BGP_ERR_PEER_GROUP_NO_REMOTE_AS -7
|
||||
#define BGP_ERR_PEER_GROUP_CANT_CHANGE -8
|
||||
#define BGP_ERR_PEER_GROUP_MISMATCH -9
|
||||
#define BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT -10
|
||||
#define BGP_ERR_AS_MISMATCH -12
|
||||
#define BGP_ERR_PEER_FLAG_CONFLICT -13
|
||||
#define BGP_ERR_PEER_GROUP_SHUTDOWN -14
|
||||
#define BGP_ERR_PEER_FILTER_CONFLICT -15
|
||||
#define BGP_ERR_NOT_INTERNAL_PEER -16
|
||||
#define BGP_ERR_REMOVE_PRIVATE_AS -17
|
||||
#define BGP_ERR_AF_UNCONFIGURED -18
|
||||
#define BGP_ERR_SOFT_RECONFIG_UNCONFIGURED -19
|
||||
#define BGP_ERR_INSTANCE_MISMATCH -20
|
||||
#define BGP_ERR_LOCAL_AS_ALLOWED_ONLY_FOR_EBGP -21
|
||||
#define BGP_ERR_CANNOT_HAVE_LOCAL_AS_SAME_AS -22
|
||||
#define BGP_ERR_TCPSIG_FAILED -23
|
||||
#define BGP_ERR_NO_EBGP_MULTIHOP_WITH_TTLHACK -24
|
||||
#define BGP_ERR_NO_IBGP_WITH_TTLHACK -25
|
||||
#define BGP_ERR_NO_INTERFACE_CONFIG -26
|
||||
#define BGP_ERR_CANNOT_HAVE_LOCAL_AS_SAME_AS_REMOTE_AS -27
|
||||
#define BGP_ERR_AS_OVERRIDE -28
|
||||
#define BGP_ERR_INVALID_DYNAMIC_NEIGHBORS_LIMIT -29
|
||||
#define BGP_ERR_DYNAMIC_NEIGHBORS_RANGE_EXISTS -30
|
||||
#define BGP_ERR_DYNAMIC_NEIGHBORS_RANGE_NOT_FOUND -31
|
||||
#define BGP_ERR_INVALID_FOR_DYNAMIC_PEER -32
|
||||
#define BGP_ERR_MAX -33
|
||||
#define BGP_ERR_INVALID_FOR_DIRECT_PEER -34
|
||||
#define BGP_ERR_PEER_SAFI_CONFLICT -35
|
||||
enum bgp_create_error_code {
|
||||
BGP_SUCCESS = 0,
|
||||
BGP_CREATED = 1,
|
||||
BGP_ERR_INVALID_VALUE = -1,
|
||||
BGP_ERR_INVALID_FLAG = -2,
|
||||
BGP_ERR_INVALID_AS = -3,
|
||||
BGP_ERR_PEER_GROUP_MEMBER = -4,
|
||||
BGP_ERR_PEER_GROUP_NO_REMOTE_AS = -5,
|
||||
BGP_ERR_PEER_GROUP_CANT_CHANGE = -6,
|
||||
BGP_ERR_PEER_GROUP_MISMATCH = -7,
|
||||
BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT = -8,
|
||||
BGP_ERR_AS_MISMATCH = -9,
|
||||
BGP_ERR_PEER_FLAG_CONFLICT = -10,
|
||||
BGP_ERR_PEER_GROUP_SHUTDOWN = -11,
|
||||
BGP_ERR_PEER_FILTER_CONFLICT = -12,
|
||||
BGP_ERR_NOT_INTERNAL_PEER = -13,
|
||||
BGP_ERR_REMOVE_PRIVATE_AS = -14,
|
||||
BGP_ERR_AF_UNCONFIGURED = -15,
|
||||
BGP_ERR_SOFT_RECONFIG_UNCONFIGURED = -16,
|
||||
BGP_ERR_INSTANCE_MISMATCH = -17,
|
||||
BGP_ERR_LOCAL_AS_ALLOWED_ONLY_FOR_EBGP = -18,
|
||||
BGP_ERR_CANNOT_HAVE_LOCAL_AS_SAME_AS = -19,
|
||||
BGP_ERR_TCPSIG_FAILED = -20,
|
||||
BGP_ERR_NO_EBGP_MULTIHOP_WITH_TTLHACK = -21,
|
||||
BGP_ERR_NO_IBGP_WITH_TTLHACK = -22,
|
||||
BGP_ERR_NO_INTERFACE_CONFIG = -23,
|
||||
BGP_ERR_CANNOT_HAVE_LOCAL_AS_SAME_AS_REMOTE_AS = -24,
|
||||
BGP_ERR_AS_OVERRIDE = -25,
|
||||
BGP_ERR_INVALID_DYNAMIC_NEIGHBORS_LIMIT = -26,
|
||||
BGP_ERR_DYNAMIC_NEIGHBORS_RANGE_EXISTS = -27,
|
||||
BGP_ERR_DYNAMIC_NEIGHBORS_RANGE_NOT_FOUND = -28,
|
||||
BGP_ERR_INVALID_FOR_DYNAMIC_PEER = -29,
|
||||
BGP_ERR_INVALID_FOR_DIRECT_PEER = -30,
|
||||
BGP_ERR_PEER_SAFI_CONFLICT = -31,
|
||||
|
||||
/* BGP GR ERRORS */
|
||||
#define BGP_ERR_GR_INVALID_CMD -36
|
||||
#define BGP_ERR_GR_OPERATION_FAILED -37
|
||||
#define BGP_GR_NO_OPERATION -38
|
||||
/* BGP GR ERRORS */
|
||||
BGP_ERR_GR_INVALID_CMD = -32,
|
||||
BGP_ERR_GR_OPERATION_FAILED = -33,
|
||||
BGP_GR_NO_OPERATION = -34,
|
||||
};
|
||||
|
||||
/*
|
||||
* Enumeration of different policy kinds a peer can be configured with.
|
||||
|
Loading…
Reference in New Issue
Block a user