doc: announce flow API matching structs changes
authorFerruh Yigit <ferruh.yigit@intel.com>
Tue, 24 Nov 2020 13:15:35 +0000 (13:15 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 27 Nov 2020 18:17:00 +0000 (19:17 +0100)
commit7f01375166fc602e98efe3134803f6e1a9657458
tree0cf2e2a8dcffc1b49d070eeef142ddc076e729c5
parent8ca9bf26f585e7ab67a9fca67f4162f11315c6d6
doc: announce flow API matching structs changes

Proposing to replace protocol header fields in the ``rte_flow_item_*``
structures with the protocol structs.

This is both for documenting the intention and to be sure
``rte_flow_item_*`` always starts with complete protocol header.

Change will be done in two steps, at first step in v21.02 release,
protocol header struct will be added as union, for example:

Current ``struct rte_flow_item_eth``,

struct rte_flow_item_eth {
struct rte_ether_addr dst;
struct rte_ether_addr src;
rte_be16_t type;
uint32_t has_vlan:1;
uint32_t reserved:31;
}

will become in v21.02:

__extension__
struct rte_flow_item_eth {
union {
struct {
struct rte_ether_addr dst;
struct rte_ether_addr src;
rte_be16_t type;
};
struct rte_ether_hdr hdr;
};
uint32_t has_vlan:1;
uint32_t reserved:31;
}

After this point usage should switch to 'hdr' struct.

And in the second step, in the v21.11 LTS release the protocol fields
will be removed, and the struct will become:

struct rte_flow_item_eth {
struct rte_ether_hdr hdr;
uint32_t has_vlan:1;
uint32_t reserved:31;
}

Already many ``rte_flow_item_*`` structures implemented to have protocol
struct, target is convert all to this usage.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
doc/guides/rel_notes/deprecation.rst