Home | History | Annotate | Download | only in Ip6Dxe

Lines Matching refs:IpSb

137   @param[in]  IpSb               The IP6 service binding instance to clean up.

145 IN IP6_SERVICE *IpSb
152 Ip6ConfigCleanInstance (&IpSb->Ip6ConfigInstance);
154 if (!IpSb->LinkLocalDadFail) {
160 Status = Ip6LeaveGroup (IpSb, &AllNodes);
166 if (IpSb->DefaultInterface != NULL) {
167 Ip6CleanInterface (IpSb->DefaultInterface, NULL);
168 IpSb->DefaultInterface = NULL;
171 Ip6CleanDefaultRouterList (IpSb);
173 Ip6CleanPrefixListTable (IpSb, &IpSb->OnlinkPrefix);
174 Ip6CleanPrefixListTable (IpSb, &IpSb->AutonomousPrefix);
176 if (IpSb->RouteTable != NULL) {
177 Ip6CleanRouteTable (IpSb->RouteTable);
178 IpSb->RouteTable = NULL;
181 if (IpSb->InterfaceId != NULL) {
182 FreePool (IpSb->InterfaceId);
185 IpSb->InterfaceId = NULL;
187 Ip6CleanAssembleTable (&IpSb->Assemble);
189 if (IpSb->MnpChildHandle != NULL) {
190 if (IpSb->Mnp != NULL) {
191 IpSb->Mnp->Cancel (IpSb->Mnp, NULL);
192 IpSb->Mnp->Configure (IpSb->Mnp, NULL);
194 IpSb->MnpChildHandle,
196 IpSb->Image,
197 IpSb->Controller
200 IpSb->Mnp = NULL;
204 IpSb->Controller,
205 IpSb->Image,
207 IpSb->MnpChildHandle
210 IpSb->MnpChildHandle = NULL;
213 if (IpSb->RecvRequest.MnpToken.Event != NULL) {
214 gBS->CloseEvent (IpSb->RecvRequest.MnpToken.Event);
217 if (IpSb->Timer != NULL) {
218 gBS->SetTimer (IpSb->Timer, TimerCancel, 0);
219 gBS->CloseEvent (IpSb->Timer);
221 IpSb->Timer = NULL;
224 if (IpSb->FasterTimer != NULL) {
225 gBS->SetTimer (IpSb->FasterTimer, TimerCancel, 0);
226 gBS->CloseEvent (IpSb->FasterTimer);
228 IpSb->FasterTimer = NULL;
233 while (!IsListEmpty (&IpSb->NeighborTable)) {
234 NeighborCache = NET_LIST_HEAD (&IpSb->NeighborTable, IP6_NEIGHBOR_ENTRY, Link);
235 Ip6FreeNeighborEntry (IpSb, NeighborCache, FALSE, TRUE, EFI_SUCCESS, NULL, NULL);
261 IP6_SERVICE *IpSb;
276 IpSb = AllocateZeroPool (sizeof (IP6_SERVICE));
278 if (IpSb == NULL) {
282 IpSb->Signature = IP6_SERVICE_SIGNATURE;
283 IpSb->ServiceBinding.CreateChild = Ip6ServiceBindingCreateChild;
284 IpSb->ServiceBinding.DestroyChild = Ip6ServiceBindingDestroyChild;
285 IpSb->State = IP6_SERVICE_UNSTARTED;
287 IpSb->NumChildren = 0;
288 InitializeListHead (&IpSb->Children);
290 InitializeListHead (&IpSb->Interfaces);
291 IpSb->DefaultInterface = NULL;
292 IpSb->RouteTable = NULL;
294 IpSb->RecvRequest.Signature = IP6_LINK_RX_SIGNATURE;
295 IpSb->RecvRequest.CallBack = NULL;
296 IpSb->RecvRequest.Context = NULL;
297 MnpToken = &IpSb->RecvRequest.MnpToken;
302 Ip6CreateAssembleTable (&IpSb->Assemble);
304 IpSb->MldCtrl.Mldv1QuerySeen = 0;
305 InitializeListHead (&IpSb->MldCtrl.Groups);
307 ZeroMem (&IpSb->LinkLocalAddr, sizeof (EFI_IPv6_ADDRESS));
308 IpSb->LinkLocalOk = FALSE;
309 IpSb->LinkLocalDadFail = FALSE;
310 IpSb->Dhcp6NeedStart = FALSE;
311 IpSb->Dhcp6NeedInfoRequest = FALSE;
313 IpSb->CurHopLimit = IP6_HOP_LIMIT;
314 IpSb->LinkMTU = IP6_MIN_LINK_MTU;
315 IpSb->BaseReachableTime = IP6_REACHABLE_TIME;
316 Ip6UpdateReachableTime (IpSb);
320 IpSb->RetransTimer = IP6_RETRANS_TIMER;
322 IpSb->RoundRobin = 0;
324 InitializeListHead (&IpSb->NeighborTable);
325 InitializeListHead (&IpSb->DefaultRouterList);
326 InitializeListHead (&IpSb->OnlinkPrefix);
327 InitializeListHead (&IpSb->AutonomousPrefix);
329 IpSb->InterfaceIdLen = IP6_IF_ID_LEN;
330 IpSb->InterfaceId = NULL;
332 IpSb->RouterAdvertiseReceived = FALSE;
333 IpSb->SolicitTimer = IP6_MAX_RTR_SOLICITATIONS;
334 IpSb->Ticks = 0;
336 IpSb->Image = ImageHandle;
337 IpSb->Controller = Controller;
339 IpSb->MnpChildHandle = NULL;
340 IpSb->Mnp = NULL;
342 Config = &IpSb->MnpConfigData;
354 ZeroMem (&IpSb->SnpMode, sizeof (EFI_SIMPLE_NETWORK_MODE));
356 IpSb->Timer = NULL;
357 IpSb->FasterTimer = NULL;
359 ZeroMem (&IpSb->Ip6ConfigInstance, sizeof (IP6_CONFIG_INSTANCE));
361 IpSb->MacString = NULL;
368 IpSb->RouteTable = Ip6CreateRouteTable ();
369 if (IpSb->RouteTable == NULL) {
378 IpSb,
379 &IpSb->Timer
389 IpSb,
390 &IpSb->FasterTimer
400 &IpSb->MnpChildHandle
407 IpSb->MnpChildHandle,
409 (VOID **) (&IpSb->Mnp),
418 Status = Ip6ServiceConfigMnp (IpSb, TRUE);
423 Status = IpSb->Mnp->GetModeData (IpSb->Mnp, NULL, &IpSb->SnpMode);
428 IpSb->MaxPacketSize = IP6_MIN_LINK_MTU - sizeof (EFI_IP6_HEADER);
429 if (NetLibGetVlanId (IpSb->Controller) != 0) {
433 IpSb->MaxPacketSize -= NET_VLAN_TAG_LEN;
435 IpSb->OldMaxPacketSize = IpSb->MaxPacketSize;
442 if (IpSb->SnpMode.IfType != NET_IFTYPE_ETHERNET) {
447 Status = Ip6InitMld (IpSb);
452 Status = NetLibGetMacString (IpSb->Controller, IpSb->Image, &IpSb->MacString);
457 Status = Ip6ConfigInitInstance (&IpSb->Ip6ConfigInstance);
462 IpSb->DefaultInterface = Ip6CreateInterface (IpSb, TRUE);
463 if (IpSb->DefaultInterface == NULL) {
472 &IpSb->RecvRequest,
482 DataItem = &IpSb->Ip6ConfigInstance.DataItem[Ip6ConfigDataTypeManualAddress];
485 &IpSb->Ip6ConfigInstance,
494 DataItem = &IpSb->Ip6ConfigInstance.DataItem[Ip6ConfigDataTypeGateway];
497 &IpSb->Ip6ConfigInstance,
503 InsertHeadList (&IpSb->Interfaces, &IpSb->DefaultInterface->Link);
505 *Service = IpSb;
509 Ip6CleanService (IpSb);
510 FreePool (IpSb);
536 IP6_SERVICE *IpSb;
555 IpSb);
561 ASSERT (IpSb != NULL);
569 &IpSb->ServiceBinding,
571 &IpSb->Ip6ConfigInstance.Ip6Config,
579 Status = Ip6ReceiveFrame (Ip6AcceptFrame, IpSb);
588 IpSb->FasterTimer,
600 IpSb->Timer,
617 Ip6CleanService (IpSb);
618 FreePool (IpSb);
684 IP6_SERVICE *IpSb;
715 IpSb = IP6_SERVICE_FROM_PROTOCOL (ServiceBinding);
718 Status = Ip6ConfigDestroyDhcp6 (&IpSb->Ip6ConfigInstance);
719 gBS->CloseEvent (IpSb->Ip6ConfigInstance.Dhcp6Event);
720 IpSb->Ip6ConfigInstance.Dhcp6Event = NULL;
725 List = &IpSb->Children;
735 } else if (IsListEmpty (&IpSb->Children)) {
736 State = IpSb->State;
737 IpSb->State = IP6_SERVICE_DESTROY;
739 Status = Ip6CleanService (IpSb);
741 IpSb->State = State;
750 &IpSb->Ip6ConfigInstance.Ip6Config,
754 FreePool (IpSb);
785 IP6_SERVICE *IpSb;
795 IpSb = IP6_SERVICE_FROM_PROTOCOL (This);
797 if (IpSb->LinkLocalDadFail) {
807 Ip6InitProtocol (IpSb, IpInstance);
828 IpSb->MnpChildHandle,
851 InsertTailList (&IpSb->Children, &IpInstance->Link);
852 IpSb->NumChildren++;
892 IP6_SERVICE *IpSb;
904 IpSb = IP6_SERVICE_FROM_PROTOCOL (This);
921 if (IpInstance->Service != IpSb) {
944 IpSb->MnpChildHandle,
988 ASSERT (IpSb->NumChildren > 0);
989 IpSb->NumChildren--;