Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

lwip: bump to v2.1.3 #16774

Merged
merged 1 commit into from
Nov 16, 2021
Merged

lwip: bump to v2.1.3 #16774

merged 1 commit into from
Nov 16, 2021

Conversation

miri64
Copy link
Member

@miri64 miri64 commented Aug 24, 2021

Contribution description

The first release candidate of lwIP v2.1.3 was put out last week. Since the maintainer of lwIP informed me a while ago, that that will happen, I had a branch prepare.

Since this is only bumbing to an RC for now, this is just for testing all your use cases, so we might be able to report some errors back to lwIP (to prevent the situation we had with v2.1.1), so please do not merge until lwIP was bumped to the actual release.

Testing procedure

The following tests should still pass

  • lwip_sock_ip
  • lwip_sock_tcp
  • lwip_sock_udp

lwip should be run for a number of supported boards and IP, UDP, and TCP messages exchanged between them.

Issues/PRs references

@miri64 miri64 added Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation Area: network Area: Networking State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: run tests If set, CI server will run tests on hardware for the labeled PR labels Aug 24, 2021
@miri64 miri64 requested a review from benpicco August 24, 2021 10:49
@github-actions github-actions bot added the Area: pkg Area: External package ports label Aug 24, 2021
@miri64
Copy link
Member Author

miri64 commented Aug 24, 2021

Ping @yarrick!

@yarrick
Copy link
Contributor

yarrick commented Aug 24, 2021

Patches 0002 and 0003 should be removed as they are in this tag.

@miri64
Copy link
Member Author

miri64 commented Aug 24, 2021

Patches 0002 and 0003 should be removed as they are in the this tag.

Oops, I did, but did not commit ^^"

@yarrick
Copy link
Contributor

yarrick commented Nov 10, 2021

2.1.3 is available now: https://git.savannah.nongnu.org/cgit/lwip.git/log/?h=STABLE-2_1_3_RELEASE

@miri64
Copy link
Member Author

miri64 commented Nov 10, 2021

2.1.3 is available now: https://git.savannah.nongnu.org/cgit/lwip.git/log/?h=STABLE-2_1_3_RELEASE

Rebased and adapted. Should we wait with merging it until the other issues with 2.1.2 and IPv4 (as described in #17174 op and comments) are fixed?

@miri64
Copy link
Member Author

miri64 commented Nov 10, 2021

Rebased and adapted.

Did not test yet btw ;-).

@maribu maribu added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Nov 11, 2021
@yarrick yarrick self-requested a review November 11, 2021 10:24
yarrick
yarrick previously approved these changes Nov 11, 2021
Copy link
Contributor

@yarrick yarrick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IPv4, IPv6 and dualstack work on my board (using examples/paho_mqtt, it gets an IP and responds to ping)

@yarrick
Copy link
Contributor

yarrick commented Nov 11, 2021

Rebased and adapted. Should we wait with merging it until the other issues with 2.1.2 and IPv4 (as described in #17174 op and comments) are fixed?

I dont think those build issues are version related. Running 6lowpan without IPv6 was never going to work :)

@miri64
Copy link
Member Author

miri64 commented Nov 11, 2021

Could you please also specifically check if disconnecting a TCP connection is causing any issues on 6LoWPAN-based boards (can do so as well if time permits)? You could use tests/lwip + socket_zep for that.

@yarrick
Copy link
Contributor

yarrick commented Nov 11, 2021

Test failure for two boards is:

  File "/tmp/dwq.0.5534339568221626/4daa7b7dfa574dea4fcc281944d8b740/tests/thread_float/tests/01-run.py", line 76
    msg = f"Either t1 or t3 printed less than {MIN_PRINTS} times within 100 messages"
                                                                                    ^
SyntaxError: invalid syntax

Are some tests done with different python versions? The code is pretty new (#16901)

Could you please also specifically check if disconnecting a TCP connection is causing any issues on 6LoWPAN-based boards (can do so as well if time permits)? You could use tests/lwip + socket_zep for that.

I haven't ever used 6lowpan so I don't feel ready to do that test yet.

@miri64 miri64 dismissed yarrick’s stale review November 11, 2021 17:38

In that case we should wait with merging this until I or maybe another maintainer find time to test the 6LoWPAN-based communication.

@benpicco
Copy link
Contributor

benpicco commented Nov 12, 2021

With examples/gnrc_networking you can enable socket ZEP (and thus 6lowpan on native) with USE_ZEP=1. We should probably extend a lwip test with the same option.

examples/gnrc_border_router will automatically route between tap and ZEP when build for native, the term target there also takes care of automatically starting the ZEP dispatcher.

Can LWIP also act as a border router? We might as well add an lwip_border_router example then.

@miri64
Copy link
Member Author

miri64 commented Nov 12, 2021

Can LWIP also act as a border router? We might as well add an lwip_border_router example then.

Not that I know of. At least not in the sense the gnrc_border_router works :-).

@miri64 miri64 added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: run tests If set, CI server will run tests on hardware for the labeled PR labels Nov 15, 2021
@miri64
Copy link
Member Author

miri64 commented Nov 15, 2021

--- run_test job results (2 failed, 210 passed, 212 total):
    failed:
    tests/thread_float/samr21-xpro:gnu
    tests/thread_float/esp32-wroom-32:gnu

clearly unrelated ;-).

@miri64
Copy link
Member Author

