TX2 Connect IP Camera ping fail, but ping ubuntu computer is fine ?

Dear Sir,

When I using TX2(192.168.1.10) connect to Ubuntu Host computer(192.168.1.100), and ping each other works fine.
Bug TX2(192.168.1.10) connnect to an IP Camera(IP: 192.168.1.160), ping failed, and get some error messages like this:

nvidia@tegra-ubuntu:~$ dmesg
[...]
[   11.388165] ip_tables: (C) 2000-2006 Netfilter Core Team
[   11.685245] tegradc 15210000.nvdisplay: unblank
[   11.874493] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready
[   13.361605] eqos 2490000.ether_qos eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   13.370783] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   13.396169] eqos 2490000.ether_qos: changing MTU from 1500 to 9000
[   13.402503] bcm54xx_low_power_mode(): put phy in iddq-lp mode
[   13.981223] fuse init (API version 7.23)
[   17.036280] eqos 2490000.ether_qos eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   17.176002] IPVS: Creating netns size=1424 id=2
[   17.292168] tegradc 15210000.nvdisplay: blank - powerdown
[   17.355825] PD DISP2 index4 DOWN
[   17.355918] PD DISP1 index3 DOWN
[   17.355992] PD DISP0 index2 DOWN
[   17.379588] tegradc 15210000.nvdisplay: blank - powerdown
[   17.385061] tegradc 15210000.nvdisplay: unblank
[   17.385075] PD DISP0 index2 UP
[   17.387072] PD DISP1 index3 UP
[   17.387160] PD DISP2 index4 UP
[   17.393748] Parent Clock set for DC plld2
[   17.396730] tegradc 15210000.nvdisplay: hdmi: pclk:74250K, set prod-setting:prod_c_75M
[   18.439566] tegradc 15210000.nvdisplay: unblank
[   18.821821] IPVS: Creating netns size=1424 id=3
[   92.069256] eqos 2490000.ether_qos eth0: Link is Down
[  100.317073] eqos 2490000.ether_qos eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[  102.937851] 
               prx_desc[00 ffffff800c7f1040 004 RECEIVED FROM DEVICE] = 0x0:0x13:0x0:0x3509805f
[  103.937872] 
               prx_desc[00 ffffff800c7f1050 005 RECEIVED FROM DEVICE] = 0x0:0x93:0x0:0x3501805e
[  104.940028] 
               prx_desc[00 ffffff800c7f1060 006 RECEIVED FROM DEVICE] = 0x0:0x93:0x0:0x3509805e
[  105.937903] 
               prx_desc[00 ffffff800c7f1070 007 RECEIVED FROM DEVICE] = 0x0:0x93:0x0:0x3501805f
[  106.937919] 
               prx_desc[00 ffffff800c7f1080 008 RECEIVED FROM DEVICE] = 0x0:0x13:0x0:0x3509805f
[  107.940090] 
               prx_desc[00 ffffff800c7f1090 009 RECEIVED FROM DEVICE] = 0x0:0x93:0x0:0x3501805e
[  108.937957] 
               prx_desc[00 ffffff800c7f10a0 010 RECEIVED FROM DEVICE] = 0x0:0x13:0x0:0x3509805f
[  109.938021] 
               prx_desc[00 ffffff800c7f10b0 011 RECEIVED FROM DEVICE] = 0x0:0x93:0x0:0x3501805f
[  110.940208] 
               prx_desc[00 ffffff800c7f10c0 012 RECEIVED FROM DEVICE] = 0x0:0x93:0x0:0x3509805e
[  148.758260] 
               prx_desc[00 ffffff800c7f10d0 013 RECEIVED FROM DEVICE] = 0x0:0x93:0x0:0x3501805f
[  148.939204] 
               prx_desc[00 ffffff800c7f10e0 014 RECEIVED FROM DEVICE] = 0x0:0x13:0x0:0x3509805f
[  149.940824] 
               prx_desc[00 ffffff800c7f10f0 015 RECEIVED FROM DEVICE] = 0x0:0x93:0x0:0x3501805f

So I can’t play the IP Camera, can someone give any advise about this?

