Re: [PATCH v1] Modify and modularize l3fwd code
From: Ananyev, Konstantin <hidden>
Date: 2016-01-18 13:31:13
From: Ravi Kerur [mailto:rkerur@gmail.com]
Sent: Monday, December 21, 2015 11:13 PM
To: dev@dpdk.org
Cc: Richardson, Bruce; Doherty, Declan; Ananyev, Konstantin; Ravi Kerur
Subject: [PATCH v1] Modify and modularize l3fwd code
v1:
> Rebase to latest code base for DPDK team review.
Intel team's (Konstantin, Bruce and Declan) review comments
v4<-v3:
> Fix code review comments from Konstantin
> Move buffer optimization code into l3fwd_lpm_sse.h
and l3fwd_em_sse.h for LPM and EM respectively
> Add compile time __SSE4_1__ for header file inclusion
> Tested with CONFIG_RTE_MACHINE=default for non
__SSE4_1__ compilation and build
> Compiled for GCC 4.8.4 and 5.1 on Ubuntu 14.04
v3<-v2:
> Fix code review comments from Bruce
> Fix multiple static definitions
> Move local #defines to C files, common #defines
to H file.
> Rename ipv4_l3fwd_route to ipv4_l3fwd_lpm and ipv4_l3fwd_em
> Rename ipv6_l3fwd_route to ipv6_l3fwd_lpm and ipv6_l3fwd_lpm
> Pass additional parameter to send_single_packet
> Compiled for GCC 4.8.4 and 5.1 on Ubuntu 14.04
v2<-v1:
> Fix errors in GCC 5.1
> Restore "static inline" functions, rearrange
functions to take "static inline" into account
> Duplicate main_loop for LPM and EM
v1:
> Split main.c into following 3 files
> main.c, (parsing, buffer alloc, and other utilities)
> l3fwd_lpm.c, (Longest Prefix Match functions)
> l3fwd_em.c, (Exact Match f.e. Hash functions)
> l3fwd.h, (Common defines and prototypes)
> Select LPM or EM based on run time selection f.e.
> l3fwd -c 0x1 -n 1 -- -p 0x1 -E ... (Exact Match)
> l3fwd -c 0x1 -n 1 -- -p 0x1 -L ... (LPM)
> Options "E" and "L" are mutualy-exclusive.
> Use function pointers during initialiation of relevant
data structures.
> Remove unwanted #ifdefs in the code with exception to
> DO_RFC_1812_CHECKS
> RTE_MACHINE_CPUFLAG_SSE4_2
> Compiled for
> i686-native-linuxapp-gcc
> x86_64-native-linuxapp-gcc
> x86_x32-native-linuxapp-gcc
> x86_64-native-bsdapp-gcc
> Tested on
> Ubuntu 14.04 (GCC 4.8.4)
> FreeBSD 10.0 (GCC 4.8)
> I217 and I218 respectively.
Signed-off-by: Ravi Kerur <redacted>
---Acked-by: Konstantin Ananyev <redacted> Great effort, thanks for doing it.