net: add rte prefix to IP structure
[dpdk.git] / examples / l3fwd / l3fwd_lpm.h
index 258a82f..d730d72 100644 (file)
@@ -1,77 +1,24 @@
-/*-
- *   BSD LICENSE
- *
- *   Copyright(c) 2010-2016 Intel Corporation. All rights reserved.
- *   All rights reserved.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following conditions
- *   are met:
- *
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in
- *       the documentation and/or other materials provided with the
- *       distribution.
- *     * Neither the name of Intel Corporation nor the names of its
- *       contributors may be used to endorse or promote products derived
- *       from this software without specific prior written permission.
- *
- *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation
  */
 
 #ifndef __L3FWD_LPM_H__
 #define __L3FWD_LPM_H__
 
-static inline uint8_t
-lpm_get_ipv4_dst_port(void *ipv4_hdr,  uint8_t portid, void *lookup_struct)
-{
-       uint32_t next_hop;
-       struct rte_lpm *ipv4_l3fwd_lookup_struct =
-               (struct rte_lpm *)lookup_struct;
-
-       return (uint8_t) ((rte_lpm_lookup(ipv4_l3fwd_lookup_struct,
-               rte_be_to_cpu_32(((struct ipv4_hdr *)ipv4_hdr)->dst_addr),
-               &next_hop) == 0) ? next_hop : portid);
-}
-
-static inline uint8_t
-lpm_get_ipv6_dst_port(void *ipv6_hdr,  uint8_t portid, void *lookup_struct)
-{
-       uint32_t next_hop;
-       struct rte_lpm6 *ipv6_l3fwd_lookup_struct =
-               (struct rte_lpm6 *)lookup_struct;
-
-       return (uint8_t) ((rte_lpm6_lookup(ipv6_l3fwd_lookup_struct,
-                       ((struct ipv6_hdr *)ipv6_hdr)->dst_addr,
-                       &next_hop) == 0) ?  next_hop : portid);
-}
-
-static inline __attribute__((always_inline)) void
-l3fwd_lpm_simple_forward(struct rte_mbuf *m, uint8_t portid,
+static __rte_always_inline void
+l3fwd_lpm_simple_forward(struct rte_mbuf *m, uint16_t portid,
                struct lcore_conf *qconf)
 {
-       struct ether_hdr *eth_hdr;
-       struct ipv4_hdr *ipv4_hdr;
-       uint8_t dst_port;
+       struct rte_ether_hdr *eth_hdr;
+       struct rte_ipv4_hdr *ipv4_hdr;
+       uint16_t dst_port;
 
-       eth_hdr = rte_pktmbuf_mtod(m, struct ether_hdr *);
+       eth_hdr = rte_pktmbuf_mtod(m, struct rte_ether_hdr *);
 
        if (RTE_ETH_IS_IPV4_HDR(m->packet_type)) {
                /* Handle IPv4 headers.*/
-               ipv4_hdr = rte_pktmbuf_mtod_offset(m, struct ipv4_hdr *,
-                                                  sizeof(struct ether_hdr));
+               ipv4_hdr = rte_pktmbuf_mtod_offset(m, struct rte_ipv4_hdr *,
+                                               sizeof(struct rte_ether_hdr));
 
 #ifdef DO_RFC_1812_CHECKS
                /* Check to make sure the packet is valid (RFC1812) */
@@ -96,15 +43,16 @@ l3fwd_lpm_simple_forward(struct rte_mbuf *m, uint8_t portid,
                *(uint64_t *)&eth_hdr->d_addr = dest_eth_addr[dst_port];
 
                /* src addr */
-               ether_addr_copy(&ports_eth_addr[dst_port], &eth_hdr->s_addr);
+               rte_ether_addr_copy(&ports_eth_addr[dst_port],
+                               &eth_hdr->s_addr);
 
                send_single_packet(qconf, m, dst_port);
        } else if (RTE_ETH_IS_IPV6_HDR(m->packet_type)) {
                /* Handle IPv6 headers.*/
-               struct ipv6_hdr *ipv6_hdr;
+               struct rte_ipv6_hdr *ipv6_hdr;
 
-               ipv6_hdr = rte_pktmbuf_mtod_offset(m, struct ipv6_hdr *,
-                                                  sizeof(struct ether_hdr));
+               ipv6_hdr = rte_pktmbuf_mtod_offset(m, struct rte_ipv6_hdr *,
+                                               sizeof(struct rte_ether_hdr));
 
                dst_port = lpm_get_ipv6_dst_port(ipv6_hdr, portid,
                                        qconf->ipv6_lookup_struct);
@@ -117,7 +65,8 @@ l3fwd_lpm_simple_forward(struct rte_mbuf *m, uint8_t portid,
                *(uint64_t *)&eth_hdr->d_addr = dest_eth_addr[dst_port];
 
                /* src addr */
-               ether_addr_copy(&ports_eth_addr[dst_port], &eth_hdr->s_addr);
+               rte_ether_addr_copy(&ports_eth_addr[dst_port],
+                               &eth_hdr->s_addr);
 
                send_single_packet(qconf, m, dst_port);
        } else {
@@ -128,7 +77,7 @@ l3fwd_lpm_simple_forward(struct rte_mbuf *m, uint8_t portid,
 
 static inline void
 l3fwd_lpm_no_opt_send_packets(int nb_rx, struct rte_mbuf **pkts_burst,
-                               uint8_t portid, struct lcore_conf *qconf)
+                               uint16_t portid, struct lcore_conf *qconf)
 {
        int32_t j;