Hi Sergio.
First, I would like you see my scenario figure attached again.
I do not use TUN/TAP and brigde. The "access" components shown in the figure can receive/transmit data from/to eth and serial. That works fine, no problem.
Below is the complete adresses configuration.
1) lwIP eth IP address, and mask: 10.0.2.180 / 255.255.255.0 (netif 0)
2) lwIP PPP IP address, and mask: 10.0.3.183 / 255.255.255.0 (netif 1)
3) lwip default gateway IP address: 10.0.2.1
4) lwip default interface (call to set_default): netif 0.
is this called before or after bringing PPP up ? Before.
5) physical host machine eth IP address, and mask: 10.0.2.15 / 255.255.255.0
6) physical host machine default gateway: 10.0.2.1
7) TUN/TAP interface for lwIP address, and mask: no TUN/TAP
bridging ? -> bridged interfaces: no bridge.
8) VM0 eth IP address, and mask: 10.0.2.6 / 255.255.255.0
associated TUN/TAP on host machine if in different network: no TUN/TAP.
9) VM0 default gateway: 10.0.2.1
10) VM1 eth IP address, and mask: no IP, just serial interface.
associated TUN/TAP on host machine if in different network: no TUN/TAP.
11) VM1 PPP IP address, and mask: 10.0.3.11
is it statically assigned: yes
12) VM1 default gateway: ppp
13) destination address when you connect to echo from VM0: 10.0.2.180
>>> replies OK!
14) destination address when you connect to echo from VM1: 10.0.3.183
>>> NO replies!!!!! By wireshark (VM-lwip) I can see the reply in the eth when the correct would be by ppp(serial)...
Again: I have been investigating and I think that the problem is associated to PPP netif netmask (ever 255.255.255.255).
Please, see the "get_mask" function and "netif_add" call both codes in the "lwip/src/netif/ppp/ppp.c" file.
Thus, the "ip4_route" function does not match the appropriate netif, in this case the netif-1, and returns the default-netif (netif-0, associated to eth0). Then the outgoing packets are forwarding to eth and not to serial. When the client-echo is run in VM#0 the all works fine because the match happens.
If I configure the netif-1 how default, just it, the client in the VM#1 works fine but the client in VM#0 no (through eth)...
Thans.
Norberto.