Dear,

add some message:
When plugout and plugin the cable, IP Camera can be pinged once, and then shows “destination host unreachable” in terminal.
Check dmesg, there is some “prx_desc” errors .

nvidia@tegra-ubuntu:~$ ping 192.168.1.160
PING 192.168.1.160 (192.168.1.160) 56(84) bytes of data.
From 192.168.1.10 icmp_seq=1 Destination Host Unreachable
From 192.168.1.10 icmp_seq=2 Destination Host Unreachable
From 192.168.1.10 icmp_seq=3 Destination Host Unreachable
From 192.168.1.10 icmp_seq=4 Destination Host Unreachable
From 192.168.1.10 icmp_seq=5 Destination Host Unreachable
From 192.168.1.10 icmp_seq=6 Destination Host Unreachable
From 192.168.1.10 icmp_seq=7 Destination Host Unreachable
From 192.168.1.10 icmp_seq=8 Destination Host Unreachable
From 192.168.1.10 icmp_seq=9 Destination Host Unreachable
From 192.168.1.10 icmp_seq=10 Destination Host Unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
64 bytes from 192.168.1.160: icmp_seq=64 ttl=64 time=1000 ms
64 bytes from 192.168.1.160: icmp_seq=65 ttl=64 time=1.01 ms
64 bytes from 192.168.1.160: icmp_seq=102 ttl=64 time=2990 ms
64 bytes from 192.168.1.160: icmp_seq=104 ttl=64 time=984 ms
From 192.168.1.10 icmp_seq=11 Destination Host Unreachable
From 192.168.1.10 icmp_seq=14 Destination Host Unreachable
From 192.168.1.10 icmp_seq=15 Destination Host Unreachable
From 192.168.1.10 icmp_seq=17 Destination Host Unreachable
From 192.168.1.10 icmp_seq=18 Destination Host Unreachable
From 192.168.1.10 icmp_seq=19 Destination Host Unreachable
From 192.168.1.10 icmp_seq=20 Destination Host Unreachable
From 192.168.1.10 icmp_seq=21 Destination Host Unreachable
From 192.168.1.10 icmp_seq=23 Destination Host Unreachable
From 192.168.1.10 icmp_seq=24 Destination Host Unreachable
From 192.168.1.10 icmp_seq=26 Destination Host Unreachable
From 192.168.1.10 icmp_seq=27 Destination Host Unreachable
From 192.168.1.10 icmp_seq=28 Destination Host Unreachable
From 192.168.1.10 icmp_seq=29 Destination Host Unreachable
From 192.168.1.10 icmp_seq=32 Destination Host Unreachable
From 192.168.1.10 icmp_seq=33 Destination Host Unreachable
From 192.168.1.10 icmp_seq=35 Destination Host Unreachable

After a failure occurs, what is the output of:

route
ifconfig

How is the camera connected? Through a switch? How does the camera get its IP address?

Dear linuxdev,

IP Camera connected direct to TX2(without switch), IP Camera’s IP is fixed to 192.168.1.160 (port 554).

route informtaion:

nvidia@tegra-ubuntu:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 l4tbr0
172.17.0.0      *               255.255.0.0     U     0      0        0 docker0
192.168.1.0     *               255.255.255.0   U     100    0        0 eth0
192.168.55.0    *               255.255.255.0   U     0      0        0 l4tbr0

arp -a information

nvidia@tegra-ubuntu:~$ arp -a
? (192.168.1.160) at <incomplete> on eth0
? (192.168.1.1) at <incomplete> on eth0

ifconfig informatioin:

nvidia@tegra-ubuntu:~$ ifconfig 
docker0   Link encap:Ethernet  HWaddr 02:42:1b:35:4a:55  
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 00:04:4b:a5:0b:a8  
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::7e0f:dd68:a5c2:7f83/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1
          RX packets:4266 errors:13 dropped:0 overruns:0 frame:13
          TX packets:2041 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:366009 (366.0 KB)  TX bytes:200746 (200.7 KB)
          Interrupt:42 

