aboutsummaryrefslogtreecommitdiff
path: root/docs/j1demo/firmware/defines_tcpip2.py
blob: 1d9e556410abf99318342ff7ea3c22072331aaf6 (plain)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
layout = [
    ('ETH', [
        ('DST', 6),
        ('SRC',  6),
        ('TYPE', 2),
        [
            ('ARP', [
                ('SOMETHING', 6),
                ('OPCODE', 2),
                ('SRC_ETH', 6),
                ('SRC_IP', 4),
                ('DST_ETH', 6),
                ('DST_IP', 4) ]),
            ('IP', [
                ('VHLTOS', 2),
                ('LENGTH', 2),
                ('IPID', 2),
                ('IPOFFSET', 2),
                ('TTLPROTO', 2),
                ('CHKSUM', 2),
                ('SRCIP', 4),
                ('DSTIP', 4),
                [
                    ('ICMP', [
                        ('TYPECODE', 2),
                        ('CHKSUM', 2),
                        ('IDENTIFIER', 2),
                        ('SEQUENCE', 2) ]),
                    ('TCP', [
                        ('SOURCEPORT', 2),
                        ('DESTPORT', 2),
                        ('SEQNUM', 4),
                        ('ACK', 4),
                        ('FLAGS', 2),
                        ('WINDOW', 2),
                        ('CHECKSUM', 2),
                        ('URGENT', 2) ]),
                    ('UDP', [
                        ('SOURCEPORT', 2),
                        ('DESTPORT', 2),
                        ('LENGTH', 2),
                        ('CHECKSUM', 2),
                        [
                            ('DHCP', [
                                ('OP', 1),
                                ('HTYPE', 1),
                                ('HLEN', 1),
                                ('HOPS', 1),
                                ('XID', 4),
                                ('SECS', 2),
                                ('FLAGS', 2),
                                ('CIADDR', 4),
                                ('YIADDR', 4),
                                ('SIADDR', 4),
                                ('GIADDR', 4),
                                ('CHADDR', 16),
                                ('SNAME', 64),
                                ('FILE', 128),
                                ('OPTIONS', 312)
                            ]),
                            ('DNS', [
                                ('IDENTIFICATION', 2),
                                ('FLAGS', 2),
                                ('NOQ', 2),
                                ('NOA', 2),
                                ('NORR', 2),
                                ('NOARR', 2),
                                ('QUERY', 1)
                            ]),
                            ('NTP', [
                                ('FLAGS', 4),
                                ('ROOTDELAY', 4),
                                ('ROOTDISPERSION', 4),
                                ('REFID', 4),
                                ('REFERENCE', 8),
                                ('ORIGINATE', 8),
                                ('RECEIVE', 8),
                                ('TRANSMIT', 8),
                            ]),
                            ('TFTP', [
                                ('OPCODE', 2),
                                [
                                    ('RWRQ', [
                                        ('FILENAME', 512)
                                    ]),
                                    ('DATA', [
                                        ('BLOCK', 2),
                                        ('DATA', 512)
                                    ]),
                                    ('ACK', [
                                        ('BLOCK', 2),
                                    ]),
                                    ('ERROR', [
                                        ('NUMBER', 2),
                                        ('MESSAGE', 512),
                                    ]),
                                ]
                            ]),
                            ('LOADER', [
                                ('SEQNO', 2),
                                ('OPCODE', 2),
                                [
                                    ('RAMREAD', [
                                        ('ADDR', 2)
                                    ]),
                                    ('RAMWRITE', [
                                        ('ADDR', 2),
                                        ('DATA', 128)
                                    ]),
                                    ('FLASHREAD', [
                                        ('ADDR', 4)
                                    ]),
                                    ('FLASHWRITE', [
                                        ('ADDR', 4),
                                        ('DATA', 128)
                                    ]),
                                ]
                            ]),
                            ('WGE', [
                                ('MAGIC', 4),
                                ('TYPE', 4),
                                ('HRT', 16),
                                ('REPLYTO', [
                                    ('MAC', 8),
                                    ('IP', 4),
                                    ('PORT', 2),
                                ]),
                                ('PAD', 2),
                                [
                                    ('DISCOVER', [
                                        ('IP', 4)
                                    ]),
                                    ('CONFIGURE', [
                                        ('PRODUCT', 4),
                                        ('SERIAL', 4),
                                        ('IP', 4)
                                    ]),
                                    ('FLASHREAD', [
                                        ('ADDRESS', 4)
                                    ]),
                                    ('FLASHWRITE', [
                                        ('ADDRESS', 4),
                                        ('DATA', 264),
                                    ]),
                                    ('TRIGCONTROL', [
                                        ('TRIGSTATE', 4),
                                    ]),
                                    ('SENSORREAD', [
                                        ('ADDRESS', 1),
                                    ]),
                                    ('SENSORWRITE', [
                                        ('ADDRESS', 1),
                                        ('DATA', 2),
                                    ]),
                                    ('SENSORSELECT', [
                                        ('INDEX', 1),
                                        ('ADDRESS', 4),
                                    ]),
                                    ('IMAGERMODE', [
                                        ('MODE', 4),
                                    ]),
                                    ('IMAGERSETRES', [
                                        ('HORIZONTAL', 2),
                                        ('VERTICAL', 2),
                                    ]),
                                    ('SYSCONFIG', [
                                        ('MAC', 6),
                                        ('SERIAL', 4),
                                    ]),
                                    ('VIDSTART', [
                                        ('MAC', 8),
                                        ('IP', 4),
                                        ('PORT', 2),
                                    ]),
                                ]
                            ]),
                        ]
                    ])
                ]
            ])
        ]])
]

offsets = {}
def descend(offset, prefix, node):
    start = offset
    if isinstance(node, list):
        for n in node:
            descend(offset, prefix, n)
    else:
        (name, members) = node
        offsets[".".join((prefix + [name]))] = offset
        if isinstance(members, int):
            offset += members
        else:
            for n in members:
                offset = descend(offset, prefix + [name], n)
            # offsets["%s%s_SIZE" % (prefix, name)] = offset - start
    return offset

descend(0, [], layout[0])

offsets['TCP_FIN'] = 1
offsets['TCP_SYN'] = 2
offsets['TCP_RST'] = 4
offsets['TCP_PSH'] = 8
offsets['TCP_ACK'] = 16
offsets['TCP_URG'] = 32

offsets['IP_PROTO_ICMP'] = 1
offsets['IP_PROTO_IGMP'] = 2
offsets['IP_PROTO_TCP'] = 6
offsets['IP_PROTO_UDP'] = 17

offsets['NUM_TCPS'] = 2