Thanks a lot for the clarification!

Raj

On Tue, Dec 17, 2019 at 7:43 PM John Lo (loj) <l...@cisco.com> wrote:
>
> Hi Raj,
>
> A sub-interface with "dot1q inner any" can only work with L2 forwarding via 
> cross-connect or bridging where packets are forwarded using MAC header 
> without any changes to MAC header nor VLAN IDs in VLAN tags.
>
> For L3 IP forwarding, any VLAN tags on a packet must be exact match to a 
> sub-interface which means both outer and inner VLAN tag IDs must be 
> exact-matched to specific values defined of that sub-interface.  Without 
> exact match on a L3 sub-interface, VPP has no mechanism to know what VLAN 
> tags to use for packet output, such as ARP request packets or IP packets, on 
> that sub-interface. Thus, sub-interface with "inner-dot1q any" is not an 
> exact match sub-interface by definition since no match is present on inner 
> tag.
>
> I suppose the CLI:
> >> create sub-interfaces GigabitEthernet3/0/3 50 dot1ad 50 inner-dot1q any 
> >> exact-match
> should have been rejected as exact match cannot be supported on the 
> sub-interface.  This is something we should ideally fix in the CLI to avoid 
> any confusion with the meaning of exact match.
>
> Regards,
> John
>
> -----Original Message-----
> From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Raj
> Sent: Tuesday, December 17, 2019 4:39 AM
> To: vpp-dev <vpp-dev@lists.fd.io>
> Subject: [vpp-dev] QinQ and dot1ad any
>
> Hello all,
>
> When an interface is created using a command like:
>
> create sub-interfaces GigabitEthernet3/0/3 50 dot1ad 50 inner-dot1q any 
> exact-match
>
> I can see that dual tagged packets with outer vlan 50 will be accepted by 
> that interface.
>
> But how does a packet goes out from this interface? Is there a means by which 
> I can say that a given IP is with a specific S_VLAN:C_VLAN?
>
> During testing VPP could receive an ARP packet, but when it sends it out, 
> entire Ethernet header was missing. I guess there must be some means to add 
> adjacency information so that correct headers can be added.
>
> The trace is as follows:
>
>
> 00:01:04:749110: dpdk-input
>   GigabitEthernet3/0/3 rx queue 0
>   buffer 0x4c7d: current data 0, length 60, free-list 0, clone-count 0, 
> totlen-nifb 0, trace 0x1
>                  ext-hdr-valid
>                  l4-cksum-computed l4-cksum-correct
>   PKT MBUF: port 0, nb_segs 1, pkt_len 60
>     buf_len 2176, data_len 60, ol_flags 0x180, data_off 128, phys_addr
> 0x26b31fc0
>     packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
>     rss 0x0 fdir.hi 0x0 fdir.lo 0x0
>     Packet Offload Flags
>       PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
>       PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
>   ARP: 40:7b:1b:00:11:aa -> ff:ff:ff:ff:ff:ff 802.1ad vlan 50 802.1ad vlan 51
>   request, type ethernet/IP4, address size 6/4
>   40:7b:1b:00:11:aa/192.168.25.1 -> 00:00:00:00:00:00/192.168.25.2
> 00:01:04:749112: ethernet-input
>   frame: flags 0x3, hw-if-index 1, sw-if-index 1
>   ARP: 40:7b:1b:00:11:aa -> ff:ff:ff:ff:ff:ff 802.1ad vlan 50 802.1ad vlan 51
> 00:01:04:749113: arp-input
>   request, type ethernet/IP4, address size 6/4
>   40:7b:1b:00:11:aa/192.168.25.1 -> 00:00:00:00:00:00/192.168.25.2
> 00:01:04:749116: GigabitEthernet3/0/3-output
>   GigabitEthernet3/0/3.50
>   0x1235: 00:02:40:7b:1b:00 -> 00:01:08:00:06:04
> 00:01:04:749116: GigabitEthernet3/0/3-tx
>   GigabitEthernet3/0/3 tx queue 0
>   buffer 0x4c7d: current data 22, length 38, free-list 0, clone-count 0, 
> totlen-nifb 0, trace 0x1
>                  ext-hdr-valid
>                  l4-cksum-computed l4-cksum-correct vlan-2-deep l2-hdr-offset 
> 0 l3-hdr-offset 22
>   PKT MBUF: port 0, nb_segs 1, pkt_len 38
>     buf_len 2176, data_len 38, ol_flags 0x180, data_off 150, phys_addr
> 0x26b31fc0
>     packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
>     rss 0x0 fdir.hi 0x0 fdir.lo 0x0
>     Packet Offload Flags
>       PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
>       PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
>   0x1235: 00:02:40:7b:1b:00 -> 00:01:08:00:06:04
>
> btw, if inner VLAN is specified, everything works fine.
>
>
> Thanks and Regards,
>
> Raj
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#14917): https://lists.fd.io/g/vpp-dev/message/14917
Mute This Topic: https://lists.fd.io/mt/68757125/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to