Protocol and reference implementation for direct messaging over raw Ethernet
Go to file
Juhani Krekelä 9513911377 Pad the frame to the required length.
If we don't do that, the NIC will generate padding that contains
non-zero bytes. EtherMess excepts all-zero padding, so this will break.
2019-07-24 20:45:20 +03:00
.gitignore Start working on the frontend 2019-07-10 22:10:14 +03:00
CC0 First commit 2019-07-03 22:20:25 +03:00
Makefile Take better advantage of install(1) 2019-07-19 00:02:21 +03:00
README.md Make licensing clear 2019-07-20 22:32:45 +03:00
arp-request.c Remove unnecessary errno = 0; 2019-07-10 13:38:40 +03:00
ethermess-backend.c Pad the frame to the required length. 2019-07-24 20:45:20 +03:00
ethermess.1 Let's not give our example users multicast MACs 2019-07-16 19:13:25 +03:00
ethermess.7 Proofreading ethermess.7 2019-07-18 14:30:42 +03:00
ethermess.py Don't modify peers[foo].lastseen unless peers[foo] exists 2019-07-19 00:17:45 +03:00
ethertype-dump.c Remove unnecessary errno = 0; 2019-07-10 13:38:40 +03:00
frontend-backend-protocol.md Document the other case where msgid might become invalid 2019-07-15 11:02:39 +03:00
test.sh Only do setcap in test.sh if necessary 2019-07-16 12:34:34 +03:00

README.md

EtherMess

EtherMess is a protocol for direct messaging over bare Ethernet as well as a reference implementation for it in C and Python.

Building and installing

Build with make and install with make install. If you are installing somewhere other than the default of /usr/local, please set PREFIX to that location during both build and installation steps.

make install will tell you how to set the correct capability on ethermess-backend to allow running it as a normal user.

Protocol documentation

Description of the EtherMess protocol is provided as a man page ethermess.7. The description is contractual, and may not change in incompatible ways unless the version number in the EtherMess packets is updated.

Additionally a description of the protocol spoken between ethermess-backend and ethermess is provided to help understand the code and develop alternative frontends. The description is non-contractual and the protocol may change with future versions of ethermess.

Licensing

Everything in the repository is under Creative Commons Zero 1.0 Universal license.