Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

WIP: Add IPv4 GNRC #12988

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open

WIP: Add IPv4 GNRC #12988

wants to merge 16 commits into from

Conversation

wysman
Copy link
Contributor

@wysman wysman commented Dec 18, 2019

Hi,

Why we do that :

  • We create IoT object for old networks which are IPv4 only
  • We want to be able to expose the shell over IPv4 TCP (ie. telnet)
  • We want to be able to serve static web site over IPv4 Ethernet

We have start working on a IPv4 GNRC for RIOT, and we want to share the code early to open discussion about the implementation.

Test platform :

  • Any board with a supported Ethernet PHY
  • We works with the esp32-olimex-evb

Test application

  • examples/gnrc_minimal_ipv4
  • The shell command: sc_gnrc_icmpv4_echo

The current state :

  • We can send and receive IPv4 frame
  • We can send and receive ARP requests
  • We can send and receive ICMP requests
  • We answer to ICMP requests
  • We can set IP / Netmask / Gateway / Routes
  • We have limit to 2 ip address, and 8 routes, these limits can be overwrite

Work in progress

  • We start a example for UDP Client/Server, the code need to be cleanup to support both IPv4 and IPv6 stack in the same time
  • TCP
  • Cleanup code + uncrustify
  • Add doxygen documentation

@aabadie aabadie added the Area: network Area: Networking label Dec 19, 2019
@miri64 miri64 self-requested a review December 19, 2019 08:44
@miri64 miri64 added the Type: new feature The issue requests / The PR implemements a new feature for RIOT label Dec 19, 2019
@miri64
Copy link
Member

miri64 commented Dec 19, 2019

Thanks for this great effort! I didn't have time to look into the code in detail, but from what I can tell already it might make sense to split this up into several PRs to stream-line the review process, e.g.

  • ARP + IPv4 + a minimalistic example (not like gnrc_minimal, where the focus is to be as small as possible footprint-wise, but where a minimal feature set is provided),
  • ICMP,
  • the WIP rest

BTW regarding WIP:

* TCP

We do support TCP already in GNRC.

@wysman
Copy link
Contributor Author

wysman commented Dec 19, 2019

Actually, we are not working actively on this feature but we want to rework on it to be able to integrate it in RIOT for our future project.

My co-worker just tell me he have uncommitted code for the UDP section.

@miri64 miri64 added the State: don't stale State: Tell state-bot to ignore this issue label Jan 20, 2020
@aabadie
Copy link
Contributor

aabadie commented Jun 24, 2020

@wysman are you still planning to work on IPv4 for GNRC ?

@wysman
Copy link
Contributor Author

wysman commented Jul 16, 2020

@aabadie We are going to ZephyrOS for the next project, so our work on GNRC IPv4 will be stall for long time.
I don't have the time to split the pull request and handle all the murdock process, but i can work a day from UGE Nantes or INRIA Rennes to make some technical reviews.

@aabadie
Copy link
Contributor

aabadie commented Jul 16, 2020

but i can work a day from UGE Nantes or INRIA Rennes to make some technical reviews.

Do you mean that we can start a review here and you will address the comments ? By the way, are you working at Inria ?

@aabadie
Copy link
Contributor

aabadie commented Jul 16, 2020

@wysman, since this PR is filling an important hole in GNRC and got a lot of positive reactions, we would really appreciate if you could find some time to finalize it.

@MrKevinWeiss MrKevinWeiss added this to the Release 2021.07 milestone Jun 22, 2021
@MrKevinWeiss MrKevinWeiss removed this from the Release 2021.07 milestone Jul 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: network Area: Networking State: don't stale State: Tell state-bot to ignore this issue Type: new feature The issue requests / The PR implemements a new feature for RIOT
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants