marcorussi / min_ip

An IP layer with ARP and ICMP ping layers. It is implemented for PIC32 devices on top of my Ethernet layer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

minIP

An IP layer compliant to RFC791 with ARP and ICMP layers (Ping service). This demo project runs over PIC32 Ethernet Starter Kit and has been tested with an Ubuntu laptop through an Ethernet switch.

This IP stack is implemented on top of my Ethernet driver for PIC32.

The demo application sets a static IP address and then starts a Ping service to a fixed remote address for 5 seconds. How to use the demo application:

  • set a static local IP address in app_ip.c file;
  • check the IP address of your PC and then set it as remote IP address in app_ip.c file;
  • build and run on the board;
  • you can see ping requests from the board and PC replies with a tool like Wireshark for the first 5 seconds;
  • start a Ping request from your PC to the board, use a command like: $ ping -I eth0 10.42.0.10.

For an example of use please have a look at minUDP project.

Known issues:

  • Ethernet layer remains stacked until an Ethernet cable is connected. It is necessary to add a timeout in order to exit the related infinite loop in eth.c file.
  • Checksum calculation with fragmented packets has not been tested properly.

About

An IP layer with ARP and ICMP ping layers. It is implemented for PIC32 devices on top of my Ethernet layer.

License:MIT License


Languages

Language:C 97.4%Language:C++ 2.6%