X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fip_pipeline%2Faction.c;h=a29c2b368f3a6088bd33bd437b7718a967b13f7e;hb=21ce8e44b8d395dd90fd43d078b7894df48b6eee;hp=2cedb2461e659cc1a0d6bb588819cded6a12a034;hpb=802755dca3bbf541d07aecd594bb35fe95541989;p=dpdk.git diff --git a/examples/ip_pipeline/action.c b/examples/ip_pipeline/action.c index 2cedb2461e..a29c2b368f 100644 --- a/examples/ip_pipeline/action.c +++ b/examples/ip_pipeline/action.c @@ -6,6 +6,8 @@ #include #include +#include + #include "action.h" #include "hash_func.h" @@ -133,7 +135,7 @@ port_in_action_profile_create(const char *name, } /* Node fill in */ - strncpy(profile->name, name, sizeof(profile->name)); + strlcpy(profile->name, name, sizeof(profile->name)); memcpy(&profile->params, params, sizeof(*params)); profile->ap = ap; @@ -186,6 +188,48 @@ table_action_profile_create(const char *name, ((params->action_mask & (1LLU << RTE_TABLE_ACTION_FWD)) == 0)) return NULL; + if ((params->action_mask & (1LLU << RTE_TABLE_ACTION_LB)) && + (params->lb.f_hash == NULL)) { + switch (params->lb.key_size) { + case 8: + params->lb.f_hash = hash_default_key8; + break; + + case 16: + params->lb.f_hash = hash_default_key16; + break; + + case 24: + params->lb.f_hash = hash_default_key24; + break; + + case 32: + params->lb.f_hash = hash_default_key32; + break; + + case 40: + params->lb.f_hash = hash_default_key40; + break; + + case 48: + params->lb.f_hash = hash_default_key48; + break; + + case 56: + params->lb.f_hash = hash_default_key56; + break; + + case 64: + params->lb.f_hash = hash_default_key64; + break; + + default: + return NULL; + } + + params->lb.seed = 0; + } + /* Resource */ ap = rte_table_action_profile_create(¶ms->common); if (ap == NULL) @@ -303,7 +347,7 @@ table_action_profile_create(const char *name, } /* Node fill in */ - strncpy(profile->name, name, sizeof(profile->name)); + strlcpy(profile->name, name, sizeof(profile->name)); memcpy(&profile->params, params, sizeof(*params)); profile->ap = ap;