Hi Xyxue,

With current-data-flag set to 1, I believe the classification match will start 
at the current_data pointer of the packet. After GRE tunnel decap, I believe 
the current_data pointer should be at the inner IP header. In order to match 
the source IP address of this inner header, the mask needs to be 
0x000000000000000000000000ffffffff and the value in the session needs to be 
0x00000000000000000000000001010102 without any skip nor offset. May be you 
should try to specify these raw hex values without specifying any offset and 
try how it works?
classify table mask hex 0x000000000000000000000000ffffffff current-data-flag 1
classify session acl-hit-next deny table-index 0 match hex 
0x00000000000000000000000001010102

As I mentioned in my original reply to you, the high level “match l3 ip-src..” 
will produce a mask that matches from start of packet assuming the presence of 
an Ethernet header with no VLAN tag and thus  not quite usable.

Regards,
John

From: 薛欣颖 [mailto:xy...@fiberhome.com]
Sent: Wednesday, May 03, 2017 10:11 PM
To: John Lo (loj) <l...@cisco.com>; vpp-dev <vpp-dev@lists.fd.io>
Subject: 回复: 回复: [vpp-dev] ACL match tunnel interface

A detailed description of my problem:
I would like to match src 1.1.1.2 in gre0,but it did not work. Is there 
anything wrong in my configuration:

vpp1:
create gre tun src 2.1.1.1 dst 2.1.1.2
set int ip address gre0 100.1.1.1/24
set int state gre0 up
ip route add 192.168.1.1/24  via 100.1.1.2 gre0
vpp2:
create gre tun src 2.1.1.2 dst 2.1.1.1
set int ip address gre0 100.1.1.2/24
set int state gre0 up
ip route add 1.1.1.2/24  via 100.1.1.1 gre0
classify  table mask l3 ip4 src  current-data-flag 1 current-data-offset 24
classify session acl-hit-next deny  table-index 0 match l3 ip4 src  1.1.1.2
set interface input acl intfc gre0  ip4-table 0


I have tried current-data-offset value 4、20、24、38,but it did not hit anyone:
DBGvpp#  show classify table verbose
  TableIdx  Sessions   NextTbl  NextNode
         0         1        -1        -1
  Heap: 3 objects, 172 of 1k used, 76 free, 0 reclaimed, 1k overhead, 2044k 
capacity
  nbuckets 2, skip 1 match 1 flag 1 offset 24
  mask 00000000000000000000ffffffff0000
[1]: heap offset 192, len 1
    0: [192]: next_index 0 advance 0 opaque -1 action 0 metadata 42832
        k: 00000000000000000000010101020000
        hits 0, last_heard 0.00

    1 active elements
    1 free lists


Thanks,
xyxue

发件人: xy...@fiberhome.com<mailto:xy...@fiberhome.com>
发送时间: 2017-05-03 19:03
收件人: John Lo (loj)<mailto:l...@cisco.com>; vpp-dev<mailto:vpp-dev@lists.fd.io>
主题: 回复: RE: [vpp-dev] ACL match tunnel interface

Thank you for your reply!
Do you mean that I need to skip the outer package when I'm matching the inner 
data?I tried ‘ current-data-offset’in 'classify table', but it didn't work.
Are the parameters I'm studying right ?

Thanks,
xyxue

发件人: John Lo (loj)<mailto:l...@cisco.com>
发送时间: 2017-05-02 15:18
收件人: 薛欣颖<mailto:xy...@fiberhome.com>; 
vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
主题: RE: [vpp-dev] ACL match tunnel interface
If you are using classification CLI’s high level parameters to match l2/l3 etc, 
it is generating bit mask for tables and match hex values for sessions assuming 
matching from start of the received packet, thus always matching the outer L2 
and L3 headers. These high level CLI parameter will not work if you have a VLAN 
tag in the received packet, such as on a VLAN sub-interface, that causes the 
bit mast and hex value to not be at the right offset from the start of the 
packet.

The most flexible (and tedious) way is to use raw bit-mask with skip value on 
classify table and hex values on classify session to perform matching, as deep 
as you want into the packet, assuming you know the incoming packet layout whose 
L2/L3/L4 header fields always matches what you specified.

Regards,
John

From: vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io> 
[mailto:vpp-dev-boun...@lists.fd.io] On Behalf Of ???
Sent: Monday, May 01, 2017 10:04 PM
To: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
Subject: [vpp-dev] ACL match tunnel interface


Hi guys,

There are some questions about acl in tunnel interface:
I can only match the tunnel  rather than the desired inner flow;
What should I do to match the inner flow?

Thanks,
xyxue


_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to