mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Antony Pavlov <antonynpavlov@gmail.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: barebox@lists.infradead.org
Subject: Re: [RFC v2 00/16] barebox picotcp integration (2015.07.19)
Date: Mon, 20 Jul 2015 12:50:45 +0300	[thread overview]
Message-ID: <20150720125045.55f8ec8b4bdcbc39839c6054@gmail.com> (raw)
In-Reply-To: <20150720071013.GX18700@pengutronix.de>

On Mon, 20 Jul 2015 09:10:13 +0200
Sascha Hauer <s.hauer@pengutronix.de> wrote:

> Hi Antony,
> 
> On Sun, Jul 19, 2015 at 11:07:07PM +0300, Antony Pavlov wrote:
> > I have just published latest picotcp-enabled barebox.
> > Please see my 20150719.picotcp branch in my github barebox repo
> > (https://github.com/frantony/barebox/tree/20150719.picotcp).
> > 
> > This version is based on the latest barebox-next and picotcp v1.5.0
> > (there is also picotcp v1.5.1, but is has no interested
> > for barebox changes since v1.5.0).
> > 
> > 
> > Changes since 2015.07.15 (see http://lists.infradead.org/pipermail/barebox/2015-June/024174.html):
> > 
> >     * net: UDP API changed to satisfy the picotcp integration needs;
> >     * nfs, tftp and dns subsystems have no picotcp-related stuff anymore.
> >     * netconsole works on top of picotcp with no additional changes.
> > 
> > 
> > Here are some notes:
> > 
> >   1. just now tftp/nfs file transfer on top of picotcp is slower than
> >      the same transfer on top of legacy network stack;
> > 
> >   2. there is no $<current network interface> anymore,
> >      so dhcp, tftp and ifup commands don't work on top of picotcp.
> >      The ifconfig command is used for network interfaces setup.
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is the reason of your 'Ping timeout!!!'

> 
> I can't get this version to work. I have done:
> 
> # eth0.ethaddr=00:04:9f:01:b5:37
> # eth0.ipaddr=192.168.23.170
> # eth0.netmask=255.255.0.0
> # mount -t tftp 192.168.23.4 /mnt/
> # cp mnt/b b
> T T T T could not open mnt/b: Interrupted system call
> # picoping 192.168.23.4
>  ---- Ping timeout!!!
> PING 1 to 192.168.23.4: Error 1
> picoping: I/O error
> 
> Anything I have missed?

Please use ifconfig for interface setup. E.g.

ifconfig eth 192.168.23.170 255.255.0.0

I think it is possible to implement network interface setup via 
eth0.ipaddr and eth0.netmask manipulation (and even sacrifice ifconfig command).


Here is my picotcp test script

#!/bin/sh

SERVER=192.168.100.1
ifconfig eth 192.168.100.2 255.255.255.0

picoping $SERVER

net.nameserver=$SERVER
host barebox.example.com
host www.example.com

mount -t nfs $SERVER:/tftpboot /mnt
ls /mnt
md5sum /mnt/bash
umount /mnt
ls /mnt

mount -t tftp $SERVER /mnt
md5sum /mnt/test
umount /mnt

> I noticed that the MAC address is no longer set and the stack no longer
> checks for a link. I believe picotcp should call eth_send rather than
> invoking eth->send directly.

Hmmm, It looks like I have completely missed any MAC-address manipulation stuff.

I see no means to use eth_send() from picotcp code at the moment.

Just now picotcp "parasitize" on legacy stack: for one phisical network interface
there are the picotcp network interface and the legacy network interface at the same time,
but only picotcp actualy operates (but some legacy network interface functions are not
realized).

The main problem is that barebox has the 'only one network interface is active' conception,
but picotcp can handle several active network interfaces at the same time.
In this patchseries the 'only one network interface is active' conception is not used, so
some commands (dhcp, ifup) do not work.

Picotcp selects necessary network interface for eth->send() invoking after routing.
But if I just call eth_send() from picotcp a collision is possible.
E.g. if you have two network interfaces and picotcp want to use the 2nd for packet sending
but barebox thinks that the 1st interface is active then eth_send() leads to sending via the 1st one.

I think it is possible to impart current_active_interface
property to picotcp-barebox glue code for smooth integration.

I'll try to take into account your notes in the next picotcp integration patchseries;

-- 
Best regards,
  Antony Pavlov

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2015-07-20  9:44 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-19 20:07 Antony Pavlov
2015-07-19 20:07 ` [RFC v2 01/16] net_udp_bind(): use uint16_t type for source port Antony Pavlov
2015-07-19 20:07 ` [RFC v2 02/16] fs/tftp.c: drop unused server_port variable Antony Pavlov
2015-07-19 20:07 ` [RFC v2 03/16] fs/nfs.c: use uint16_t for port numbers Antony Pavlov
2015-07-19 20:07 ` [RFC v2 04/16] fs/nfs.c: use SUNRPC_PORT remote port by default Antony Pavlov
2015-07-19 20:07 ` [RFC v2 05/16] net: change UDP handler function API Antony Pavlov
2015-07-19 20:07 ` [RFC v2 06/16] net: change net_udp_send() API Antony Pavlov
2015-07-19 20:07 ` [RFC v2 07/16] net: introduce setudppeerport() Antony Pavlov
2015-07-19 20:07 ` [RFC v2 08/16] net: import picotcp from github Antony Pavlov
2015-07-19 20:07 ` [RFC v2 09/16] picotcp: add barebox target support Antony Pavlov
2015-07-19 20:07 ` [RFC v2 10/16] picotcp: switch to Kbuild Antony Pavlov
2015-07-19 20:07 ` [RFC v2 11/16] net: add initial picotcp support Antony Pavlov
2015-07-19 20:07 ` [RFC v2 12/16] net: picotcp: add test_picotcp command Antony Pavlov
2015-07-19 20:07 ` [RFC v2 13/16] net: picotcp: add ifconfig command Antony Pavlov
2015-07-19 20:07 ` [RFC v2 14/16] net: picotcp: add ping command Antony Pavlov
2015-07-19 20:07 ` [RFC v2 15/16] net: picotcp: add route command Antony Pavlov
2015-07-19 20:07 ` [RFC v2 16/16] sandbox_defconfig: switch to picotcp Antony Pavlov
2015-07-20  7:10 ` [RFC v2 00/16] barebox picotcp integration (2015.07.19) Sascha Hauer
2015-07-20  9:50   ` Antony Pavlov [this message]
2015-07-20 10:06   ` Antony Pavlov
2015-07-20 10:45     ` Sascha Hauer
2015-07-20 12:16       ` Antony Pavlov
2015-07-24  4:58       ` Antony Pavlov
2015-07-24  7:19         ` Sascha Hauer

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=20150720125045.55f8ec8b4bdcbc39839c6054@gmail.com \
    --to=antonynpavlov@gmail.com \
    --cc=barebox@lists.infradead.org \
    --cc=s.hauer@pengutronix.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox