liuxiaolong
2022-06-28 37714b1093c04061e636e5b1d27179652e671c0a
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
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs defs_freebsd.go
 
package ipv4
 
const (
    sysIP_OPTIONS     = 0x1
    sysIP_HDRINCL     = 0x2
    sysIP_TOS         = 0x3
    sysIP_TTL         = 0x4
    sysIP_RECVOPTS    = 0x5
    sysIP_RECVRETOPTS = 0x6
    sysIP_RECVDSTADDR = 0x7
    sysIP_SENDSRCADDR = 0x7
    sysIP_RETOPTS     = 0x8
    sysIP_RECVIF      = 0x14
    sysIP_ONESBCAST   = 0x17
    sysIP_BINDANY     = 0x18
    sysIP_RECVTTL     = 0x41
    sysIP_MINTTL      = 0x42
    sysIP_DONTFRAG    = 0x43
    sysIP_RECVTOS     = 0x44
 
    sysIP_MULTICAST_IF           = 0x9
    sysIP_MULTICAST_TTL          = 0xa
    sysIP_MULTICAST_LOOP         = 0xb
    sysIP_ADD_MEMBERSHIP         = 0xc
    sysIP_DROP_MEMBERSHIP        = 0xd
    sysIP_MULTICAST_VIF          = 0xe
    sysIP_ADD_SOURCE_MEMBERSHIP  = 0x46
    sysIP_DROP_SOURCE_MEMBERSHIP = 0x47
    sysIP_BLOCK_SOURCE           = 0x48
    sysIP_UNBLOCK_SOURCE         = 0x49
    sysMCAST_JOIN_GROUP          = 0x50
    sysMCAST_LEAVE_GROUP         = 0x51
    sysMCAST_JOIN_SOURCE_GROUP   = 0x52
    sysMCAST_LEAVE_SOURCE_GROUP  = 0x53
    sysMCAST_BLOCK_SOURCE        = 0x54
    sysMCAST_UNBLOCK_SOURCE      = 0x55
 
    sizeofSockaddrStorage = 0x80
    sizeofSockaddrInet    = 0x10
 
    sizeofIPMreq         = 0x8
    sizeofIPMreqn        = 0xc
    sizeofIPMreqSource   = 0xc
    sizeofGroupReq       = 0x84
    sizeofGroupSourceReq = 0x104
)
 
type sockaddrStorage struct {
    Len         uint8
    Family      uint8
    X__ss_pad1  [6]int8
    X__ss_align int64
    X__ss_pad2  [112]int8
}
 
type sockaddrInet struct {
    Len    uint8
    Family uint8
    Port   uint16
    Addr   [4]byte /* in_addr */
    Zero   [8]int8
}
 
type ipMreq struct {
    Multiaddr [4]byte /* in_addr */
    Interface [4]byte /* in_addr */
}
 
type ipMreqn struct {
    Multiaddr [4]byte /* in_addr */
    Address   [4]byte /* in_addr */
    Ifindex   int32
}
 
type ipMreqSource struct {
    Multiaddr  [4]byte /* in_addr */
    Sourceaddr [4]byte /* in_addr */
    Interface  [4]byte /* in_addr */
}
 
type groupReq struct {
    Interface uint32
    Group     sockaddrStorage
}
 
type groupSourceReq struct {
    Interface uint32
    Group     sockaddrStorage
    Source    sockaddrStorage
}