anchao commented on a change in pull request #1047:
URL: https://github.com/apache/incubator-nuttx/pull/1047#discussion_r425528457
##########
File path: net/netdev/netdev_register.c
##########
@@ -333,6 +335,18 @@ int netdev_register(FAR struct net_driver_s *dev, enum
net_lltype_e lltype)
return -EINVAL;
}
+ /* Update the package length */
+
+ if (dev->d_llhdrlen == 0)
+ {
+ dev->d_llhdrlen = llhdrlen;
+ }
+
+ if (dev->d_pktsize == 0)
+ {
+ dev->d_pktsize = pktsize;
+ }
+
Review comment:
Configure the MTU packet size in the SIM scenario is a invalid choice,
the MTU will only take effect at the link layer when configuring the tunnel
bridge:
tools/simbridge.sh:
```
if [ "$2" == "on" ]; then
ip link add nuttx0 type bridge
ip addr flush dev $1
+ ip link set dev nuttx0 mtu size?
ip link set $1 master nuttx0
ip link set dev nuttx0 up
dhclient nuttx0
```
```
nuttx0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe63:d2e7 prefixlen 64 scopeid 0x20<link>
```
If the nuttx MTU size is small than tunnel, the larger packets will do drop
processing at:
net/devif/ipv4_input.c:
...
377 /* Check the size of the packet. If the size reported to us in d_len
is
378 * smaller the size reported in the IP header, we assume that the
packet
379 * has been corrupted in transit. If the size of d_len is larger than
the
380 * size reported in the IP packet header, the packet has been padded
and
381 * we set d_len to the correct value.
382 */
383
384 totlen = (ipv4->len[0] << 8) + ipv4->len[1];
385 if (totlen <= dev->d_len)
386 {
387 dev->d_len = totlen;
388 }
389 else
390 {
391 nwarn("WARNING: IP packet shorter than length in IP header\n");
392 goto drop;
393 }
...
in this situation, I think obtain the MTU size dynamically is a necessary
choice.
Regarding your concerns, We will check further whether there is side effects
in the mainline.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]