examples/ipsec-secgw: add event helper config init/uninit
[dpdk.git] / examples / kni / main.c
index 8eb5b61..29fc37e 100644 (file)
@@ -176,9 +176,13 @@ signal_handler(int signum)
                return;
        }
 
-       /* When we receive a RTMIN or SIGINT signal, stop kni processing */
-       if (signum == SIGRTMIN || signum == SIGINT){
-               printf("\nSIGRTMIN/SIGINT received. KNI processing stopping.\n");
+       /*
+        * When we receive a RTMIN or SIGINT or SIGTERM signal,
+        * stop kni processing
+        */
+       if (signum == SIGRTMIN || signum == SIGINT || signum == SIGTERM) {
+               printf("\nSIGRTMIN/SIGINT/SIGTERM received. "
+                       "KNI processing stopping.\n");
                rte_atomic32_inc(&kni_stop);
                return;
         }
@@ -940,11 +944,18 @@ kni_alloc(uint16_t port_id)
                                        port_id, strerror(-ret));
 
                        /* Get the interface default mac address */
-                       rte_eth_macaddr_get(port_id,
+                       ret = rte_eth_macaddr_get(port_id,
                                (struct rte_ether_addr *)&conf.mac_addr);
+                       if (ret != 0)
+                               rte_exit(EXIT_FAILURE,
+                                       "Failed to get MAC address (port %u): %s\n",
+                                       port_id, rte_strerror(-ret));
 
                        rte_eth_dev_get_mtu(port_id, &conf.mtu);
 
+                       conf.min_mtu = dev_info.min_mtu;
+                       conf.max_mtu = dev_info.max_mtu;
+
                        memset(&ops, 0, sizeof(ops));
                        ops.port_id = port_id;
                        ops.change_mtu = kni_change_mtu;
@@ -999,6 +1010,7 @@ main(int argc, char** argv)
        signal(SIGUSR2, signal_handler);
        signal(SIGRTMIN, signal_handler);
        signal(SIGINT, signal_handler);
+       signal(SIGTERM, signal_handler);
 
        /* Initialise EAL */
        ret = rte_eal_init(argc, argv);