All of lore.kernel.org
 help / color / mirror / Atom feed
From: Suneel Garapati <suneelglinux@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH v5] net: tftp: Add client support for RFC 7440
Date: Tue, 2 Feb 2021 08:02:19 -0800	[thread overview]
Message-ID: <CAHPF-4++Ryep4A8aqoCv1j9y5cf-Lwjw8uJqPpAvmtQnPWXy3A@mail.gmail.com> (raw)
In-Reply-To: <CAGi-RUL=GyuMqcEnOH3AEkc4DuXcu5XWwF0o8-z9uGM=xDjivA@mail.gmail.com>

On Mon, Feb 1, 2021 at 2:27 PM Ramon Fried <rfried.dev@gmail.com> wrote:
>
> On Sat, Jan 30, 2021 at 11:26 PM Ramon Fried <rfried.dev@gmail.com> wrote:
> >
> > On Sat, Jan 30, 2021 at 10:39 PM Suneel Garapati <suneelglinux@gmail.com> wrote:
> > >
> > > Hello Ramon,
> > >
> > > With TFTP window size as default 1 and enabling TFTPPUT config option
> > > results in tftpboot command failure.
> > >
> > > Attached the pcap files for with and without TFTPPUT enabled.
> > > Both captures are the same except that the TFTPPUT option enables ICMP handler
> > > and for the response from the server triggers a restart of netloop
> > > operation and eventually fails as below.
> > >
> > > > tftpboot 0x30000000 192.168.1.1:Image
> > > Waiting for RPM0 LMAC0 link status... 10G_R [10G]
> > > Using rvu_pf#0 device
> > > TFTP from server 192.168.1.1; our IP address is 192.168.1.16
> > > Filename 'Image'. Load address: 0x30000000
> > > Loading: ################################################## 15.8 MiB
> > > 787.1 KiB/s
> > > done
> > > TFTP server died; starting again
> > > >
> > >
> > > I see the code issue as below on net/tftp.c [v2020.10] ?
> > >                 /*
> > >                  *      Acknowledge the block just received, which will prompt
> > >                  *      the remote for the next one.
> > >                  */
> > >                 if (tftp_cur_block == tftp_next_ack) {
> > >                         tftp_send();
> > >                         tftp_next_ack += tftp_windowsize;
> > >                 }
> > >
> > >                 if (len < tftp_block_size) {
> > >                         //if (tftp_windowsize > 1) [Hack in use for
> > > now to work around this issue]
> > >                         tftp_send();                      [ This
> > > causes extra ACK packet send with same block number and causes server
> > > to respond with ICMP error]
> > >                         tftp_complete();
> > >                 }
> > >
> > > I couldn?t try with tftp_windowsize > 1 as the test servers don?t support.
> > > I tried with all latest commits on net/tftp.c on top of v2020.10 and
> > > still see the issue.
> > >
> > > This change is introduced in
> > > commit cc6b87ecaa96325577a8fafabc0d5972b816bc6c
> > > Author: Ramon Fried <rfried.dev@gmail.com>
> > > Date:   Sat Jul 18 23:31:46 2020 +0300
> > >
> > >     net: tftp: Add client support for RFC 7440
> > >
> > >     Add support for RFC 7440: "TFTP Windowsize Option".
> > >
> > > Reverting this commit on v2020.10 also fixes the issue.
> > >
> > > I would like to know if this extra tftp_send is needed at all or only
> > > for window size > 1
> RFC7440 is not supported by most TFTP Servers, when adding support for
> this feature I didn't even consider TFTPPUT.
> I think that the best thing to do is to only support RFC7440 on TFTPGET.
> In this case we should remove the tftp_send() when sending a file.
> I will create a fix, would you mind testing to see if it works for you ?
> Thanks,
> Ramon.
Yes, I can test the fix.

Thanks,
Suneel
> > >
> > > Regards,
> > > Suneel
> > Thanks for spotting this, I'll check it out.

  reply	other threads:[~2021-02-02 16:02 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-18 20:31 [PATCH v5] net: tftp: Add client support for RFC 7440 Ramon Fried
2020-08-05 20:27 ` Tom Rini
2021-01-30 20:39   ` Suneel Garapati
2021-01-30 21:26     ` Ramon Fried
2021-02-01 22:27       ` Ramon Fried
2021-02-02 16:02         ` Suneel Garapati [this message]
2021-02-02 19:46           ` Ramon Fried
2021-02-02 22:23             ` Suneel Garapati
2021-02-03  8:01               ` Ramon Fried
2021-02-17  9:14 ` Oliver Graute
2021-02-17 10:00   ` Oliver Graute

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHPF-4++Ryep4A8aqoCv1j9y5cf-Lwjw8uJqPpAvmtQnPWXy3A@mail.gmail.com \
    --to=suneelglinux@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.