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

Function nfp_flow_alloc

dpdk/drivers/net/nfp/nfp_flow.c:443–475  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

441}
442
443static struct rte_flow *
444nfp_flow_alloc(struct nfp_fl_key_ls *key_layer, uint32_t port_id)
445{
446 char *tmp;
447 size_t len;
448 struct rte_flow *nfp_flow;
449 struct nfp_fl_payload *payload;
450
451 nfp_flow = rte_zmalloc("nfp_flow", sizeof(struct rte_flow), 0);
452 if (nfp_flow == NULL)
453 goto exit;
454
455 len = key_layer->key_size + key_layer->key_size + key_layer->act_size;
456 tmp = rte_zmalloc("nfp_flow_payload", len + sizeof(struct nfp_fl_rule_metadata), 0);
457 if (tmp == NULL)
458 goto free_flow;
459
460 nfp_flow->length = len;
461 nfp_flow->mtr_id = NFP_MAX_MTR_CNT;
462 nfp_flow->port_id = port_id;
463 payload = &nfp_flow->payload;
464 payload->meta = (struct nfp_fl_rule_metadata *)tmp;
465 payload->unmasked_data = tmp + sizeof(struct nfp_fl_rule_metadata);
466 payload->mask_data = payload->unmasked_data + key_layer->key_size;
467 payload->action_data = payload->mask_data + key_layer->key_size;
468
469 return nfp_flow;
470
471free_flow:
472 rte_free(nfp_flow);
473exit:
474 return NULL;
475}
476
477void
478nfp_flow_free(struct rte_flow *nfp_flow)

Callers 1

nfp_flow_processFunction · 0.85

Calls 2

rte_zmallocFunction · 0.85
rte_freeFunction · 0.85

Tested by

no test coverage detected