raw: Add README.
[swifty.git] / src / raw / README
1 Raw socket-based implementation of swift transport protocol.
2
3 Swift is a multiparty protocol implemented at Tranport Layer (layer 4)
4 in the OSI stack. It is a form of BitTorrent in kernel space.
5
6 This is a "simulated" implementation of the protocol using raw sockets.
7 After testing and implementation focus is going to be to "port" the
8 implementation in the Linux kernel as a true transport protocol.
9
10 = GET SOURCE CODE =
11
12 Use the git repository:
13       git clone gitolite@koala.cs.pub.ro:swifty.git
14
15 = BUILDING =
16
17 Just use the Makefile:
18       make
19
20 = TEST CASES =
21
22 Use the test/ folder to test the implementation. Use the Makefile to
23 build the test executable and then run it:
24       cd test/
25       make
26       ./test
27
28 = FILE STRUCTURE =
29
30 * root folder
31   - swift_raw.c: implements the swift "syscalls". System calls are
32     simulated using raw sockets.
33   - swift_list.h/swift_list.c: list implementation for socket
34     management.
35   - swift_raw_simple_test.c: simple test going through all major swift
36     socket "syscalls".
37
38 * include/ folder
39   - util.h: error handling utility functions and macros.
40   - debug.h: debugging functions and macros.
41   - swift_raw.h: raw socket-API (swift "syscalls").
42   - swift_types.h: swift address structure and header. These are
43     independent of the implementation; they should be unmodified when
44     doing the port to the Linux kernel.
45
46 * test/ folder
47   - test.h: defines the test macro used throughout the tests.
48   - test.c: test source code file. Defines main() and invokes test
49     functions.
50   - test_sw.h: declaration of test functions invoked in test.c.
51   - test_*.c: definition of test functions; each file consists of a
52     different set of functions within the same scope.