Commit graph

2211 commits

Author SHA1 Message Date
Virus.V
bb6273d4d1 netlink: fix compile error when enable netlink
Signed-off-by: Virus.V <virusv@live.com>
2021-07-02 14:57:22 +08:00
Xiang Xiao
b16a6b9aac net/udp: Fix error: 'MAX_IFINDEX' undeclared
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I6bc09ede185d6ee71d93268c44a8f69a49bf68c9
2021-06-27 19:40:53 -07:00
Xiang Xiao
811bcd413d net: Add if_nameindex and if_freenameindex API
Specified here:
https://man7.org/linux/man-pages/man3/if_nameindex.3.html

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia5daed775bd11fa5978d54860632554da8f7b416
2021-06-26 19:45:21 -07:00
Xiang Xiao
a8cf6a6655 net: Fix: left shift of 1 by 31 places cannot be represented in type 'long int'
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Id2daa60834f7b1917b15bbad89b091b59311e988
2021-06-24 11:42:55 +08:00
Xiang Xiao
95338b2139 net/local: Remove all HAVE_LOCAL_POLL reference
since HAVE_LOCAL_POLL always hardcode to 1

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-06-17 21:52:54 +08:00
anchao
d24b879e63 Revert "net/socketpair: move socketpair implement into socket internal"
This reverts commit a66e18bc53.

Reason for revert: <N/A>

Change-Id: I3b707a2f6f52fb4a9eb2ab649b686b955b879d65
2021-06-17 20:23:59 +08:00
chao.an
37c2bc18db net/local: extern local_generate_instance_id() interface
Change-Id: I14273d11b1fe4d6bdc15b14e32da609cc7883713
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-06-16 17:28:14 +08:00
chao.an
a66e18bc53 net/socketpair: move socketpair implement into socket internal
Change-Id: I1c6d7178e2631e43d9fcc99918456eec36f730ce
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-06-16 15:19:44 +08:00
chao.an
6b1ca37048 net/accept: alloc the accept fd after accept success
Change-Id: Id879e831dcb5d25eff27cde76ca4cc59a000e02f
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-06-15 11:23:13 +08:00
chao.an
693bd87cab net/sock: move the psock calloc out of sockfd_allocate
Change-Id: I3b5373ffe9a4034c2ac2cd83389fd46c47dc9047
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-06-15 11:23:13 +08:00
chao.an
c04f6dfebe Revert "net/accept: alloc the accept fd after accept success"
This reverts commit 28363bf9a8.

Change-Id: Iafa64ca1af83afa537cd00bf0f67ac76d749b86c
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-06-15 11:23:05 +08:00
Xiang Xiao
4d66266a8e sched: Don't include nuttx/sched.h inside sched.h
But let nuttx/sched.h include sched.h instead to
avoid expose nuttx kernel API to userspace.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I6fe673364be9eb1259381e6575d4c1a9fea58097
2021-06-13 00:25:26 -07:00
chao.an
28363bf9a8 net/accept: alloc the accept fd after accept success
Change-Id: Ib174b510e5be359197db575a9b7b5aceea97665d
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-06-09 23:09:08 +08:00
chao.an
2152a35662 net: fix build break
Change-Id: I662580ded8d1c98ddcfbcfae961978eb3512e3b9
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-06-09 22:07:45 +08:00
chao.an
af44043ec0 net: add support of FIONREAD
Change-Id: Iebfdd960f4e9b184558e390f78ec7f8369753b5b
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-06-09 09:47:59 +08:00
chao.an
1b4e9fc7da net/dev: link the net device as order of registration
Change-Id: Idd5cc1e1ab01cd0e77d4ca4b7c4ed08b52d668a2
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-05-25 21:53:36 +08:00
liuhaitao
cc2966faa6 net/arp: fix merge error in upgrade nuttx-10.1
Change-Id: I397ef438b7bef1f6fa1d30d2edb5713cc2bf0d34
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2021-05-12 16:37:40 +08:00
chao.an
dcc2db8d40 make/archive: replace the dependency to preprequisite list
Change-Id: Id63f3cd32906461a54cb016ef8078d4d922845e2
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-05-07 21:34:45 +08:00
liuhaitao
dc639b2b59 Merge remote-tracking branch 'mirtos/master' into dev-upmerge-nuttx-10.1-0507
Change-Id: I4bb3a61356be2b4a77ccfe45390b15e68a376dd6
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2021-05-07 20:46:07 +08:00
liuhaitao
e3166ecac0 Revert "make/archive: replace the dependency to preprequisite list"
This reverts commit 9c946e2af6.

