diff options
Diffstat (limited to 'zebra/zebra_nb_config.c')
| -rw-r--r-- | zebra/zebra_nb_config.c | 28 | 
1 files changed, 16 insertions, 12 deletions
diff --git a/zebra/zebra_nb_config.c b/zebra/zebra_nb_config.c index df95770307..ea2e20ed3b 100644 --- a/zebra/zebra_nb_config.c +++ b/zebra/zebra_nb_config.c @@ -1550,12 +1550,14 @@ int lib_route_map_entry_set_action_source_v4_modify(  			if (pif != NULL)  				break;  		} -		if (pif == NULL) { -			snprintf(args->errmsg, args->errmsg_len, -				 "is not a local address: %s", -				 yang_dnode_get_string(args->dnode, NULL)); -			return NB_ERR_VALIDATION; -		} +		/* +		 * On startup the local address *may* not have come up +		 * yet.  We need to allow startup configuration of +		 * set src or we are fudged.  Log it for future fun +		 */ +		if (pif == NULL) +			zlog_warn("set src %pI4 is not a local address", +				  &p.u.prefix4);  		return NB_OK;  	case NB_EV_PREPARE:  	case NB_EV_ABORT: @@ -1618,12 +1620,14 @@ int lib_route_map_entry_set_action_source_v6_modify(  			if (pif != NULL)  				break;  		} -		if (pif == NULL) { -			snprintf(args->errmsg, args->errmsg_len, -				 "is not a local adddress: %s", -				 yang_dnode_get_string(args->dnode, NULL)); -			return NB_ERR_VALIDATION; -		} +		/* +		 * On startup the local address *may* not have come up +		 * yet.  We need to allow startup configuration of +		 * set src or we are fudged.  Log it for future fun +		 */ +		if (pif == NULL) +			zlog_warn("set src %pI6 is not a local address", +				  &p.u.prefix6);  		return NB_OK;  	case NB_EV_PREPARE:  	case NB_EV_ABORT:  | 
