L2 switch problem with LAN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

L2 switch problem with LAN

13,257 Views
jeremyesquirol
Contributor III

Hi all,

I'm encountering a very strange issue with the L2_swtich on Vybrid, using linux 3.0, and i've the same problem on our custom board, phytec board and freescale twr board.

All my board are in static IP.

My PC is connected to the ETH0 port on board. I connect the ETH1 on a switch in my local network. This switch is connected to a router for internet access.

From my pc, i can ping all members in the local network and i can access to internet.

Here is the problem : I can't acces website ( on other things like ssh or ftp connection) in my LOCAL network.

I've a full acces on WAN, i can ping all member in LAN, but it seems like if the data's are too big (or too much datas) from the local network, the switch don't work.

I've tried with only 2 board and 1 pc connected : The pc on ETH0 and the second board on ETH1, all with static IP. I'm able to ping both board. I can access the first board embedded website, but i can't access the second...

It's like if there is a big set of data in short time, I lost the frames. Does the switch is fast enought?

I've also tried to reduce data speed to 10T (i was using Auto Negociation) but it d'ont change anything.

Any idea?

20 Replies

12,150 Views
xaviergarriga
Contributor II

 

Hello,

It's been a long time however I cannot manage it this to work without dual FEC and software bridge. Did you find any fix ? Do you know if @timesyssupport  applied any fix in the past ?

Thank you in advance,

0 Kudos

12,690 Views
xaviergarriga
Contributor II

Hello,

I'm also facing a similar problem using L2 switch. Whenever I have a peak of data runing through I loose packages.

Did manage to fix it ? Do you have any update from timesys ?

Thank you in advance,

0 Kudos

12,690 Views
jeremyesquirol
Contributor III

Hello,

I was using the linux 3.0.15  from Timesys. I know they release  new version since I was using it but I don't know if they fix it.

On our custom board, I've disable the support for L2_SWITCH and I'm using the dual FEC with BRIDGE. It make a software switch

0 Kudos

12,690 Views
xaviergarriga
Contributor II

Thank you for your prompt reply.

I wanted to avoid the software switch, however I'll give it a try.

0 Kudos

12,690 Views
timesyssupport
Senior Contributor II

Hello Jemery,

We are investigating this issue, as Phytec has inquired about this as well. Once we have had a chance to reproduce and analyze, we will follow up.

Thank you,

Timesys Support

12,690 Views
jeremyesquirol
Contributor III

Hello,

Thank you, i'm waiting for your answer.

regards.

0 Kudos

12,691 Views
timesyssupport
Senior Contributor II

Hello Jeremy,

We are still in the process of reproducing and debugging this issue.

Thank you for your patience.

Regards,

Timesys Support

12,690 Views
jeremyesquirol
Contributor III

Have you some news ?

Were you able to reproduce this issue?

0 Kudos

12,691 Views
timesyssupport
Senior Contributor II

Hello Jeremy,

Could you share your kernel config for this issue?

In this case, CONFIG_FSL_L2_SWITCH and CONFIG_FEC cannot be enabled at the same time, only one or the other.

How are you confirming that frames are lost? If you can provide an exact procedure we can attempt to reproduce.

If you have not already, please submit a support request in the Timesys Support queue - that is accessible by logging into: http://linuxlink.timesys.com and clicking the "Support" link.

Thank you,

Timesys Support

12,691 Views
jeremyesquirol
Contributor III

Hello,

Here is my .config file

It's the default .config from factory

I've made a new "factory" folder, using twr_vf600-factory-installer.sh, and i used the default .config file. I remove the FEC and enable L2_Switch, and because i'm using the freescale tower_board with a twr_ser2 card, I change the PHY driver to the good one : Drivers for National Semiconductor dp83848 dp83849 PHYs

My /network/interfaces file is :

     auto eth0

      iface eth0 inet static

          address 192.168.3.42

          network 192.168.3.0

          netmask 255.255.255.0

          broadcast 192.168.3.255

          gateway 192.168.3.25

With this config, i simply plug an ethernet cable from my pc to the TWR, and a second cable from the TWR to a 30 slot ethernet switch on my local network.

Now for test :

- ping is OK. I can ping local devices or ping www.google.fr, it works fine.

- web access : I can access website through my router. (like www.google.com, www.youtube.com ...) it works.

