| 2344 | } |
| 2345 | |
| 2346 | static int |
| 2347 | match_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; |
no test coverage detected