MCPcopy Create free account
hub / github.com/F-Stack/f-stack / match_convert

Function match_convert

dpdk/examples/ip_pipeline/thread.c:2346–2576  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2344}
2345
2346static int
2347match_convert(struct table_rule_match *mh,
2348 union table_rule_match_low_level *ml,
2349 int add)
2350{
2351 memset(ml, 0, sizeof(*ml));
2352
2353 switch (mh->match_type) {
2354 case TABLE_ACL:
2355 if (mh->match.acl.ip_version)
2356 if (add) {
2357 ml->acl_add.field_value[0].value.u8 =
2358 mh->match.acl.proto;
2359 ml->acl_add.field_value[0].mask_range.u8 =
2360 mh->match.acl.proto_mask;
2361
2362 ml->acl_add.field_value[1].value.u32 =
2363 mh->match.acl.ipv4.sa;
2364 ml->acl_add.field_value[1].mask_range.u32 =
2365 mh->match.acl.sa_depth;
2366
2367 ml->acl_add.field_value[2].value.u32 =
2368 mh->match.acl.ipv4.da;
2369 ml->acl_add.field_value[2].mask_range.u32 =
2370 mh->match.acl.da_depth;
2371
2372 ml->acl_add.field_value[3].value.u16 =
2373 mh->match.acl.sp0;
2374 ml->acl_add.field_value[3].mask_range.u16 =
2375 mh->match.acl.sp1;
2376
2377 ml->acl_add.field_value[4].value.u16 =
2378 mh->match.acl.dp0;
2379 ml->acl_add.field_value[4].mask_range.u16 =
2380 mh->match.acl.dp1;
2381
2382 ml->acl_add.priority =
2383 (int32_t) mh->match.acl.priority;
2384 } else {
2385 ml->acl_delete.field_value[0].value.u8 =
2386 mh->match.acl.proto;
2387 ml->acl_delete.field_value[0].mask_range.u8 =
2388 mh->match.acl.proto_mask;
2389
2390 ml->acl_delete.field_value[1].value.u32 =
2391 mh->match.acl.ipv4.sa;
2392 ml->acl_delete.field_value[1].mask_range.u32 =
2393 mh->match.acl.sa_depth;
2394
2395 ml->acl_delete.field_value[2].value.u32 =
2396 mh->match.acl.ipv4.da;
2397 ml->acl_delete.field_value[2].mask_range.u32 =
2398 mh->match.acl.da_depth;
2399
2400 ml->acl_delete.field_value[3].value.u16 =
2401 mh->match.acl.sp0;
2402 ml->acl_delete.field_value[3].mask_range.u16 =
2403 mh->match.acl.sp1;

Calls 3

memsetFunction · 0.85
match_convert_ipv6_depthFunction · 0.85
memcpyFunction · 0.50

Tested by

no test coverage detected