Added documentation for Ether2Any
This commit is contained in:
parent
12aa0d08e0
commit
dc84f0265f
|
@ -0,0 +1,38 @@
|
|||
Ether2Any and PyTap
|
||||
===================
|
||||
Ether2Any is a python baseclass for writing arbitrary Ethernet/IP tunnel using
|
||||
a TUN/TAP device.
|
||||
|
||||
PyTap is a python class for handling a TUN/TAP device. It exposes read/write
|
||||
and abstracts a bit of the network configuration.
|
||||
|
||||
Installation and requirements
|
||||
=============================
|
||||
|
||||
Just put it somewhere and import it. For PyTaps network configuration
|
||||
functions you need /sbin/ifconfig.
|
||||
|
||||
|
||||
How to write an Ethernet/IP tunnel
|
||||
==================================
|
||||
Writing a tunnel with this is rather easy. All you have to do create a class
|
||||
inheriting from Ether2Any and implement the method sendToNet(). sendToNet()
|
||||
will be called for each incoming network packet. If you add extra sockets
|
||||
to the select loop via addSocket, sendToDev() needs to be implemented,
|
||||
which gets the socket on which new data is ready. If you don't want to rely
|
||||
on select you are free to pass self.dev (which is a PyTap() instance) and
|
||||
call dev.write() whenever you like. Note that if you write invalid network
|
||||
packets on it, you might get an exception.
|
||||
|
||||
Afterwards you can instanciate your class and call the run() method to start
|
||||
your tunnel.
|
||||
|
||||
|
||||
What could be done
|
||||
==================
|
||||
* At the beginning of each packet there are
|
||||
* Builtin packet aggregation would be nice
|
||||
* Various FIXMEs/TODOs
|
||||
* Replace ifconfig with the ip utility
|
||||
* Add plugin architecture to pytap for traffic mangling
|
||||
* setuptools/pypi dance
|
5
Readme
5
Readme
|
@ -1,5 +0,0 @@
|
|||
|
||||
|
||||
|
||||
Documentation
|
||||
http://www.kernel.org/doc/Documentation/networking/tuntap.txt
|
7
TODO
7
TODO
|
@ -1,7 +0,0 @@
|
|||
TODO
|
||||
- 00 80 at beginning of every packet - what is this?
|
||||
- writing random data to dev generates OSError - handle this
|
||||
|
||||
FEATURES
|
||||
- implement configurable packet aggregation
|
||||
- if possible and useful: helper to replace ethernet
|
|
@ -6,7 +6,7 @@ import logging
|
|||
from pytap import TapDevice
|
||||
|
||||
class Ether2Any:
|
||||
""" Baseclass for writing arbitrary Ethernet/IP Tunnels using TUN/TAP device.
|
||||
""" Baseclass for writing arbitrary Ethernet/IP tunnel using a TUN/TAP device.
|
||||
|
||||
This class handles a TUN/TAP devices and runs a select loop for it and,
|
||||
if given, a set of sockets. To use this class at least sendToNet() has
|
||||
|
|
Loading…
Reference in New Issue