Hello,

10/04/2024 13:37, Jie Hai:
> Hi, all,
> 
> I have some questions about the sub-options for ``VLAN`` and ``ETH`` item.

If it is not clear in the doxygen documentation,
please do not hesitate to submit a patch to make it more explicit.

> According to the documentation, ``has_vlan`` is sub-option of ``ETH``
> item and it means that the pattern contains at least one vlan.

Yes

> The ``VLAN`` item is used to match tagged packets and have some
> sub-options such as ``vid``, ``tci``, etc.
> 
> If we combine them, what should the effect be?
> For instance,
> 
> rule-0: flow create 0 ingress pattern  eth  has_vlan is 1 / vlan  / end 
> actions queue index 2 / end

I don't think the item "vlan" has any impact here.
I mean it is redundant with "has_vlan".

> rule-1: flow create 0 ingress pattern  eth  has_vlan is 1 / vlan vid is 
> 10 / end actions queue index 2 / end
> 
> For rule-0, should it match single-tagged packets only or multi-tagged 
> only or both?

I would say it matches 1 VLAN or more.

> That is to say, which one will take effect, `has_vlan is 1`  or `vlan` 
> or both?

I think it is redundant.
The real interesting usage of "has_vlan" would be for matching untagged packets.

> For rule-2, which packets should it match, with inner VLAN id 10, or 

You mean rule-1

> outer VLAN id 10, or both 10?

In case of QinQ, I suppose specifying only 1 VLAN allows to match either inner 
or outer.


> The hns3 driver supports only the exact matching of VLAN numer.
> And it is planned to adapt ``has_vlan`` and ``has_more_vlan`` to the
> meaning of one VLAN for hns3 driver. Therefore, if the preceding 
> combinations are supported, we need to confirm the exact meanings.
> 
> So, what are your views on the above question?

I'm adding Ori Kam, maintainer of rte_flow API to confirm.


Reply via email to