Change-Id: Ia8b7726d036c861d5eda51765d330e894e0d214a
2021-05-07 16:38:39 +08:00
chao.an
f8e800765c net/local: correct the sendto() return length
return length should be data length

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-04-19 11:52:17 -05:00
chao.an
b96fc3fe84 net/igmp: drop the invalid packet
igmp message storm occurs if multiple nuttx devices works on same network.

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-04-19 07:46:47 -05:00
ligd
e3b05bbd14 net/tcp: fix tcp crash when net meet popen syscall
tcp_close_monitor should free all the connevents which
belong to current psock

Change-Id: Ifc625d7bc44a02930921d75975cb9b5835c2deeb
Signed-off-by: ligd <liguiding1@xiaomi.com>
(cherry picked from commit 7134b1df4aa91fe4f2575cd9c2322d36710865dc)
2021-04-15 22:07:26 +08:00
Jiuzhu Dong
09bdee7713 net/arp: Fix memory corruption in arp_send()
Summary:
- In arp_send(), arp_wait_setup() adds a notify object to g_arp_waiters
  which is removed in arp_wait() in normal case.
- However, in timeout and error cases, the object was not removed and
  caused memory corruption.
- This commit fixes this issue.

Impact:
- None

Testing:
- Tested with spresense:rndis_smp

Change-Id: I55e56661b7ff665171805af9106f3a04cc2c3cad
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-04-13 20:14:23 +08:00
Jiuzhu Dong
903d472f78 net/arp: Fix a potential bug in arp_notify()
Summary:
- In arp_wait_setup() and arp_wait_cancel(), g_arp_waiters
  is protected by a critical section.
- However, I noticed that arp_notify() does not protect the
  g_arp_waiters that would cause memory corruption
- This commit fixes the issue.

Impact:
- None

Testing:
- Tested with spresense:rndis_smp, spresense:rndis

Change-Id: I3e13d556dea0934f1d0edd6451ad2e51a86dfeed
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-04-13 20:13:59 +08:00
Huang Qi
e395bced19 net: Rename IP_TTL to IP_TTL_DEFAULT
Since a SOL option IP_TTL exist, we should rename this IP_TTL
in netconfig.h to avoid confusion.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Change-Id: Ib04c36553f23bce8d362e97294a8b83eaa050cf3
2021-04-13 13:58:12 +08:00
Jiuzhu Dong
d64d558adb get/setsockopt: change break to return OK to fix bug
N/A

Change-Id: Ie5ecf640bcba6137904fcf3a0a465b2bc5d1cb92
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-04-09 23:17:48 +08:00
Xu Xingliang
f8c5fe24fb net: Forward socket option only when the socket type is usrsock
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
Change-Id: I5e102c4c648936f96834120e2c508f7072436246
2021-04-09 16:58:55 +08:00
Xiang Xiao
0d12e8bae5 libc/assert: Reference the expression in all case
to avoid the warning "defined but not used"

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I55b7c092d0f2e5882fc1784987657c10cdf2d90b
2021-04-06 14:47:51 +08:00
YAMAMOTO Takashi
acc3596adc tcp_netpoll.c: Fix a performance issue with CONFIG_NET_TCP_WRITE_BUFFERS
Tested with a modified version of webclient, which uses non-blocking i/o.
The packet dumps look more reasonable with this change.
2021-04-05 06:16:46 -05:00
Xiang Xiao
5f3a98b5a8 libc/assert: Reference the expression in all case
to avoid the warning "defined but not used"

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I55b7c092d0f2e5882fc1784987657c10cdf2d90b
2021-04-03 21:00:41 +01:00
Alin Jerpelea
08e5378b11 NuttX: Gregory Nutt: update licenses to Apache
Several licenses were missed in the initial work

David Sidrane has submitted the ICLA and we can migrate the licenses
 to Apache.

Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-04-03 04:20:31 -07:00
Alin Jerpelea
8975a65197 net: fix nxstyle errors
fix errors reported by nxstyle

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-04-02 11:12:25 -05:00
chao.an
621242e890 net/tcp: support bind the same port with different domain
Reference here:
https://man7.org/linux/man-pages/man7/ipv6.7.html

