net: add rte prefix to ether structures
[dpdk.git] / examples / l3fwd-acl / main.c
index 2c891b4..3a0f582 100644 (file)
@@ -82,7 +82,7 @@ static uint16_t nb_rxd = RTE_TEST_RX_DESC_DEFAULT;
 static uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT;
 
 /* ethernet addresses of ports */
-static struct ether_addr ports_eth_addr[RTE_MAX_ETHPORTS];
+static struct rte_ether_addr ports_eth_addr[RTE_MAX_ETHPORTS];
 
 /* mask of enabled ports */
 static uint32_t enabled_port_mask;
@@ -127,9 +127,7 @@ static struct rte_eth_conf port_conf = {
                .mq_mode        = ETH_MQ_RX_RSS,
                .max_rx_pkt_len = ETHER_MAX_LEN,
                .split_hdr_size = 0,
-               .ignore_offload_bitfield = 1,
-               .offloads = (DEV_RX_OFFLOAD_CRC_STRIP |
-                            DEV_RX_OFFLOAD_CHECKSUM),
+               .offloads = DEV_RX_OFFLOAD_CHECKSUM,
        },
        .rx_adv_conf = {
                .rss_conf = {
@@ -175,7 +173,7 @@ send_single_packet(struct rte_mbuf *m, uint16_t port);
                *c = (unsigned char)(ip >> 8 & 0xff);\
                *d = (unsigned char)(ip & 0xff);\
        } while (0)
-#define OFF_ETHHEAD    (sizeof(struct ether_hdr))
+#define OFF_ETHHEAD    (sizeof(struct rte_ether_hdr))
 #define OFF_IPV42PROTO (offsetof(struct ipv4_hdr, next_proto_id))
 #define OFF_IPV62PROTO (offsetof(struct ipv6_hdr, proto))
 #define MBUF_IPV4_2PROTO(m)    \
@@ -544,9 +542,9 @@ dump_acl4_rule(struct rte_mbuf *m, uint32_t sig)
 {
        uint32_t offset = sig & ~ACL_DENY_SIGNATURE;
        unsigned char a, b, c, d;
-       struct ipv4_hdr *ipv4_hdr = rte_pktmbuf_mtod_offset(m,
-                                                           struct ipv4_hdr *,
-                                                           sizeof(struct ether_hdr));
+       struct ipv4_hdr *ipv4_hdr =
+               rte_pktmbuf_mtod_offset(m, struct ipv4_hdr *,
+                                       sizeof(struct rte_ether_hdr));
 
        uint32_t_to_char(rte_bswap32(ipv4_hdr->src_addr), &a, &b, &c, &d);
        printf("Packet Src:%hhu.%hhu.%hhu.%hhu ", a, b, c, d);
@@ -568,9 +566,9 @@ dump_acl6_rule(struct rte_mbuf *m, uint32_t sig)
 {
        unsigned i;
        uint32_t offset = sig & ~ACL_DENY_SIGNATURE;
-       struct ipv6_hdr *ipv6_hdr = rte_pktmbuf_mtod_offset(m,
-                                                           struct ipv6_hdr *,
-                                                           sizeof(struct ether_hdr));
+       struct ipv6_hdr *ipv6_hdr =
+               rte_pktmbuf_mtod_offset(m, struct ipv6_hdr *,
+                                       sizeof(struct rte_ether_hdr));
 
        printf("Packet Src");
        for (i = 0; i < RTE_DIM(ipv6_hdr->src_addr); i += sizeof(uint16_t))
@@ -627,7 +625,7 @@ prepare_one_packet(struct rte_mbuf **pkts_in, struct acl_search_t *acl,
 
        if (RTE_ETH_IS_IPV4_HDR(pkt->packet_type)) {
                ipv4_hdr = rte_pktmbuf_mtod_offset(pkt, struct ipv4_hdr *,
-                                                  sizeof(struct ether_hdr));
+                                               sizeof(struct rte_ether_hdr));
 
                /* Check to make sure the packet is valid (RFC1812) */
                if (is_valid_ipv4_pkt(ipv4_hdr, pkt->pkt_len) >= 0) {
@@ -1756,7 +1754,7 @@ parse_args(int argc, char **argv)
 }
 
 static void
-print_ethaddr(const char *name, const struct ether_addr *eth_addr)
+print_ethaddr(const char *name, const struct rte_ether_addr *eth_addr)
 {
        char buf[ETHER_ADDR_FMT_SIZE];
        ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
@@ -1891,7 +1889,7 @@ main(int argc, char **argv)
        if (ret < 0)
                rte_exit(EXIT_FAILURE, "init_lcore_rx_queues failed\n");
 
-       nb_ports = rte_eth_dev_count();
+       nb_ports = rte_eth_dev_count_avail();
 
        if (check_port_config() < 0)
                rte_exit(EXIT_FAILURE, "check_port_config failed\n");
@@ -1926,6 +1924,18 @@ main(int argc, char **argv)
                if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
                        local_port_conf.txmode.offloads |=
                                DEV_TX_OFFLOAD_MBUF_FAST_FREE;
+
+               local_port_conf.rx_adv_conf.rss_conf.rss_hf &=
+                       dev_info.flow_type_rss_offloads;
+               if (local_port_conf.rx_adv_conf.rss_conf.rss_hf !=
+                               port_conf.rx_adv_conf.rss_conf.rss_hf) {
+                       printf("Port %u modified RSS hash function based on hardware support,"
+                               "requested:%#"PRIx64" configured:%#"PRIx64"\n",
+                               portid,
+                               port_conf.rx_adv_conf.rss_conf.rss_hf,
+                               local_port_conf.rx_adv_conf.rss_conf.rss_hf);
+               }
+
                ret = rte_eth_dev_configure(portid, nb_rx_queue,
                                        (uint16_t)n_tx_queue, &local_port_conf);
                if (ret < 0)
@@ -1982,7 +1992,6 @@ main(int argc, char **argv)
 
                        rte_eth_dev_info_get(portid, &dev_info);
                        txconf = &dev_info.default_txconf;
-                       txconf->txq_flags = ETH_TXQ_FLAGS_IGNORE;
                        txconf->offloads = local_port_conf.txmode.offloads;
                        ret = rte_eth_tx_queue_setup(portid, queueid, nb_txd,
                                                     socketid, txconf);