[dpdk-dev] [PATCH v3 3/3] lpm: remove redundant check when adding lpm rule

Dai, Wei wei.dai at intel.com
Wed Aug 3 09:20:01 CEST 2016


This patch is same as patch 15094 which has been acked by Bruce Richardson.
Only minor typo is corrected according to Bruce's feedback.

> -----Original Message-----
> From: Dai, Wei
> Sent: Wednesday, August 3, 2016 3:04 PM
> To: dev at dpdk.org
> Cc: Dai, Wei <wei.dai at intel.com>
> Subject: [PATCH v3 3/3] lpm: remove redundant check when adding lpm rule
> 
> When a rule with depth > 24 is added into an existing rule with depth <=24, a
> new tbl8 is allocated, the existing rule first fulfill whole new tbl8, so the filed
> valid of each entry in this tbl8 is always true and depth of each entry is always
> <= 24 before adding the new rule with depth > 24.
> 
> Signed-off-by: Wei Dai <wei.dai at intel.com>
> ---
>  lib/librte_lpm/rte_lpm.c | 22 ++++++----------------
>  1 file changed, 6 insertions(+), 16 deletions(-)
> 
> diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index
> 24fec4b..ec67765 100644
> --- a/lib/librte_lpm/rte_lpm.c
> +++ b/lib/librte_lpm/rte_lpm.c
> @@ -940,14 +940,9 @@ add_depth_big_v20(struct rte_lpm_v20 *lpm,
> uint32_t ip_masked, uint8_t depth,
> 
>  		/* Insert new rule into the tbl8 entry. */
>  		for (i = tbl8_index; i < tbl8_index + tbl8_range; i++) {
> -			if (!lpm->tbl8[i].valid ||
> -					lpm->tbl8[i].depth <= depth) {
> -				lpm->tbl8[i].valid = VALID;
> -				lpm->tbl8[i].depth = depth;
> -				lpm->tbl8[i].next_hop = next_hop;
> -
> -				continue;
> -			}
> +			lpm->tbl8[i].valid = VALID;
> +			lpm->tbl8[i].depth = depth;
> +			lpm->tbl8[i].next_hop = next_hop;
>  		}
> 
>  		/*
> @@ -1071,14 +1066,9 @@ add_depth_big_v1604(struct rte_lpm *lpm,
> uint32_t ip_masked, uint8_t depth,
> 
>  		/* Insert new rule into the tbl8 entry. */
>  		for (i = tbl8_index; i < tbl8_index + tbl8_range; i++) {
> -			if (!lpm->tbl8[i].valid ||
> -					lpm->tbl8[i].depth <= depth) {
> -				lpm->tbl8[i].valid = VALID;
> -				lpm->tbl8[i].depth = depth;
> -				lpm->tbl8[i].next_hop = next_hop;
> -
> -				continue;
> -			}
> +			lpm->tbl8[i].valid = VALID;
> +			lpm->tbl8[i].depth = depth;
> +			lpm->tbl8[i].next_hop = next_hop;
>  		}
> 
>  		/*
> --
> 2.5.5



More information about the dev mailing list