TianoCore EDK2 master
Loading...
Searching...
No Matches
Ip6Mld.h
Go to the documentation of this file.
1
10#ifndef __EFI_IP6_MLD_H__
11#define __EFI_IP6_MLD_H__
12
13#define IP6_UNSOLICITED_REPORT_INTERVAL 10
14
15#pragma pack(1)
16typedef struct {
17 IP6_ICMP_HEAD Head;
18 UINT16 MaxRespDelay;
19 UINT16 Reserved;
20 EFI_IPv6_ADDRESS Group;
22#pragma pack()
23
24//
25// The status of multicast group. It isn't necessary to maintain
26// explicit state of host state diagram. A group with finity
27// DelayTime (less than 0xffffffff) is in "delaying listener" state. otherwise, it is in
28// "idle listener" state.
29//
30typedef struct {
31 LIST_ENTRY Link;
32 INTN RefCnt;
33 EFI_IPv6_ADDRESS Address;
34 UINT32 DelayTimer;
35 BOOLEAN SendByUs;
38
39//
40// The MLD status. Each IP6 service instance has a MLD_SERVICE_DATA
41// attached. The Mldv1QuerySeen remember whether the server on this
42// connected network is v1 or v2.
43//
44typedef struct {
45 INTN Mldv1QuerySeen;
46 LIST_ENTRY Groups;
48
60 IN IP6_SERVICE *IpSb,
61 IN EFI_IPv6_ADDRESS *MulticastAddr
62 );
63
77 IN IP6_SERVICE *IpSb
78 );
79
94 IN IP6_SERVICE *IpSb,
95 IN IP6_INTERFACE *Interface,
96 IN EFI_IPv6_ADDRESS *Address
97 );
98
112 IN IP6_SERVICE *IpSb,
113 IN EFI_IPv6_ADDRESS *Address
114 );
115
133Ip6Groups (
134 IN IP6_PROTOCOL *IpInstance,
135 IN BOOLEAN JoinFlag,
136 IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL
137 );
138
154 IN IP6_SERVICE *IpSb,
155 IN EFI_IP6_HEADER *Head,
156 IN NET_BUF *Packet
157 );
158
173 IN IP6_SERVICE *IpSb,
174 IN EFI_IP6_HEADER *Head,
175 IN NET_BUF *Packet
176 );
177
185VOID
187 IN IP6_SERVICE *IpSb
188 );
189
190#endif
INT64 INTN
EFI_STATUS Ip6LeaveGroup(IN IP6_SERVICE *IpSb, IN EFI_IPv6_ADDRESS *Address)
Definition: Ip6Mld.c:547
EFI_STATUS Ip6ProcessMldReport(IN IP6_SERVICE *IpSb, IN EFI_IP6_HEADER *Head, IN NET_BUF *Packet)
Definition: Ip6Mld.c:835
EFI_STATUS Ip6InitMld(IN IP6_SERVICE *IpSb)
Definition: Ip6Mld.c:334
EFI_STATUS Ip6Groups(IN IP6_PROTOCOL *IpInstance, IN BOOLEAN JoinFlag, IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL)
Definition: Ip6Mld.c:613
IP6_MLD_GROUP * Ip6FindMldEntry(IN IP6_SERVICE *IpSb, IN EFI_IPv6_ADDRESS *MulticastAddr)
Definition: Ip6Mld.c:56
VOID Ip6MldTimerTicking(IN IP6_SERVICE *IpSb)
Definition: Ip6Mld.c:894
EFI_STATUS Ip6ProcessMldQuery(IN IP6_SERVICE *IpSb, IN EFI_IP6_HEADER *Head, IN NET_BUF *Packet)
Definition: Ip6Mld.c:746
EFI_STATUS Ip6JoinGroup(IN IP6_SERVICE *IpSb, IN IP6_INTERFACE *Interface, IN EFI_IPv6_ADDRESS *Address)
Definition: Ip6Mld.c:483
#define IN
Definition: Base.h:279
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29