-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtodo
55 lines (32 loc) · 2.65 KB
/
todo
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
to count lines : grep "^[^;]" *.scm | wc -l
down to 5703 bytes (from what ? something put it higher, no idea what)
now 5652, 5641, 5626, 5602, 5570, 5442, 5424, 5413, 5414, 5401, 5395, 5370, 5354, 5337, 5323, 5307, 5294, 5281, 5275, 5259, 5238, 5222
5260 with the arp check back in
5243, 5235, 5227
5152 with icmp-encapsulation calling ip-encapsulation
5127, 5069, 5045, 5023, 5017, 4986, 4812
4689 : no idea what happened, only changed the rarp list lookup (which had no effect, I reverted it), there must have been a large change after which I forgot to compile, hope it didn't break anything
4678, 4622 (got rid of about 12 useless let's), 4610, 4507
4086 after realising all the inspection function could never be used without a lock failure, and locks were removed since they are useless in a single-thread environment
4067, 4047, 4037, 4024, 4015, 3997, 3977, 3962
3560, removed print-packet from picobit-compatibility, which removed dependency to display
3549, 3536, 3498
figure out dependencies for each module
get rid of weird capitalisation for MAC, IP, etc
standardize names, for instance, use only make or create (we only have make's now), not a mix of the 2
make sure constants (as in (define x 3)) are really inlined and don't cost more that a simple 3 (simple example to prove it : use both one after the other and check size)
have an a-list for mac-ip associations, kind of arp cache, but maybe without arp, when we send a packet, the address either has to be in the list, or must have sent a message before (we might have a leak if we keep all addresses)
utiliser case, surtout pour dispatch de higher protocols NON prend plus de place (p-e que cout de memq s'amortit, reste a voir), aurait besoin de equal? case pour ethernet, donc probablement trop de trouble
have vector field equality directly in the vm
test everything to make sure it works
when we bind a port, say for which address, or leave for everyone by default ?
getting rid of (define (=pkt-u8? i u8 n) (u8vector-equal-field? pkt i u8 0 n)) cost us 13 bytes, but saves in time, let's see what we decide later
how to make sure that stack task really sends pendng output ? (implement stack-task)
CHANGE BUFFERS TO HAVE 2 POINTERS
replace src dst pkt, etc
udp output should make an ARP request if necessary to find the MAC of the target
change udp-encapsulation to udp-write
bug with ip checksum check, see on laptop, discovered during tests
FIX THE FILES TO LOAD PROBLEM, ALWAYS HAVE TO CHANGE THE PATH
for timeouts, should the stack check by itself, or should it be done only when the user asks to do something with the connection ?
CHECK ALL THE STATE FUNCTIONS TO SEE IF TCP IS RESPECTED, sometimes I have doubts