-
Notifications
You must be signed in to change notification settings - Fork 2
/
notes.txt
76 lines (49 loc) · 1.88 KB
/
notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
TODO:
* decide if data section should be PCR or what?
* what evil shall we do with dhcp option "file" ?
Zombie TODO:
* code the zombie protocol
* design the zombie protocol
* after PIC implement ability to move system at run-time, or
give the master enough info to do it. (where are you at?)
- problem: call backs will have to be updated
- interrupt vector will have to be updated
* Local announcements
* a unix boot server
* ROM!
* a unix proglet to write settings: hw address, IP settings, boot options
Network Stack:
* put stack in its own context
* how to route incoming packet to correct sockets for listening vs. connections
* TCP
* TCP done up to simple tcp bridges
zombie protocol:
UDP
assume one master, and multiple slaves
slave sits on UDP 6999 listening for commands
periodicly announce a coco booting via message type (0x00)
message types:
announce 0x00 - announce coco's presence
read 0x01 - request a read of memory
write 0x02 - request a write of memory
exec 0x03 - execute memory**
flags: 0x80 - 0 if command, 1 if response
UDP datagram layout:
offset size what
0 1 message type / flags
1 2 XID
3 2 data address
5 2 data size
7 ?? data
** on reception of execute memory, the slave will send confirmation
packet out to master *before* executing memory.
protocol runs lock-step, and master will retransmit commands if it
doesn't receive a response in a timely (TBD) fashion. The slave keeps
track of the last received XID, and will retransmit it received again.
This means the master must new XID for each new command.
* punching holes:
peer-to-peer clients and servers connect to eachother by both making a
connection to the central master. The master upon matching the two up, tells each client the other's public ip/port no, upon which the clients redirect the sockets to eachother.
Inserting BASIC lines:
ac7c
a390