IPV6_V6ONLY slice

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-04-01 20:05:14 -04:00
Masayuki Ishikawa
59ed02c604 net: arp: Fix a potential bug in arp_notify()
Summary:
- In arp_wait_setup() and arp_wait_cancel(), g_arp_waiters
  is protected by a critical section.
- However, I noticed that arp_notify() does not protect the
  g_arp_waiters that would cause memory corruption
- This commit fixes the issue.

Impact:
- None

Testing:
- Tested with spresense:rndis_smp, spresense:rndis

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-03-31 12:23:35 -05:00
Masayuki Ishikawa
b3f7cf9ad9 net: arp: Fix memory corruption in arp_send()
Summary:
- In arp_send(), arp_wait_setup() adds a notify object to g_arp_waiters
  which is removed in arp_wait() in normal case.
- However, in timeout and error cases, the object was not removed and
  caused memory corruption.
- This commit fixes this issue.

Impact:
- None

Testing:
- Tested with spresense:rndis_smp

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-03-31 12:23:35 -05:00
YAMAMOTO Takashi
09869e5d41 net/tcp/tcp.h: Remove unused extern g_netdevices 2021-03-30 12:27:50 -05:00
YAMAMOTO Takashi
1c29a2e8e8 net/tcp/tcp_send_buffered.c: Fix non-blocking I/O
My recent changes to buffered tcp send broke this. [1]

One of my local apps using non-blocking tcp is working
again with this fix.

[1]
```
commit 837e1a72a4
Author: YAMAMOTO Takashi <yamamoto@midokura.com>
Date:   Mon Mar 15 16:19:42 2021 +0900

    tcp_send_buffered.c: improve tcp write buffering
```
2021-03-30 01:12:55 -05:00
YAMAMOTO Takashi
271e748ba5 tcp_send_buffered.c: Add a bit more info to an ninfo() 2021-03-30 01:12:55 -05:00
YAMAMOTO Takashi
a2840b6354 tcp_send_buffered.c: Add an assertion 2021-03-30 01:12:55 -05:00
YAMAMOTO Takashi
ef9adcf399 tcp_send_buffered.c: Remove dead code 2021-03-30 01:12:55 -05:00
chao.an
4a26e4a592 net/local: correct the send return length
Change-Id: I8446c44f9cbcbf11bac4fcc9defbdfc4d09bba98
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-03-27 12:33:47 +08:00
Peter Bee
a84c81f4d5 net/rpmsg: add multi-iov support
N/A

Add multi-iov support for rpmsg sockets

Change-Id: I188e41972be2942799fd06d4b530e292125fbf33
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2021-03-24 10:55:17 +08:00
chao.an
2dbe215f4c net/tcp: support bind the same port with different domain
Reference here:
https://man7.org/linux/man-pages/man7/ipv6.7.html

IPV6_V6ONLY slice

Change-Id: Ia7f12a5a676536ba8d347278d30d45e33c6838f5
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-03-24 00:10:58 +08:00
chao.an
a988437e90 net/dev: check the available address further
check the available address further to avoid obtain unusable device

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-03-23 06:52:32 -07:00
chao.an
03f899f302 net/usrsock: add send multi-elements support
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-03-23 00:44:37 -07:00
chao.an
9bdf4ccd68 net/arp: add timeout to avoid infinite send wait
add timeout to avoid infinite send wait if the network device is unreachable

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-03-23 00:28:43 -07:00
YAMAMOTO Takashi
837e1a72a4 tcp_send_buffered.c: improve tcp write buffering
* Send data chunk-by-chunk
  Note: A stream socket doesn't have atomicity requirement.

* Increase the chance to use full-sized segments

Benchmark numbers in my environment:

* Over ESP32 wifi
* The peer is NetBSD, which has traditional delayed ack TCP
* iperf uses 16384 bytes buffer

---

without this patch,
CONFIG_IOB_NBUFFERS=36
CONFIG_IOB_BUFSIZE=196

does not work.
see https://github.com/apache/incubator-nuttx/pull/2772#discussion_r592820639

---

