On 10/22/2018 6:38 PM, Ori Kam wrote: > Example for MPLSoGRE tunnel: > ETH / IPV4 / GRE / MPLS / IP / L4..L7 > > In order to encapsulate such a tunnel there is a need to remove L2 of > the inner packet and encap the remaining tunnel, this is done by > applying 2 rte flow commands l2_decap followed by mplsogre_encap. > Both commands must appear in the same flow, and from the point of the > packet it both actions are applyed at the same time. (There is no part > where a packet doesn't have L2 header). > > Decapsulating such a tunnel works the other way, first we need to decap > the outer tunnel header and then apply the new L2. > So the commands will be mplsogre_decap / l2_encap > > Due to the complex encapsulation of MPLSoGRE flow action and > based on the fact testpmd does not allocate memory, this patch adds a > new command in testpmd to initialise a global structure containing the > necessary information to make the outer layer of the packet. This same > global structures will then be used by the flow commands in testpmd when > the action mplsogre_encap, mplsogre_decap, will be parsed, at this point, > the conversion into such action becomes trivial. > > Signed-off-by: Ori Kam <or...@mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yi...@intel.com>