All Projects → njh → EtherSia

njh / EtherSia

Licence: other
Minimal IPv6 library for Ethernet controllers on Arduino

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to EtherSia

wiznet
WIZnet TCP/IP chips (such as W5500/W5100..) SAL framework implement.
Stars: ✭ 41 (-24.07%)
Mutual labels:  w5100, w5500
Cnp3
Computer Networking : Principles, Protocols and Practice (first and second edition, third edition is being written on https://github.com/cnp3/ebook)
Stars: ✭ 471 (+772.22%)
Mutual labels:  ipv6, ethernet
EthernetWebServer
This is simple yet complete WebServer library for AVR, Portenta_H7, Teensy, SAM DUE, SAMD21/SAMD51, nRF52, STM32, RP2040-based, etc. boards running Ethernet shields. The functions are similar and compatible to ESP8266/ESP32 WebServer libraries to make life much easier to port sketches from ESP8266/ESP32. Coexisting now with `ESP32 WebServer` and…
Stars: ✭ 118 (+118.52%)
Mutual labels:  ethernet, enc28j60
IPpy
🚀 Ping IP addresses and domains in parallel to find the accessible and inaccessible ones.
Stars: ✭ 54 (+0%)
Mutual labels:  ipv6
vertx-ddns
基于 Vert.x 的 DDNS 解决方案。自动更新域名解析到本机IP, 支持的DNS服务商: Alidns(阿里云) 、 Dnspod(腾讯云) 、Cloudflare、华为云
Stars: ✭ 126 (+133.33%)
Mutual labels:  ipv6
ip-finder-cli
The official command line client for IPFinder
Stars: ✭ 11 (-79.63%)
Mutual labels:  ipv6
pim6sd
PIM for IPv6 sparse mode daemon
Stars: ✭ 15 (-72.22%)
Mutual labels:  ipv6
node-ip2region
IP/IPv6 to region on Node.js (IP/IPv6 地址到区域运营商)
Stars: ✭ 95 (+75.93%)
Mutual labels:  ipv6
Proxysu
Xray,V2ray,Trojan,NaiveProxy, Trojan-Go, ShadowsocksR(SSR),Shadowsocks-libev及相关插件,MTProto+TLS 一键安装工具,windows下用(一键科学上网)
Stars: ✭ 3,309 (+6027.78%)
Mutual labels:  ipv6
go-external-ip
a Golang library to get your external ip from multiple services
Stars: ✭ 55 (+1.85%)
Mutual labels:  ipv6
yakut
Simple CLI tool for diagnostics and debugging of Cyphal networks
Stars: ✭ 29 (-46.3%)
Mutual labels:  ethernet
Arduino-STM32-Ethernet-LAN8720
Ethernet on STM32 using external PHY
Stars: ✭ 19 (-64.81%)
Mutual labels:  ethernet
private-ip
Check if IP address is private.
Stars: ✭ 26 (-51.85%)
Mutual labels:  ipv6
pocketinternet
A Pocket Internet for teaching how the Internet really works.
Stars: ✭ 28 (-48.15%)
Mutual labels:  ipv6
fakeroute
IPv4 and IPv6 traceroute fake hop generator through IP spoofing
Stars: ✭ 75 (+38.89%)
Mutual labels:  ipv6
v-switch
Virtual Encrypted Switch across the network, using UDP + AES + TAP
Stars: ✭ 27 (-50%)
Mutual labels:  ethernet
Cernet Ipv6 Hosts
Lightweight IPv6 hosts! Access to Google, YouTube, Facebook, Wikipedia via IPv6 and avoid unnecessary block.
Stars: ✭ 229 (+324.07%)
Mutual labels:  ipv6
netcalc
Advanced network calculator and address planning helper
Stars: ✭ 20 (-62.96%)
Mutual labels:  ipv6
sync hosts
解除Resilio Sync/BTSync限制china地区 镜像:https://coding.net/u/renerli/p/sync_hosts/git
Stars: ✭ 15 (-72.22%)
Mutual labels:  ipv6
python-string-utils
A handy Python library to validate, manipulate and generate strings
Stars: ✭ 47 (-12.96%)
Mutual labels:  ipv6

EtherSia

A minimal IPv6 library for an Arduino with an ENC28J60, W5500 or W5100 Ethernet controller.

Features

  • SLAAC (Neighbour Discovery Protocol / Stateless Auto-configuration)
  • HTTP Server
  • UDP Client and Server
  • DNS Client

Design Decisions

  1. Optimised for Arduino - not a general purpose library
  2. Should be easy to use - this is what Arduino is all about
  3. Should work within the constraints of an Uno - 32k ROM and 2k RAM
  4. Should follow the Style Guide and avoid using complex C features like Pointers and Callbacks
  5. Decouple the core from protocols where possible, to allow for program size optimisations
  6. Only use statically allocated memory to avoid leaks and keep memory usage down

Limitations

  • Ethernet only
  • No DHCPv6
  • No Routing or RPL
  • No TCP Client
  • Stateless TCP in HTTP Server (single packet request/response)
  • No fragmentation support
  • A single local router on the network is assumed
  • The network prefix length is assumed to be /64

If you need a more fully functional IPv6 stack, then take a look at Contiki.

EtherSia is an IPv6 only library. If you are looking for an IPv4 library for ENC28J60, then take a look at EtherCard.

Compatibility

EtherSia should work on any Arduino board with ENC28J60, W5500 or W5100 based network interface. There are the results of boards I have tested with:

Board Class Tested? CS Pin Hardware MAC Address
Arduino Ethernet Shield EtherSia_W5100 Working 10 None
Arduino Ethernet Shield 2 EtherSia_W5500 Working 10 None
Nanode v5 EtherSia_ENC28J60 Working 8 UNI/O 11AA02E48
Nanode RF / Classic EtherSia_ENC28J60 - 8 MCP79411
Nano Shield EtherSia_ENC28J60 Working 10 None
Velleman KA04/VMA04 EtherSia_ENC28J60 - 10 None
Ciseco Ethernet Shield K016 EtherSia_ENC28J60 - 10 None
Snootlab Gate 0.5 EtherSia_ENC28J60 - 10 None
Testing on Linux EtherSia_LinuxSocket Working - -

License: 3-clause BSD license

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].