without this patch,
CONFIG_IOB_NBUFFERS=128
CONFIG_IOB_BUFSIZE=196
```
nsh> iperf -c 192.168.8.1
       IP: 192.168.8.103

 mode=tcp-client sip=192.168.8.103:5001,dip=192.168.8.1:5001, interval=3, time=30

        Interval Bandwidth

   0-   3 sec,  4.11 Mbits/sec
   3-   6 sec,  4.63 Mbits/sec
   6-   9 sec,  4.89 Mbits/sec
   9-  12 sec,  4.63 Mbits/sec
  12-  15 sec,  4.85 Mbits/sec
  15-  18 sec,  4.85 Mbits/sec
  18-  21 sec,  5.02 Mbits/sec
  21-  24 sec,  3.67 Mbits/sec
  24-  27 sec,  4.94 Mbits/sec
  27-  30 sec,  4.81 Mbits/sec
   0-  30 sec,  4.64 Mbits/sec
nsh>
```

---

with this patch,
CONFIG_IOB_NBUFFERS=36
CONFIG_IOB_BUFSIZE=196
```
nsh> iperf -c 192.168.8.1
       IP: 192.168.8.103

 mode=tcp-client sip=192.168.8.103:5001,dip=192.168.8.1:5001, interval=3, time=30

        Interval Bandwidth

   0-   3 sec,  5.33 Mbits/sec
   3-   6 sec,  5.59 Mbits/sec
   6-   9 sec,  5.55 Mbits/sec
   9-  12 sec,  5.59 Mbits/sec
  12-  15 sec,  5.59 Mbits/sec
  15-  18 sec,  5.72 Mbits/sec
  18-  21 sec,  5.68 Mbits/sec
  21-  24 sec,  5.29 Mbits/sec
  24-  27 sec,  4.67 Mbits/sec
  27-  30 sec,  4.50 Mbits/sec
   0-  30 sec,  5.35 Mbits/sec
nsh>
```

---

with this patch,
CONFIG_IOB_NBUFFERS=128
CONFIG_IOB_BUFSIZE=196
```
nsh> iperf -c 192.168.8.1
       IP: 192.168.8.103

 mode=tcp-client sip=192.168.8.103:5001,dip=192.168.8.1:5001, interval=3, time=30

        Interval Bandwidth

   0-   3 sec,  5.51 Mbits/sec
   3-   6 sec,  4.67 Mbits/sec
   6-   9 sec,  4.54 Mbits/sec
   9-  12 sec,  5.42 Mbits/sec
  12-  15 sec,  5.37 Mbits/sec
  15-  18 sec,  5.11 Mbits/sec
  18-  21 sec,  5.07 Mbits/sec
  21-  24 sec,  5.29 Mbits/sec
  24-  27 sec,  5.77 Mbits/sec
  27-  30 sec,  4.63 Mbits/sec
   0-  30 sec,  5.14 Mbits/sec
nsh>
```
2021-03-22 01:12:59 -07:00
chao.an
e03218ab71 net/tcp: reset the connection ref count before tcp_free()
reset the connection refcount if SYN retry count has elapsed

Assertion:

up_assert: Assertion failed at file:tcp/tcp_conn.c line: 764 task: netdev_wq

N/A

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-03-22 10:55:30 +09:00
Nathan Hartman
4653dc14d3 Fix typos (and nxstyle errors)
ReleaseNotes,
arch/arm/src/cxd56xx/cxd56_dmac_common.h,
arch/arm/src/efm32/efm32_dma.h,
arch/arm/src/lpc54xx/lpc54_lcd.c,
arch/arm/src/rp2040/rp2040_dmac.h,
arch/arm/src/stm32/stm32_dma.h,
arch/arm/src/stm32f0l0g0/stm32_dma.h,
arch/arm/src/stm32f7/stm32_dma.h,
arch/arm/src/stm32h7/stm32_dma.h,
arch/arm/src/stm32l4/stm32l4_dma.h,
arch/renesas/src/rx65n/rx65n_dtc.h,
fs/spiffs/src/spiffs_vfs.c,
net/route/cacheroute.h,
net/route/net_cacheroute.c,
net/route/net_foreach_fileroute.c,
net/route/net_foreach_ramroute.c,
net/route/net_foreach_romroute.c, and
net/route/route.h:

    * Fix the following typos:
      - remove spurious "are"
      - "tot he" -> "to the"

arch/arm/src/stm32f0l0g0/stm32_dma.h and
arch/arm/src/stm32l4/stm32l4_dma.h:

    * Fix nxstyle errors.
2021-03-21 21:51:14 +01:00