Hi Fotis,

Besides its name the simhostroute.sh is using the bridge mode (look
inside the script).

I tested today few minutes ago and it is not working, I should have
documented my config and all the steps.

Maybe this article could help you:
https://eadalabs.com/esp32-nuttx-and-bridged-networking/

BR,

Alan

On 9/2/22, Fotis Panagiotopoulos <f.j.pa...@gmail.com> wrote:
> Alan,
> is this guide for CONFIG_SIM_NET_HOST_ROUTE or CONFIG_SIM_NET_BRIDGE?
> I suppose it is the former. But according to the documentation, NuttX will
> not access the internet with CONFIG_SIM_NET_HOST_ROUTE, right?
>
> Anyway, I tried with both configurations, but no, it is not working.
> I can ping the simulator, but it cannot send messages to the LAN or
> internet.
>
> Nathan,
> I tried to use TAPDEV_DEBUG, but it is not working. Syslog prints nothing
> within this driver.
> I mean, I can see with the debugger that the code there is executed. Syslog
> in itself is not working in this context.
>
> Anyway, I stopped spending time in the driver, because I think I have an
> idea of the issue.
>
> I used wireshark both on the bridge and the network interface.
> I can see the simulator sending packets to the bridge, but these packets do
> not appear on the netif!
>
> It seems that the bridge does not want to forward the traffic between tap
> and ethernet.
> I have spend hours on this, but I haven't managed to make this work.
>
>
>
> On Wed, Aug 31, 2022 at 4:38 PM Nathan Hartman <hartman.nat...@gmail.com>
> wrote:
>
>> On Wed, Aug 31, 2022 at 5:12 AM Fotis Panagiotopoulos
>> <f.j.pa...@gmail.com> wrote:
>> > I enabled all network prints.
>> >
>> > I can see some ARP packets being sent and received, but nothing else.
>> > I get a bunch of warnings like the following:
>> >
>> > netdriver_recv_work: WARNING: Unsupported Ethernet type 3465
>> >
>> > (where the Ethernet type number is a different number every time)
>>
>> This warning is printed from netdriver_recv_work() in
>> arch/sim/src/sim/up_netdriver.c.
>>
>> The call to netdev_read() fills dev->d_buf, which is typecast to eth;
>> then, eth->type is a 2-byte code located in bytes 12 and 13 of
>> dev->d_buf. (See struct eth_hdr_s in include/nuttx/net/ethernet.h.)
>>
>> Since you're saying that the WARNING is printing a different number
>> every time, I wonder whether the read in tapdev_read() is filling the
>> buffer with random garbage. (Note: netdev_read() is a macro that
>> translates to tapdev_read() under your Kconfig settings.)
>>
>> Following this line of thought... There is a symbol that isn't defined
>> anywhere: TAPDEV_DEBUG. If this symbol is defined, then a function
>> dump_ethhdr() will be called in tapdev_read(). (If not defined, which
>> is the case now, then dump_ethhdr() is an empty macro.) It may be a
>> good idea to define this symbol to help track down this problem by
>> logging the received headers. The easiest way may be to temporarily
>> add -DTAPDEV_DEBUG to CFLAGS in the board's Make.defs, but it might be
>> better to rename this symbol to CONFIG_SIM_NETDEV_TAP_DEBUG and add it
>> to arch/sim/Kconfig, so that other developers can turn it on and off
>> easily.
>>
>> Now, in continuing to analyze where the data is coming from, I don't
>> understand the implementation of tun_read() in drivers/net/tun.c. It
>> looks like it will read data from the write buffer, or from the read
>> buffer, whichever it finds first. Isn't that a little bit strange?
>> Perhaps someone can explain how this implementation works.
>>
>> Without a setup to single-step through this logic, it's hard to
>> continue analyzing by reading code. Perhaps you could share more
>> details about your setup (and the defconfig produced by 'make
>> savedefconfig')?
>>
>> Cheers,
>> Nathan
>>
>

Reply via email to