l4tbr0    Link encap:Ethernet  HWaddr 2e:c2:66:f4:b0:4e  
          inet addr:192.168.55.1  Bcast:192.168.55.255  Mask:255.255.255.0
          inet6 addr: fe80::c04f:90ff:fe8a:10a8/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:767 (767.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:327 errors:0 dropped:0 overruns:0 frame:0
          TX packets:327 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:24258 (24.2 KB)  TX bytes:24258 (24.2 KB)

usb0      Link encap:Ethernet  HWaddr 2e:c2:66:f4:b0:4e  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

usb1      Link encap:Ethernet  HWaddr ee:19:68:ac:dc:0d  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Thanks so much.

Dear linuxdev,

When using switch between IPC and TX2, the IPC can be ping connecting, but using a cable to connect TX2 and IPC, they can’t ping each other.

Hi,
Maybe you should use rtspsrc to decode the stream from IP camera.

Here is an example of using rtspsrc(client command):
https://devtalk.nvidia.com/default/topic/1043770/jetson-tx2/problems-minimizing-latency-and-maximizing-quality-for-rtsp-and-mpeg-ts-/post/5295828/#5295828

It may be as @DaneLLL mentions, but here are some comments on the network information.

The ifconfig is valid, but you are having some serious problems…perhaps conflicts with other devices on eth0:

...
          RX packets:4266 <i><b>errors:13</b></i> dropped:0 overruns:0 <i><b>frame:13</b></i>
          TX packets:2041 errors:0 dropped:0 overruns:0 carrier:0

Apparently the Jetson is receiving corrupt or malformed packets. There are a number of reasons this might occur…it could be the device sending bad data, it could be a cable is bad, it could be the PHY at the receiving end is bad. Perhaps there is some setting which is incompatible and auto-negotiation isn’t honored. My suggestion: Try with a known good gigabit switch in the middle. Maybe it is a simple case of auto-detect not knowing it needs to be cross-over mode (which leads to the question…is it a cross-over cable? does the camera have auto-detect of need for cross-over?). A switch would remove any requirement for cross-over detection. A switch would also change which hardware talks directly to the Jetson (presumably the switch would provide a known good signal).

The arp makes me wonder, due to this excerpt:

at <incomplete>

…the “” should be a MAC address. Without a MAC the physical layer will not work correctly. This might be explained by the network errors from ifconfig. If certain parts of the received packets are corrupt, then the MAC would be missing or garbage.

The output of the “route” command suggests this is correctly configured and not part of the issue.

Dear linuxdev & DaneLL,

You are right, in this case, TX2 can’t get the MAC address for IP Camera, so they can’t build the physical layer connection, thus, ping and connection is failed.

I do some more connection tests here:

  1. The IP Camera can ping my host Ubuntu computer(using 4Pins or 8Pins RJ45 Cable)
  2. TX2 can ping my host Ubuntu computer(using 4Pins or 8Pins RJ45 Cable)
  3. TX2 can not ping the IP Camera (using 4Pins or 8Pins RJ45 Cable)
  4. add a switch between IP Camera and TX2, then TX2 can ping IP Camera
    The IP Camera only has RJ45 4 data pins(using 1,2,3,6 Pin for data transfer, where most RJ45 Cable has 8pins for connectioin), I swiched PIN 1,2 and 3,6, unfortunately TX2 can’t connect the IP Camera too, maybe the data pins different cause the problems ?

If this is truly a known good crossover cable, then it should work when direct connect fails due to not being able to auto-negotiate as crossover. This wouldn’t surprise me that crossover is required, but I am surprised if a real crossover cable fails.

Having a switch in between fixes both signal issues and crossover issues. Are you trying a known good crossover cable? It is highly likely the camera and TX2 combination is not automatically correcting for this, which would simply be a feature not available rather than something failing. I don’t know if your pin switching is correct or not since it could also affect signal quality depending on how it is performed.

Dear linuxdev,

I can confirm the crossover cable is right.
Due to my project schedule, I changed another IP Camera, connect with TX2 fine, once I finish the project I will come back to check the difference of network connection between the two IP Cameras. Then I will put the solution here.

Thanks so much.