- Local web access : It not work! I can't load the website of my printer for example. on wireshark i can see that the first packet is received, but not the nexts.

- ssh on local device : i can't access to my local device in SSH.

- ftp : It's weir, i can acces device when there is not a lot of repertories to load. I can't if there is a lot of repertories. It's like if there is a lot of repertories to load, I lost frames and the connection is lost.

I will submit a support request on timesys website.

EDIT : I add some screenshot.

The first , "page_good.png" is the page i must load from my device (ip addr 192.168.3.62, in my LOCAL network). This device is connected to my local network, I load this page when i was NOT connected to the TWR_BOARD switch.

The second, "page_bug_switch.png", show you what I get when I try to connect to my embedded website USING the TWR_BOARD switch. My pc is connected to the freescale TWR_Board and the TWR is connted to the device. The webpage is loading continusly but i don't get it.

The "wireshark_switch_bug.png" is the wireshark capture when i'm trying to get the website through the TWR_Board switch. You can see that the TCP connection is well done. I get the first packet but after there is a problem.

Looking wireshark, i've noticed that a big amount of data in a short time don't pass through the switch.I

I don't know if it's the driver or if it's a hardware issue, but i only get this issue with the switch. And i was able to reproduce this bug using phytec board, freescale board, and with the default .config file, i simply change the FEC for L2_SWITCH in kernel.

workaround :

If someone is having this bug and need switch ability, I'm using a trick: enable "Bridge" and the "dual fec" in kernel and use "bridge-utils" software, you get a software switch. .

0 Kudos

12,691 Views
karina_valencia
NXP Apps Support
NXP Apps Support

timesyssupport​ please continue with the follow up.

0 Kudos

12,686 Views
jeremyesquirol
Contributor III

I've opened a ticket in timesys support and they answer me they're working on it.
I'm waiting their update.

12,686 Views
karina_valencia
NXP Apps Support
NXP Apps Support

Hi Jemery, thanks  for let us know.

0 Kudos

12,691 Views
timesyssupport
Senior Contributor II

Hello karinavalencia​ and jeremyesquirol​,

Thank you for providing this additional information; we will provide this to our Vybrid engineers for further review and follow up.

Thank you,

Timesys Support

12,691 Views
karina_valencia
NXP Apps Support
NXP Apps Support

Timesys Support do you have an update?

0 Kudos

12,691 Views
karina_valencia
NXP Apps Support
NXP Apps Support

timesyssupport​ do you have an update?

0 Kudos

12,691 Views
karina_valencia
NXP Apps Support
NXP Apps Support

timesyssupport​ do you have an update or can let us know an estimated due  date?

0 Kudos

12,158 Views
xaviergarriga
Contributor II

Hello, 

I'm still facing same problem and could not find an answer anywhere. Has been any fix released ? Is there a way to fix it that other than using dual FEC and software switching ?

Thank you in advance,

 

0 Kudos

11,625 Views
kef2
Senior Contributor IV

Hi

It seems that ESW seems working or not working depending on network infrastructure. Connecting way [A] everything seems being fine. Ping to local network behind Cisco IP phone, access to network resources on local network and internet:

PC <-> [TWRSER2 with ESW switch] <-> <Cisco IP phone with two port switch> <--> network

 

Connecting way [B] only ping works to everywhere, no problems pinging various www hosts on local network and internet. But it is impossible to display any www pages from local network and internet:

PC <-> [TWRSER2 with ESW switch] <-> [home network with TP-Link router]

 

It seems the missing part is ESW_MODE.CRCTRAN=1. Driver keeps this bit cleared. Setting this bit from JTAG debugger makes everything working well in connection variant B. Did retest connection variant A, but I guess it should be fine as well.

See switch_enet_init() and switch_restart() routines. 

https://github.com/Timesys/linux-timesys/blob/3.13-vf610-twr/drivers/net/ethernet/freescale/fsl_l2_s... 

 

Try replacing 

writel(FSL_ESW_MODE_SW_EN, fep->membase + FEC_ESW_MODE);

with

writel(FSL_ESW_MODE_SW_EN | FSL_ESW_MODE_CRC_TRAN, fep->membase + FEC_ESW_MODE);

 

Edward

0 Kudos

12,690 Views
karina_valencia
NXP Apps Support
NXP Apps Support

timesyssupport​ can you help here?

0 Kudos