bump release number
[pingofdeath.git] / README
1 Planetlab Ping-of-Death (POD)
2 -----------------------------
3 The Planetlab POD is a Linux kernel patch that creates the feature
4 of resetting and rebooting a computer when a particularily
5 formatted ICMP "ping" commmand is received.
6
7 A PlanetLab node's kernel gets a host, mask and hash value through
8 sysctl's that are performed on the node.  The node then looks
9 for an ICMP packet from a host matching the host/mask and, if the
10 packet payload is the hash value, the node forces an immediate
11 reboot.
12
13 From a controlling host's side, one invokes commands on the
14 remote node to set the host, mask and hash values and remembering
15 the hash value.  When the rebooting of a remote node is required,
16 the remembered hash value is looked up and sent to the node
17 in a specially constructed ICMP packet.
18
19 This POD system uses the same packet definition as EMULAB and uses
20 the some code from EMULAB to generate and transmit the packet.
21 No reason to invent something new.
22
23 The remote execution (ssh commands) are all done as "idsl1".
24
25 Contolling host tools:
26 pl-podset:  set the host and hash on a remote node
27         Call: pl-podset hostIP maskIP targetName
28         Uses ssh to call 'pl-podcntl' on the remote node to
29         set the host and hash in that node.  Also saves the
30         information into the file './HashFile'.
31 pl-podzap: send ICMP packet to node to resetit
32         Call: pl-podzap targetName
33         Fetches parameters from the file './HashFile' and
34         calls 'pl-poddoit' on the 'hostIP' machine to send the 
35         reset ICMP packet to the specified target node.
36         Note that this relies on the planetlab node that
37         was specified in the 'pl-podset' command to actually
38         do the packet transmission.
39 pl-poddoit: send the ICMP packet (called by 'pl-podzap')
40         Routine that constructs an ICMP packet of the proper
41         format and send it to the node.
42
43 Planetlab node scripts:
44 pl-podcntl: set the host and hash into the kernel
45         Call: pl-podcntl hostIP maskIP hashValue
46         Sets the specified values into the kernel and enables
47         the POD filtering operation.
48
49 EXAMPLE
50 -------
51 Setting a node to be able to reset (assuming running on 123.123.12.23):
52     pl-podset 123.123.12.23 255.255.255.255 planetlab-1.stanford.edu
53
54 To later reset the node (command performed on 123.123.12.23):
55     pl-podzap planetlab-1.stanford.edu