Hi Xuekun,

> Sorry, I expressed wrong meanings. 
> I mean could you pls. implement this feature with an optimization way? 

Different than what’s already in these three commits?

b3655e5592e3e8e48eb087632f3fa71915891a9f
7eb9d9608b5b47b95f4860b2c470411658f7cdac
4146c65f0dd0b5412746064f230b70ec894d2980

Cheers,
Ole

> -----Original Message-----
> From: Ole Troan <otr...@employees.org> 
> Sent: Monday, August 06, 2018 6:28 PM
> To: Hu, Xuekun <xuekun...@intel.com>
> Cc: Ni, Hongjun <hongjun...@intel.com>; vpp-dev <vpp-dev@lists.fd.io>
> Subject: Re: [vpp-dev] IP reassembly doesn't work in VPP 18.07
> 
> Hi there,
> 
>> 
>> Thanks, Ole, your patch works! May consider how to implement an 
>> optimized one. :-)
> 
> Yes, please. ;-)
> 
>> 
>> BTW. I'm curious why it is IPv4 fragmentation error, not reassembly. 
>> From the trace, looks like dpdk-input node receives two fragmented packets, 
>> then try to reassemble them, then fail. Is my understanding not right? 
>> Thanks. 
> 
> From the trace it looks like it’s the ICMP echo response that’s getting 
> fragmented (after the request was reassembled.).
> 
> Cheers,
> Ole
> 
>> 
>> -----Original Message-----
>> From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Ole Troan
>> Sent: Monday, August 06, 2018 4:35 PM
>> To: Ni, Hongjun <hongjun...@intel.com>
>> Cc: vpp-dev <vpp-dev@lists.fd.io>; Hu, Xuekun <xuekun...@intel.com>
>> Subject: Re: [vpp-dev] IP reassembly doesn't work in VPP 18.07
>> 
>> Looks to me like it’s IPv4 fragmentation that fails, not reassembly.
>> Currently fragmentation on buffer chains isn’t supported.
>> Try this patch for an ugly hack: https://gerrit.fd.io/r/#/c/13918/
>> 
>> Cheers,
>> Ole
>> 
>>> On 6 Aug 2018, at 08:34, Ni, Hongjun <hongjun...@intel.com> wrote:
>>> 
>>> Hi all,
>>> 
>>> We performed below test on VPP 18.07, and it seems that IP reassembly 
>>> doesn't work in VPP 18.07.
>>> 
>>> Below is the test topology:
>>> Machine A is the VPP DUT, while machine B is just a standard Linux server.
>>> Network topology: Machine A (VPP) <----> Machine B ; And set both MTU 
>>> to 1500
>>> Issue: “ping A_ip -s 2000” at B doesn’t get reply from A; While from VPP 
>>> (A), “ping B_ip size 1900” does.
>>> 
>>> Could you help to take a look at this issue?  Thanks a lot.
>>> 
>>> Below is the configuration and packet trace:
>>> VPP CLI: 
>>>             set interface state TenGigabitEthernetaf/0/1 up
>>>             set interface ip address TenGigabitEthernetaf/0/1
>>> 10.1.1.2/24 set interface mtu 1500 TenGigabitEthernetaf/0/1 set 
>>> interface reassembly TenGigabitEthernetaf/0/1 on vpp# show errors
>>>    314                ip4-frag                malformed packet
>>> Vpp# show trace
>>> Packet 1
>>> 
>>> 00:04:02:492398: dpdk-input
>>> TenGigabitEthernetaf/0/1 rx queue 0
>>> buffer 0x2556: current data 14, length 1500, free-list 0, clone-count 0, 
>>> totlen-nifb 0, trace 0x0
>>>                ext-hdr-valid
>>>                l4-cksum-computed l4-cksum-correct l2-hdr-offset 0  
>>> PKT MBUF: port 0, nb_segs 1, pkt_len 1514
>>>   buf_len 2176, data_len 1514, ol_flags 0x180, data_off 128, phys_addr 
>>> 0x80095600
>>>   packet_type 0x391 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
>>>   Packet Types
>>>     RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
>>>     RTE_PTYPE_L3_IPV4_EXT_UNKNOWN (0x0090) IPv4 packet with or without 
>>> extension headers
>>>     RTE_PTYPE_L4_FRAG (0x0300) Fragmented IP packet
>>> IP4: 68:05:ca:3a:19:18 -> 3c:fd:fe:a9:cc:ed
>>> ICMP: 10.1.1.1 -> 10.1.1.2
>>>   tos 0x00, ttl 64, length 1500, checksum 0x2eb6
>>>   fragment id 0x1067, flags MORE_FRAGMENTS  ICMP echo_request 
>>> checksum 0x496a
>>> 00:04:02:492403: ip4-input-no-checksum
>>> ICMP: 10.1.1.1 -> 10.1.1.2
>>>   tos 0x00, ttl 64, length 1500, checksum 0x2eb6
>>>   fragment id 0x1067, flags MORE_FRAGMENTS  ICMP echo_request 
>>> checksum 0x496a
>>> 00:04:02:492406: ip4-reassembly-feature  reass id: 1000000118, op id: 
>>> 0 first bi: 9558, data len: 1480, ip/fragment[0, 1479]
>>>                                new range: [0, 1479], off 0, len 
>>> 1480, bi 9558  reass id: 1000000118, op id: 2 first bi: 9558, data len: 
>>> 2008, ip/fragment[0, 1479]
>>>                                finalize reassembly
>>> 00:04:02:492434: ip4-lookup
>>> fib 0 dpo-idx 5 flow hash: 0x00000000
>>> ICMP: 10.1.1.1 -> 10.1.1.2
>>>   tos 0x00, ttl 64, length 2028, checksum 0x4ca6
>>>   fragment id 0x1067
>>> ICMP echo_request checksum 0x496a
>>> 00:04:02:492435: ip4-local
>>>   ICMP: 10.1.1.1 -> 10.1.1.2
>>>     tos 0x00, ttl 64, length 2028, checksum 0x4ca6
>>>     fragment id 0x1067
>>>   ICMP echo_request checksum 0x496a
>>> 00:04:02:492436: ip4-icmp-input
>>> ICMP: 10.1.1.1 -> 10.1.1.2
>>>   tos 0x00, ttl 64, length 2028, checksum 0x4ca6
>>>   fragment id 0x1067
>>> ICMP echo_request checksum 0x496a
>>> 00:04:02:492436: ip4-icmp-echo-request
>>> ICMP: 10.1.1.1 -> 10.1.1.2
>>>   tos 0x00, ttl 64, length 2028, checksum 0x4ca6
>>>   fragment id 0x1067
>>> ICMP echo_request checksum 0x496a
>>> 00:04:02:492436: ip4-load-balance
>>> fib 0 dpo-idx 13 flow hash: 0x00000000
>>> ICMP: 10.1.1.2 -> 10.1.1.1
>>>   tos 0x00, ttl 64, length 2028, checksum 0x2d49
>>>   fragment id 0x2fc4
>>> ICMP echo_reply checksum 0x516a
>>> 00:04:02:492436: ip4-rewrite
>>> tx_sw_if_index 0 dpo-idx 1 : ipv4 via 10.1.1.1 
>>> TenGigabitEthernetaf/0/1: mtu:1500 6805ca3a19183cfdfea9cced0800 flow 
>>> hash: 0x05dc0000
>>> 00000000: 
>>> 450007ec2fc4000040012d490a0101020a0101010000516a3ef600723f805a48
>>> 00000020: 00000000bd7c0c0000000000101112131415161718191a1b1c1d1e1f
>>> 00:04:02:492436: ip4-frag
>>> IPv4 offset: 0 mtu: 1500 fragments: 1
>>> 00:04:02:492437: ip4-drop
>>>   ICMP: 10.1.1.2 -> 10.1.1.1
>>>     tos 0x00, ttl 64, length 2028, checksum 0x2d49
>>>     fragment id 0x2fc4
>>>   ICMP echo_reply checksum 0x516a
>>> 00:04:02:492437: error-drop
>>> ip4-frag: malformed packet
>>> 
>>> Thanks,
>>> Hongjun
>>> 
>>> -=-=-=-=-=-=-=-=-=-=-=-
>>> Links: You receive all messages sent to this group.
>>> 
>>> View/Reply Online (#10040): 
>>> https://lists.fd.io/g/vpp-dev/message/10040
>>> Mute This Topic: https://lists.fd.io/mt/24206662/675193
>>> Group Owner: vpp-dev+ow...@lists.fd.io
>>> Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
>>> [otr...@employees.org]
>>> -=-=-=-=-=-=-=-=-=-=-=-
>> 
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> 
>> View/Reply Online (#10044): 
>> https://lists.fd.io/g/vpp-dev/message/10044
>> Mute This Topic: https://lists.fd.io/mt/24206662/675193
>> Group Owner: vpp-dev+ow...@lists.fd.io
>> Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  
>> [otr...@employees.org]
>> -=-=-=-=-=-=-=-=-=-=-=-
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> 
> View/Reply Online (#10472): https://lists.fd.io/g/vpp-dev/message/10472
> Mute This Topic: https://lists.fd.io/mt/24206662/675193
> Group Owner: vpp-dev+ow...@lists.fd.io
> Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [otr...@employees.org]
> -=-=-=-=-=-=-=-=-=-=-=-

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10478): https://lists.fd.io/g/vpp-dev/message/10478
Mute This Topic: https://lists.fd.io/mt/24206662/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