Home | History | Annotate | Download | only in Ip6Dxe

Lines Matching defs:Interface

2   Implement IP6 pesudo interface.

58 Set the interface's address. This will trigger the DAD process for the
62 @param[in] Interface The interface to set the address.
63 @param[in] Ip6Addr The interface's to be assigned IPv6 address.
74 @retval EFI_SUCCESS The interface is scheduled to be configured with
76 @retval EFI_OUT_OF_RESOURCES Failed to set the interface's address due to
82 IN IP6_INTERFACE *Interface,
99 NET_CHECK_SIGNATURE (Interface, IP6_INTERFACE_SIGNATURE);
101 IpSb = Interface->Service;
185 DelayNode->Interface = Interface;
190 InsertTailList (&Interface->DelayJoinList, &DelayNode->Link);
211 IP6_INTERFACE *Interface;
216 Interface = AllocatePool (sizeof (IP6_INTERFACE));
217 if (Interface == NULL) {
221 Interface->Signature = IP6_INTERFACE_SIGNATURE;
222 Interface->RefCnt = 1;
224 InitializeListHead (&Interface->AddressList);
225 Interface->AddressCount = 0;
226 Interface->Configured = FALSE;
228 Interface->Service = IpSb;
229 Interface->Controller = IpSb->Controller;
230 Interface->Image = IpSb->Image;
232 InitializeListHead (&Interface->ArpQues);
233 InitializeListHead (&Interface->SentFrames);
235 Interface->DupAddrDetect = IpSb->Ip6ConfigInstance.DadXmits.DupAddrDetectTransmits;
236 InitializeListHead (&Interface->DupAddrDetectList);
238 InitializeListHead (&Interface->DelayJoinList);
240 InitializeListHead (&Interface->IpInstances);
241 Interface->PromiscRecv = FALSE;
244 return Interface;
259 Interface,
275 return Interface;
279 FreePool (Interface);
284 Free the interface used by IpInstance. All the IP instance with
285 the same Ip/prefix pair share the same interface. It is reference
288 IpInstance from the interface's instance list.
290 @param[in] Interface The interface used by the IpInstance.
291 @param[in] IpInstance The IP instance that free the interface. NULL if
292 the IP driver is releasing the default interface.
297 IN IP6_INTERFACE *Interface,
304 NET_CHECK_SIGNATURE (Interface, IP6_INTERFACE_SIGNATURE);
305 ASSERT (Interface->RefCnt > 0);
310 Ip6CancelFrames (Interface, EFI_ABORTED, Ip6CancelInstanceFrame, IpInstance);
312 if (--Interface->RefCnt > 0) {
317 // Destroy the interface if this is the last IP instance.
319 // from this interface, cancel the receive request if exists.
321 Ip6CancelFrames (Interface, EFI_ABORTED, Ip6CancelInstanceFrame, NULL);
323 ASSERT (IsListEmpty (&Interface->IpInstances));
324 ASSERT (IsListEmpty (&Interface->ArpQues));
325 ASSERT (IsListEmpty (&Interface->SentFrames));
327 while (!IsListEmpty (&Interface->DupAddrDetectList)) {
328 Duplicate = NET_LIST_HEAD (&Interface->DupAddrDetectList, IP6_DAD_ENTRY, Link);
329 NetListRemoveHead (&Interface->DupAddrDetectList);
333 while (!IsListEmpty (&Interface->DelayJoinList)) {
334 Delay = NET_LIST_HEAD (&Interface->DelayJoinList, IP6_DELAY_JOIN_LIST, Link);
335 NetListRemoveHead (&Interface->DelayJoinList);
339 Ip6RemoveAddr (Interface->Service, &Interface->AddressList, &Interface->AddressCount, NULL, 0);
341 RemoveEntryList (&Interface->Link);
342 FreePool (Interface);
348 @param[in] Interface The interface to send out from.
361 IN IP6_INTERFACE *Interface,
388 IP6_COPY_LINK_ADDRESS (&Token->SrcMac, &Interface->Service->SnpMode.CurrentAddress);
490 // First clear the interface's receive request in case the
550 Request to receive the packet from the interface.
634 Send a frame from the interface. If the next hop is a multicast address,
640 @param[in] Interface The interface to send the frame from
655 IN IP6_INTERFACE *Interface,
670 IpSb = Interface->Service;
674 // Only when link local address is performing DAD, the interface could be used in unconfigured.
677 ASSERT (Interface->Configured);
680 Token = Ip6CreateLinkTxToken (Interface, IpInstance, Packet, CallBack, Context);
710 if (NeighborCache->Interface == NULL) {
711 NeighborCache->Interface = Interface;
736 NET_LIST_FOR_EACH (Entry, &Interface->ArpQues) {
749 InsertTailList (&Interface->ArpQues, &NeighborCache->ArpList);
760 InsertTailList (&Interface->SentFrames, &Token->Link);