1# Copyright 2017 syzkaller project authors. All rights reserved.
2# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
3
4include <sys/types.h>
5include <sys/socket.h>
6include <netinet/in.h>
7
8# This corresponds to LOCAL_IPV4 ("172.20.%d.170" % pid) in executor/common.h
9ipv4_addr_local {
10	a0	const[0xac, int8]
11	a1	const[0x14, int8]
12	a2	proc[0, 1, int8]
13	a3	const[0xaa, int8]
14} [packed]
15
16# This corresponds to LOCAL_IPV4 ("172.20.%d.187" % pid) in executor/common.h
17ipv4_addr_remote {
18	a0	const[0xac, int8]
19	a1	const[0x14, int8]
20	a2	proc[0, 1, int8]
21	a3	const[0xbb, int8]
22} [packed]
23
24ipv4_addr [
25# 0.0.0.0
26	empty		const[0x0, int32be]
27# 172.20.%d.170
28	local		ipv4_addr_local
29# 172.20.%d.187
30	remote		ipv4_addr_remote
31# 127.0.0.1
32	loopback	const[0x7f000001, int32be]
33# 224.0.0.1
34	multicast1	const[0xe0000001, int32be]
35# 224.0.0.2
36	multicast2	const[0xe0000002, int32be]
37# 255.255.255.255
38	broadcast	const[0xffffffff, int32be]
39# random
40	rand_addr	int32be
41]
42
43ipv6_addr_empty {
44	a0	array[const[0x0, int8], 16]
45}
46
47# This corresponds to LOCAL_IPV6 ("fe80::%02hxaa" % pid) in executor/common.h
48ipv6_addr_local {
49	a0	const[0xfe, int8]
50	a1	const[0x80, int8]
51	a2	array[const[0x0, int8], 12]
52	a3	proc[0, 1, int8]
53	a4	const[0xaa, int8]
54} [packed]
55
56# This corresponds to REMOTE_IPV6 ("fe80::%02hxbb" % pid) in executor/common.h
57ipv6_addr_remote {
58	a0	const[0xfe, int8]
59	a1	const[0x80, int8]
60	a2	array[const[0x0, int8], 12]
61	a3	proc[0, 1, int8]
62	a4	const[0xbb, int8]
63} [packed]
64
65ipv6_addr_loopback {
66	a0	const[0, int64be]
67	a1	const[1, int64be]
68} [packed]
69
70ipv6_addr [
71	empty		ipv6_addr_empty
72	local		ipv6_addr_local
73	remote		ipv6_addr_remote
74	loopback	ipv6_addr_loopback
75]
76