A common misconfiguration that was silently accepted but wouldn't work
was including the prefix length on the update-source; i.e. 10.1.1.1/32.
This commit rejects this config and notifies the user.
Ticket: CM-13485
Signed-off-by: Don Slice <dslice@cumulusnetworks.com.
Reviewed-by: Donald Sharp
const char *source_str)
{
struct peer *peer;
+ struct prefix p;
peer = peer_and_group_lookup_vty (vty, peer_str);
if (! peer)
if (ret == 0)
peer_update_source_addr_set (peer, &su);
else
- peer_update_source_if_set (peer, source_str);
+ {
+ if (str2prefix (source_str, &p))
+ {
+ vty_out (vty, "%% Invalid update-source, remove prefix length %s",
+ VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ else
+ peer_update_source_if_set (peer, source_str);
+ }
}
else
peer_update_source_unset (peer);