miri64 commented Nov 15, 2021

Tested on the IoT-LAB using iotlab-m3:

$ IOTLAB_NODES=2 BOARD=iotlab-m3 QUIETER=1 make -C tests/lwip --no-print-directory iotlab-exp
Building application "tests_lwip" for "iotlab-m3" with MCU "stm32".

   text	   data	    bss	    dec	    hex	filename
 100548	    160	  18724	 119432	  1d288	/home/mlenders/Repositories/RIOT-OS/RIOT/tests/lwip/bin/iotlab-m3/tests_lwip.elf
/usr/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/x509.py:15: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
Waiting that experiment 285624 gets in state Running
/usr/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/x509.py:15: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
"Running"
$ IOTLAB_NODES=2 BOARD=iotlab-m3 QUIETER=1 make -C tests/lwip --no-print-directory iotlab-term
/usr/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/x509.py:15: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
/usr/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/x509.py:15: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
/usr/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/x509.py:15: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
/usr/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/x509.py:15: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
/usr/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/x509.py:15: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
/usr/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/x509.py:15: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now.
  warnings.warn(
Connection to grenoble.iot-lab.info closed.
1636967167.951890;Aggregator started
ifconfig
1636967176.992476;m3-101;ifconfig
1636967176.992862;m3-100;�ifconfig
1636967176.993359;m3-100;Iface L60 HWaddr: de:7d:e2:26:62:4d:e6:45 Link: up State: up
1636967176.994428;m3-100;        Link type: wireless
1636967176.994695;m3-101;Iface L60 HWaddr: a6:da:e9:93:b3:cc:9f:60 Link: up State: up
1636967176.994819;m3-101;        Link type: wireless
1636967176.996403;m3-101;        inet6 addr: fe80:0:0:0:a4da:e993:b3cc:9f60 scope: link
1636967176.996740;m3-100;        inet6 addr: fe80:0:0:0:dc7d:e226:624d:e645 scope: link
udp server start 1337
1636967182.928858;m3-101;> udp server start 1337
1636967182.929746;m3-101;Success: started UDP server on port 1337
1636967182.930170;m3-100;> udp server start 1337
1636967182.931440;m3-100;Success: started UDP server on port 1337
tcp server start 1337
1636967187.029140;m3-100;> tcp server start 1337
1636967187.029373;m3-101;> tcp server start 1337
1636967187.029946;m3-100;Success: started TCP server on port 1337
1636967187.030090;m3-101;Success: started TCP server on port 1337
ip server start 255
1636967192.581803;m3-101;> ip server start 255
1636967192.582525;m3-101;Success: started IP server on protocol 255
1636967192.583407;m3-100;> ip server start 255
1636967192.585058;m3-100;Success: started IP server on protocol 255
m3-100;udp send [fe80:0:0:0:a4da:e993:b3cc:9f60]:1337 abcdef098765c412345
1636967231.196338;m3-100;> udp send [fe80:0:0:0:a4da:e993:b3cc:9f60]:1337 abcdef098765c412345
1636967231.197849;m3-100;Success: send 10 byte over UDP to [fe80:0:0:0:a4da:e993:b3cc:9f60]:1337
1636967231.211226;m3-101;> Received UDP data from [fe80::dc7d:e226:624d:e645]:1337
1636967231.211992;m3-101;00000000  AB  CD  EF  09  87  65  C4  12  34  50
m3-100;tcp connect [fe80:0:0:0:a4da:e993:b3cc:9f60]:1337
1636967253.552166;m3-100;> tcp connect [fe80:0:0:0:a4da:e993:b3cc:9f60]:1337
1636967253.564980;m3-101;TCP client [fe80::dc7d:e226:624d:e645]:49153 connected
m3-100;tcp send 0987654321abcdef
1636967272.120933;m3-100;> tcp send 0987654321abcdef
1636967272.121886;m3-100;Success: send 8 byte over TCP to server
1636967272.125876;m3-101;Received TCP data from client [fe80::dc7d:e226:624d:e645]:49153
1636967272.126459;m3-101;00000000  09  87  65  43  21  AB  CD  EF
m3-100;ip send fe80:0:0:0:a4da:e993:b3cc:9f60 255 ea123859
1636967297.796951;m3-100;> ip send fe80:0:0:0:a4da:e993:b3cc:9f60 255 ea123859
1636967297.799253;m3-100;Success: send 4 byte over IPv6 to fe80:0:0:0:a4da:e993:b3cc:9f60 (next header: 255)
1636967297.801311;m3-101;Received IP data from [fe80::dc7d:e226:624d:e645]:
1636967297.801507;m3-101;00000000  EA  12  38  59
m3-100;tcp disconnect
1636967308.795630;m3-100;> tcp disconnect
1636967308.803385;m3-101;TCP connection to [fe80::dc7d:e226:624d:e645]:49153 reset
$ iotlab-experiment stop

(the python cryptography issues are a local issue).

@miri64
Copy link
Member Author

miri64 commented Nov 15, 2021

Needs Re-ACK now.

@miri64 miri64 merged commit 3c402d8 into RIOT-OS:master Nov 16, 2021
@miri64 miri64 deleted the lwip/enh/v2.1.3 branch November 16, 2021 09:25
@fjmolinas fjmolinas added this to the Release 2022.01 milestone Nov 18, 2021
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Area: network Area: Networking Area: pkg Area: External package ports CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants