picotcp barebox integration

Antony Pavlov antonynpavlov at gmail.com
Sat Feb 28 09:01:01 PST 2015


On Wed, 28 Jan 2015 14:35:19 +0100
DI PEDE Michele <michele.dipede at altran.com> wrote:

> Hi all,
> HEAD of development branch contains the required API for a smooth integration 
> with Barebox.
> User manual contains all the information for use them. There is also a small 
> demo TFTP client that show how to use the application driven interface 
> test/test_tftp_app_client.c. To build it just do make clean; make test; cd 
> test; make.
> Now should be easy to integrate out stack in Barebox code.
> Let me know how the integration effort proceed. We could provide proper 
> support from our side to speed up things.

I have tryed to integrate picotcp tftp support into barebox.
Latest picotcp development branch commit is

    commit 0a3b361848efe20259cb3ca5e79d73a95d8f476c
    Author: Daniele Lacamera <daniele.lacamera at tass.be>
    Date:   Wed Jan 28 13:55:23 2015 +0100
    
        Added link status call to the device driver interface
    
IMHO the tftp interface introduced in this picotcp development branch
can't be easely integrated into barebox tftp filesystem support code.

I'll illustrate this on sample barebox tftp file download session:

    barebox user setup network parameters and run 'tftp <filename>' command;
   
    the tftp commands mounts tftp-server rootdir to barebox "/.tftp_tmp_path";
    and start file copy operation (/.tftp_tmp_path/<filename> -> /<filename>).

    copy operation consists of standard calls (very schematically):

      srcfd = open(<source file>, O_RDONLY);
      ...
      dstfd = open(<destination file>, O_WRONLY | O_CREAT | O_TRUNC);
      ...
      stat(srcfd, ...); /* just determine source file size if possible */
      ...
      while (r = read(srcfd, buffer, 4096)) {
          write(dstfd, buffer, r);
          ...
      }

      so reading data block from tftp-server is made by initiative of barebox command.
      The barebox tftp support code realize all standard calls (open, stat, read, write ...).

      But let's examine picotcp tftp API. Picotcp tftp downloading file code consist of

           priv->session = pico_tftp_session_setup(&tpriv->server_ip4, PICO_PROTO_IPV4);
           ...
           pico_tftp_start_rx(priv->session, short_be(PICO_TFTP_PORT), filename, cb_tftp_rx_opt, priv);

       But pico_tftp_start_rx() tries to download WHOLE FILE from tftp-server.
       I see no means to suspend data transfer initiated by  pico_tftp_start_rx(),
       so I have no means to realize necessary read() and write() calls.

Sascha! Please comment this message.

> If you have any question please don't esitate to contact us
> 
> Best regards
> Michele Di Pede
> 
> Friday 19 December 2014 18:28:30, Michele Di Pede wrote:
> > Hi all,
> > I'm been very busy but I plan to work on the TFPT during the coming holidays
> > to complete the it.
> > 
> > Regards
> > 
> > On Fri, Nov 28, 2014 at 8:38 PM, Daniele Lacamera
> > 
> > <daniele.lacamera at tass.be> wrote:
> > > Hi all,
> > > 
> > > Michele has been busy with another assignment lately, but he has also
> > > been working on the features you requested. He will update you on the
> > > status of his TFTP branch soon.
> > > 
> > > Thanks
> > > 
> > > /d
> > > 
> > > On Fri, Nov 21, 2014 at 3:25 PM, Antony Pavlov <antonynpavlov at gmail.com> 
> wrote:
> > >> Hi!
> > >> 
> > >> What is current picotcp barebox integration status?
> > >> 
> > >> AFAIR latest picotcp-barebox integration discussion thread is
> > >> http://lists.infradead.org/pipermail/barebox/2014-September/020732.html
> > >> 
> > >> --
> > >> Best regards,
> > >> 
> > >>   Antony Pavlov


-- 
-- 
Best regards,
  Antony Pavlov



More information about the barebox mailing list