gsliepen/tinc — pull request #55 by dechamps (2014-09-28 14:27:27+00:00)
Title: SPTPS UDP datagram relay support

This pull request contains the necessary changes to add support for relaying SPTPS UDP datagrams, which was previously impossible and required a fallback to TCP.

These changes were discussed on the [tinc mailing list][ml]. Various ways of accomplishing this have been discussed in a [design document][doc]; this pull request implements the following agreed-upon solution:

- Node identifiers: hash-based identifier, 48-bit hash, no conflict resolution.
- Wire format: unauthenticated relay header with source and destination prepended at the beginning of the UDP payload (before the seqno) at all times (unless the destination node has protocol < 17.4); direct packets are signaled by a special value (zero) for the destination field.

[ml]: http://www.tinc-vpn.org/pipermail/tinc/2014-August/003834.html
[doc]: https://docs.google.com/document/d/1lOo05SsylNMMLLavdzJwdQ37Y25i6AkVMFhztcCDu6o/edit?usp=sharing