Home | History | Annotate | Download | only in Ip4Dxe

Lines Matching defs:IpInstance

376   IP4_PROTOCOL              *IpInstance;

388 IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);
389 IpSb = IpInstance->Service;
396 Ip4ModeData->IsStarted = (BOOLEAN)(IpInstance->State == IP4_STATE_CONFIGED);
397 CopyMem (&Ip4ModeData->ConfigData, &IpInstance->ConfigData, sizeof (Ip4ModeData->ConfigData));
400 Ip4ModeData->GroupCount = IpInstance->GroupCount;
401 Ip4ModeData->GroupTable = (EFI_IPv4_ADDRESS *) IpInstance->Groups;
420 Ip = HTONL (IpInstance->Interface->Ip);
423 Ip = HTONL (IpInstance->Interface->SubnetMask);
426 Ip4ModeData->IsConfigured = IpInstance->Interface->Configured;
431 Status = Ip4BuildEfiRouteTable (IpInstance);
438 Ip4ModeData->RouteTable = IpInstance->EfiRouteTable;
439 Ip4ModeData->RouteCount = IpInstance->EfiRouteCount;
480 IP4_PROTOCOL *IpInstance;
500 IpInstance = NET_LIST_USER_STRUCT (ProtoEntry, IP4_PROTOCOL, AddrLink);
502 if (IpInstance->ConfigData.AcceptPromiscuous) {
537 @param IpInstance The IP4 child instance.
543 IN OUT IP4_PROTOCOL *IpInstance
546 ASSERT ((IpSb != NULL) && (IpInstance != NULL));
548 ZeroMem (IpInstance, sizeof (IP4_PROTOCOL));
550 IpInstance->Signature = IP4_PROTOCOL_SIGNATURE;
551 CopyMem (&IpInstance->Ip4Proto, &mEfiIp4ProtocolTemplete, sizeof (IpInstance->Ip4Proto));
552 IpInstance->State = IP4_STATE_UNCONFIGED;
553 IpInstance->Service = IpSb;
555 InitializeListHead (&IpInstance->Link);
556 NetMapInit (&IpInstance->RxTokens);
557 NetMapInit (&IpInstance->TxTokens);
558 InitializeListHead (&IpInstance->Received);
559 InitializeListHead (&IpInstance->Delivered);
560 InitializeListHead (&IpInstance->AddrLink);
562 EfiInitializeLock (&IpInstance->RecycleLock, TPL_NOTIFY);
572 @param[in, out] IpInstance The IP4 child to configure.
588 IN OUT IP4_PROTOCOL *IpInstance,
599 IpSb = IpInstance->Service;
605 if (IpInstance->State == IP4_STATE_CONFIGED) {
609 Status = Ip4Cancel (IpInstance, NULL);
615 CopyMem (&IpInstance->ConfigData, Config, sizeof (IpInstance->ConfigData));
625 IpInstance->RouteTable = Ip4CreateRouteTable ();
627 if (IpInstance->RouteTable == NULL) {
662 Ip4FreeInterface (IpIf, IpInstance);
672 Ip4AddRoute (IpInstance->RouteTable, Ip, Netmask, IP4_ALLZERO_ADDRESS);
697 IpInstance->RouteTable->Next = IpSb->DefaultRouteTable;
700 IpInstance->Interface = IpIf;
708 IpInstance->Handle,
715 InsertTailList (&IpIf->IpInstances, &IpInstance->AddrLink);
717 CopyMem (&IpInstance->ConfigData, Config, sizeof (IpInstance->ConfigData));
718 IpInstance->State = IP4_STATE_CONFIGED;
725 if (Config->UseDefaultAddress && IP4_NO_MAPPING (IpInstance)) {
732 Ip4FreeRouteTable (IpInstance->RouteTable);
733 IpInstance->RouteTable = NULL;
741 @param[in] IpInstance The IP4 child to clean up.
749 IN IP4_PROTOCOL *IpInstance
752 if (EFI_ERROR (Ip4Cancel (IpInstance, NULL))) {
756 if (EFI_ERROR (Ip4Groups (IpInstance, FALSE, NULL))) {
765 if (!IsListEmpty (&IpInstance->Delivered)) {
769 if (IpInstance->Interface != NULL) {
770 RemoveEntryList (&IpInstance->AddrLink);
771 if (IpInstance->Interface->Arp != NULL) {
773 IpInstance->Interface->ArpHandle,
776 IpInstance->Handle
779 Ip4FreeInterface (IpInstance->Interface, IpInstance);
780 IpInstance->Interface = NULL;
783 if (IpInstance->RouteTable != NULL) {
784 if (IpInstance->RouteTable->Next != NULL) {
785 Ip4FreeRouteTable (IpInstance->RouteTable->Next);
788 Ip4FreeRouteTable (IpInstance->RouteTable);
789 IpInstance->RouteTable = NULL;
792 if (IpInstance->EfiRouteTable != NULL) {
793 FreePool (IpInstance->EfiRouteTable);
794 IpInstance->EfiRouteTable = NULL;
795 IpInstance->EfiRouteCount = 0;
798 if (IpInstance->Groups != NULL) {
799 FreePool (IpInstance->Groups);
800 IpInstance->Groups = NULL;
801 IpInstance->GroupCount = 0;
804 NetMapClean (&IpInstance->TxTokens);
806 NetMapClean (&IpInstance->RxTokens);
922 IP4_PROTOCOL *IpInstance;
937 IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);
968 if (IpInstance->State == IP4_STATE_CONFIGED) {
969 Current = &IpInstance->ConfigData;
983 if (Current->UseDefaultAddress && IP4_NO_MAPPING (IpInstance)) {
994 Status = Ip4ConfigProtocol (IpInstance, IpConfigData);
996 Status = Ip4CleanProtocol (IpInstance);
1004 if (IpInstance->State == IP4_STATE_CONFIGED) {
1005 IpInstance->State = IP4_STATE_UNCONFIGED;
1013 Ip4ServiceConfigMnp (IpInstance->Service, FALSE);
1026 @param[in] IpInstance The IP4 child to change the setting.
1039 IN IP4_PROTOCOL *IpInstance,
1050 // IpInstance->Groups is in network byte order. IGMP operates in
1060 for (Index = 0; Index < IpInstance->GroupCount; Index++) {
1061 if (IpInstance->Groups[Index] == Group) {
1066 Members = Ip4CombineGroups (IpInstance->Groups, IpInstance->GroupCount, Group);
1072 if (EFI_ERROR (Ip4JoinGroup (IpInstance, NTOHL (Group)))) {
1077 if (IpInstance->Groups != NULL) {
1078 FreePool (IpInstance->Groups);
1081 IpInstance->Groups = Members;
1082 IpInstance->GroupCount++;
1092 for (Index = IpInstance->GroupCount; Index > 0 ; Index--) {
1093 Group = IpInstance->Groups[Index - 1];
1096 if (EFI_ERROR (Ip4LeaveGroup (IpInstance, NTOHL (Group)))) {
1100 Ip4RemoveGroupAddr (IpInstance->Groups, IpInstance->GroupCount, Group);
1101 IpInstance->GroupCount--;
1103 if (IpInstance->GroupCount == 0) {
1106 FreePool (IpInstance->Groups);
1107 IpInstance->Groups = NULL;
1158 IP4_PROTOCOL *IpInstance;
1175 IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);
1178 if (IpInstance->State != IP4_STATE_CONFIGED) {
1183 if (IpInstance->ConfigData.UseDefaultAddress && IP4_NO_MAPPING (IpInstance)) {
1188 Status = Ip4Groups (IpInstance, JoinFlag, GroupAddress);
1256 IP4_PROTOCOL *IpInstance;
1272 IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);
1275 if (IpInstance->State != IP4_STATE_CONFIGED) {
1280 if (IpInstance->ConfigData.UseDefaultAddress && IP4_NO_MAPPING (IpInstance)) {
1293 IpIf = IpInstance->Interface;
1312 Status = Ip4DelRoute (IpInstance->RouteTable, Dest, Netmask, Nexthop);
1314 Status = Ip4AddRoute (IpInstance->RouteTable, Dest, Netmask, Nexthop);
1530 Item = NetMapFindKey (&Wrap->IpInstance->TxTokens, Wrap->Token);
1533 NetMapRemoveItem (&Wrap->IpInstance->TxTokens, Item, NULL);
1627 IP4_PROTOCOL *IpInstance;
1648 IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);
1650 if (IpInstance->State != IP4_STATE_CONFIGED) {
1656 IpSb = IpInstance->Service;
1657 IpIf = IpInstance->Interface;
1658 Config = &IpInstance->ConfigData;
1660 if (Config->UseDefaultAddress && IP4_NO_MAPPING (IpInstance)) {
1677 if (EFI_ERROR (NetMapIterate (&IpInstance->TxTokens, Ip4TokenExist, Token))) {
1785 Wrap->IpInstance = IpInstance;
1805 if (EFI_ERROR (NetMapInsertTail (&IpInstance->TxTokens, Token, Wrap))) {
1830 IpInstance,
1905 IP4_PROTOCOL *IpInstance;
1916 IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);
1920 if (IpInstance->State != IP4_STATE_CONFIGED) {
1928 Status = NetMapIterate (&IpInstance->RxTokens, Ip4TokenExist, Token);
1938 Status = NetMapInsertTail (&IpInstance->RxTokens, Token, NULL);
1944 Status = Ip4InstanceDeliverPacket (IpInstance);
2003 Ip4CancelPacket (Wrap->IpInstance->Interface, Wrap->Packet, EFI_ABORTED);
2066 @param[in] IpInstance The IP4 child.
2078 IN IP4_PROTOCOL *IpInstance,
2089 Status = NetMapIterate (&IpInstance->TxTokens, Ip4CancelTxTokens, Token);
2103 Status = NetMapIterate (&IpInstance->RxTokens, Ip4CancelRxTokens, Token);
2129 if (!NetMapIsEmpty (&IpInstance->TxTokens) ||
2130 !NetMapIsEmpty (&IpInstance->RxTokens)) {
2175 IP4_PROTOCOL *IpInstance;
2183 IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);
2187 if (IpInstance->State != IP4_STATE_CONFIGED) {
2192 if (IpInstance->ConfigData.UseDefaultAddress && IP4_NO_MAPPING (IpInstance)) {
2197 Status = Ip4Cancel (IpInstance, Token);
2238 IP4_PROTOCOL *IpInstance;
2245 IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);
2247 if (IpInstance->State == IP4_STATE_UNCONFIGED) {
2251 Mnp = IpInstance->Service->Mnp;
2288 Ip4CancelPacket (Wrap->IpInstance->Interface, Wrap->Packet, EFI_ABORTED);