On Thu, Mar 26, 2020 at 10:30 PM <jer...@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavat...@marvell.com>
>
> Add IPv4 lookup process function for ip4_lookup
> rte_node. This node performs LPM lookup using x86_64
> vector supported RTE_LPM API on every packet received
> and forwards it to a next node that is identified by
> lookup result.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com>
> Signed-off-by: Nithin Dabilpuram <ndabilpu...@marvell.com>
> Signed-off-by: Kiran Kumar K <kirankum...@marvell.com>

>  }
>
> +#elif defined(RTE_ARCH_X86)

# Could you move the below code to ipv4_looup_sse.h and arm64 code to
ipv4_looup_neon.h
# In order to make this node work for PPC and ARMv7, please add a
scalar version of ip4_lookup_node_process() too

> +
> +/* X86 SSE */
> +static uint16_t
> +ip4_lookup_node_process(struct rte_graph *graph, struct rte_node *node,
> +                       void **objs, uint16_t nb_objs)
> +{
> +       struct rte_mbuf *mbuf0, *mbuf1, *mbuf2, *mbuf3, **pkts;
> +       rte_edge_t next0, next1, next2, next3, next_index;
> +       struct rte_ipv4_hdr *ipv4_hdr;
> +       uint32_t ip0, ip1, ip2, ip3;
> +       void **to_next, **from;
> +       uint16_t last_spec = 0;
> +       uint16_t n_left_from;
> +       struct rte_lpm *lpm;
> +       uint16_t held = 0;
> +       uint32_t drop_nh;
> +       rte_xmm_t dst;
> +       __m128i dip; /* SSE register */
> +       int rc, i;

Reply via email to