diff options
Diffstat (limited to 'zebra/main.c')
| -rw-r--r-- | zebra/main.c | 15 | 
1 files changed, 14 insertions, 1 deletions
diff --git a/zebra/main.c b/zebra/main.c index ced29e1a25..55fd3244cb 100644 --- a/zebra/main.c +++ b/zebra/main.c @@ -83,6 +83,8 @@ uint32_t nl_rcvbufsize = 4194304;  #endif /* HAVE_NETLINK */  #define OPTION_V6_RR_SEMANTICS 2000 +#define OPTION_ASIC_OFFLOAD    2001 +  /* Command line options. */  const struct option longopts[] = {  	{"batch", no_argument, NULL, 'b'}, @@ -92,6 +94,7 @@ const struct option longopts[] = {  	{"retain", no_argument, NULL, 'r'},  	{"vrfdefaultname", required_argument, NULL, 'o'},  	{"graceful_restart", required_argument, NULL, 'K'}, +	{"asic-offload", optional_argument, NULL, OPTION_ASIC_OFFLOAD},  #ifdef HAVE_NETLINK  	{"vrfwnetns", no_argument, NULL, 'n'},  	{"nl-bufsize", required_argument, NULL, 's'}, @@ -281,6 +284,8 @@ int main(int argc, char **argv)  	char *vrf_default_name_configured = NULL;  	struct sockaddr_storage dummy;  	socklen_t dummylen; +	bool asic_offload = false; +	bool notify_on_ack = true;  	graceful_restart = 0;  	vrf_configure_backend(VRF_BACKEND_VRF_LITE); @@ -301,6 +306,7 @@ int main(int argc, char **argv)  		"  -r, --retain             When program terminates, retain added route by zebra.\n"  		"  -o, --vrfdefaultname     Set default VRF name.\n"  		"  -K, --graceful_restart   Graceful restart at the kernel level, timer in seconds for expiration\n" +		"  -A, --asic-offload       FRR is interacting with an asic underneath the linux kernel\n"  #ifdef HAVE_NETLINK  		"  -n, --vrfwnetns          Use NetNS as VRF backend\n"  		"  -s, --nl-bufsize         Set netlink receive buffer size\n" @@ -366,6 +372,13 @@ int main(int argc, char **argv)  		case OPTION_V6_RR_SEMANTICS:  			v6_rr_semantics = true;  			break; +		case OPTION_ASIC_OFFLOAD: +			if (!strcmp(optarg, "notify_on_offload")) +				notify_on_ack = false; +			if (!strcmp(optarg, "notify_on_ack")) +				notify_on_ack = true; +			asic_offload = true; +			break;  #endif /* HAVE_NETLINK */  		default:  			frr_help_exit(1); @@ -376,7 +389,7 @@ int main(int argc, char **argv)  	zrouter.master = frr_init();  	/* Zebra related initialize. */ -	zebra_router_init(); +	zebra_router_init(asic_offload, notify_on_ack);  	zserv_init();  	rib_init();  	zebra_if_init();  | 
