vhost: handle virtually non-contiguous buffers in Tx
[dpdk.git] / examples / ipsec-secgw / ipsec-secgw.c
index 3a28fcc..6bbb920 100644 (file)
@@ -78,8 +78,8 @@
 /*
  * Configurable number of RX/TX ring descriptors
  */
-#define IPSEC_SECGW_RX_DESC_DEFAULT 128
-#define IPSEC_SECGW_TX_DESC_DEFAULT 512
+#define IPSEC_SECGW_RX_DESC_DEFAULT 1024
+#define IPSEC_SECGW_TX_DESC_DEFAULT 1024
 static uint16_t nb_rxd = IPSEC_SECGW_RX_DESC_DEFAULT;
 static uint16_t nb_txd = IPSEC_SECGW_TX_DESC_DEFAULT;
 
@@ -848,7 +848,7 @@ static int32_t
 check_params(void)
 {
        uint8_t lcore;
-       uint16_t portid, nb_ports;
+       uint16_t portid;
        uint16_t i;
        int32_t socket_id;
 
@@ -857,8 +857,6 @@ check_params(void)
                return -1;
        }
 
-       nb_ports = rte_eth_dev_count();
-
        for (i = 0; i < nb_lcore_params; ++i) {
                lcore = lcore_params[i].lcore_id;
                if (!rte_lcore_is_enabled(lcore)) {
@@ -877,7 +875,7 @@ check_params(void)
                        printf("port %u is not enabled in port mask\n", portid);
                        return -1;
                }
-               if (portid >= nb_ports) {
+               if (!rte_eth_dev_is_valid_port(portid)) {
                        printf("port %u is not present on the board\n", portid);
                        return -1;
                }
@@ -1173,7 +1171,7 @@ print_ethaddr(const char *name, const struct ether_addr *eth_addr)
 
 /* Check the link status of all ports in up to 9s, and print them finally */
 static void
-check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
+check_all_ports_link_status(uint32_t port_mask)
 {
 #define CHECK_INTERVAL 100 /* 100ms */
 #define MAX_CHECK_TIME 90 /* 9s (90 * 100ms) in total */
@@ -1185,7 +1183,7 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
        fflush(stdout);
        for (count = 0; count <= MAX_CHECK_TIME; count++) {
                all_ports_up = 1;
-               for (portid = 0; portid < port_num; portid++) {
+               RTE_ETH_FOREACH_DEV(portid) {
                        if ((port_mask & (1 << portid)) == 0)
                                continue;
                        memset(&link, 0, sizeof(link));
@@ -1383,11 +1381,17 @@ cryptodevs_init(void)
                if (sess_sz > max_sess_sz)
                        max_sess_sz = sess_sz;
        }
-       for (port_id = 0; port_id < rte_eth_dev_count(); port_id++) {
+       RTE_ETH_FOREACH_DEV(port_id) {
+               void *sec_ctx;
+
                if ((enabled_port_mask & (1 << port_id)) == 0)
                        continue;
-               sess_sz = rte_security_session_get_size(
-                               rte_eth_dev_get_sec_ctx(port_id));
+
+               sec_ctx = rte_eth_dev_get_sec_ctx(port_id);
+               if (sec_ctx == NULL)
+                       continue;
+
+               sess_sz = rte_security_session_get_size(sec_ctx);
                if (sess_sz > max_sess_sz)
                        max_sess_sz = sess_sz;
        }
@@ -1464,7 +1468,7 @@ cryptodevs_init(void)
        }
 
        /* create session pools for eth devices that implement security */
-       for (port_id = 0; port_id < rte_eth_dev_count(); port_id++) {
+       RTE_ETH_FOREACH_DEV(port_id) {
                if ((enabled_port_mask & (1 << port_id)) &&
                                rte_eth_dev_get_sec_ctx(port_id)) {
                        int socket_id = rte_eth_dev_socket_id(port_id);
@@ -1640,7 +1644,7 @@ main(int32_t argc, char **argv)
        int32_t ret;
        uint32_t lcore_id;
        uint8_t socket_id;
-       uint16_t portid, nb_ports;
+       uint16_t portid;
 
        /* init EAL */
        ret = rte_eal_init(argc, argv);
@@ -1659,8 +1663,6 @@ main(int32_t argc, char **argv)
                rte_exit(EXIT_FAILURE, "Invalid unprotected portmask 0x%x\n",
                                unprotected_port_mask);
 
-       nb_ports = rte_eth_dev_count();
-
        if (check_params() < 0)
                rte_exit(EXIT_FAILURE, "check_params failed\n");
 
@@ -1694,7 +1696,7 @@ main(int32_t argc, char **argv)
                pool_init(&socket_ctx[socket_id], socket_id, NB_MBUF);
        }
 
-       for (portid = 0; portid < nb_ports; portid++) {
+       RTE_ETH_FOREACH_DEV(portid) {
                if ((enabled_port_mask & (1 << portid)) == 0)
                        continue;
 
@@ -1704,7 +1706,7 @@ main(int32_t argc, char **argv)
        cryptodevs_init();
 
        /* start ports */
-       for (portid = 0; portid < nb_ports; portid++) {
+       RTE_ETH_FOREACH_DEV(portid) {
                if ((enabled_port_mask & (1 << portid)) == 0)
                        continue;
 
@@ -1723,7 +1725,7 @@ main(int32_t argc, char **argv)
                        rte_eth_promiscuous_enable(portid);
        }
 
-       check_all_ports_link_status(nb_ports, enabled_port_mask);
+       check_all_ports_link_status(enabled_port_mask);
 
        /* launch per-lcore init on every lcore */
        rte_eal_mp_remote_launch(main_loop, NULL, CALL_MASTER);