Jamal Hadi Salim wrote: > We add an initial set of kfuncs to allow interactions from eBPF programs > to the P4TC domain. > If you just use bpf maps then you get all the bpf map type for free and you get the bpf_map_* ops from BPF side. I don't see any use for this duplication. > - bpf_p4tc_tbl_read: Used to lookup a table entry from a BPF > program installed in TC. To find the table entry we take in an skb, the > pipeline ID, the table ID, a key and a key size. > We use the skb to get the network namespace structure where all the > pipelines are stored. After that we use the pipeline ID and the table > ID, to find the table. We then use the key to search for the entry. > We return an entry on success and NULL on failure. > > - xdp_p4tc_tbl_read: Used to lookup a table entry from a BPF > program installed in XDP. To find the table entry we take in an xdp_md, > the pipeline ID, the table ID, a key and a key size. > We use struct xdp_md to get the network namespace structure where all > the pipelines are stored. After that we use the pipeline ID and the table > ID, to find the table. We then use the key to search for the entry. > We return an entry on success and NULL on failure. > > - bpf_p4tc_entry_create: Used to create a table entry from a BPF > program installed in TC. To create the table entry we take an skb, the > pipeline ID, the table ID, a key and its size, and an action which will > be associated with the new entry. > We return 0 on success and a negative errno on failure > > - xdp_p4tc_entry_create: Used to create a table entry from a BPF > program installed in XDP. To create the table entry we take an xdp_md, the > pipeline ID, the table ID, a key and its size, and an action which will > be associated with the new entry. > We return 0 on success and a negative errno on failure > > - bpf_p4tc_entry_create_on_miss: conforms to PNA "add on miss". > First does a lookup using the passed key and upon a miss will add the entry > to the table. > We return 0 on success and a negative errno on failure > > - xdp_p4tc_entry_create_on_miss: conforms to PNA "add on miss". > First does a lookup using the passed key and upon a miss will add the entry > to the table. > We return 0 on success and a negative errno on failure > > - bpf_p4tc_entry_update: Used to update a table entry from a BPF > program installed in TC. To update the table entry we take an skb, the > pipeline ID, the table ID, a key and its size, and an action which will > be associated with the new entry. > We return 0 on success and a negative errno on failure > > - xdp_p4tc_entry_update: Used to update a table entry from a BPF > program installed in XDP. To update the table entry we take an xdp_md, the > pipeline ID, the table ID, a key and its size, and an action which will > be associated with the new entry. > We return 0 on success and a negative errno on failure > > - bpf_p4tc_entry_delete: Used to delete a table entry from a BPF > program installed in TC. To delete the table entry we take an skb, the > pipeline ID, the table ID, a key and a key size. > We return 0 on success and a negative errno on failure > > - xdp_p4tc_entry_delete: Used to delete a table entry from a BPF > program installed in XDP. To delete the table entry we take an xdp_md, the > pipeline ID, the table ID, a key and a key size. > We return 0 on success and a negative errno on failure > > Co-developed-by: Victor Nogueira <victor@xxxxxxxxxxxx> > Signed-off-by: Victor Nogueira <victor@xxxxxxxxxxxx> > Co-developed-by: Pedro Tammela <pctammela@xxxxxxxxxxxx> > Signed-off-by: Pedro Tammela <pctammela@xxxxxxxxxxxx> > Signed-off-by: Jamal Hadi Salim <jhs@xxxxxxxxxxxx> > ---