Home | History | Annotate | Download | only in Udp6Dxe

Lines Matching refs:Instance

37   This function finds the udp instance by the specified <Address, Port> pair.

122 This function check if the received udp datagram matches with the Instance.
124 @param[in] Instance Pointer to the udp instance context data.
128 @retval TRUE The udp datagram matches the receiving requirements of the Instance.
129 @retval FALSE The udp datagram doe not match the receiving requirements of the Instance.
134 IN UDP6_INSTANCE_DATA *Instance,
155 @param[in] Instance Pointer to the instance context data.
166 IN UDP6_INSTANCE_DATA *Instance,
220 instance.
240 @param[in] IpIo Pointer to the IP_IO instance.
417 UDP6_INSTANCE_DATA *Instance;
429 Instance = NET_LIST_USER_STRUCT (Entry, UDP6_INSTANCE_DATA, Link);
430 NET_CHECK_SIGNATURE (Instance, UDP6_INSTANCE_DATA_SIGNATURE);
432 if (!Instance->Configured || (Instance->ConfigData.ReceiveTimeout == 0)) {
434 // Skip this instance if it's not configured or no receive timeout.
439 NET_LIST_FOR_EACH_SAFE (WrapEntry, NextEntry, &Instance->RcvdDgramQue) {
441 // Iterate all the rxdatas belonging to this udp instance.
459 This function intializes the new created udp instance.
462 @param[in, out] Instance Pointer to the un-initialized UDP6_INSTANCE_DATA.
468 IN OUT UDP6_INSTANCE_DATA *Instance
474 Instance->Signature = UDP6_INSTANCE_DATA_SIGNATURE;
479 InitializeListHead (&Instance->Link);
480 InitializeListHead (&Instance->RcvdDgramQue);
481 InitializeListHead (&Instance->DeliveredDgramQue);
486 NetMapInit (&Instance->TxTokens);
487 NetMapInit (&Instance->RxTokens);
488 NetMapInit (&Instance->McastIps);
493 Instance->Udp6Service = Udp6Service;
494 CopyMem (&Instance->Udp6Proto, &mUdp6Protocol, sizeof (EFI_UDP6_PROTOCOL));
495 Instance->IcmpError = EFI_SUCCESS;
496 Instance->Configured = FALSE;
497 Instance->IsNoMapping = FALSE;
498 Instance->InDestroy = FALSE;
503 This function cleans the udp instance.
505 @param[in, out] Instance Pointer to the UDP6_INSTANCE_DATA to clean.
510 IN OUT UDP6_INSTANCE_DATA *Instance
513 NetMapClean (&Instance->McastIps);
514 NetMapClean (&Instance->RxTokens);
515 NetMapClean (&Instance->TxTokens);
520 This function finds the udp instance by the specified <Address, Port> pair.
539 UDP6_INSTANCE_DATA *Instance;
546 Instance = NET_LIST_USER_STRUCT (Entry, UDP6_INSTANCE_DATA, Link);
547 ConfigData = &Instance->ConfigData;
549 if (!Instance->Configured || ConfigData->AcceptAnyPort) {
551 // If the instance is not configured, or the configdata of the instance indicates
552 // this instance accepts any port, skip it.
575 This function tries to bind the udp instance according to the configured port
580 @param[in] ConfigData Pointer to the ConfigData of the instance to be
585 already used by other instance.
610 // Do not allow duplicate ports and the port is already used by other instance.
616 // Select a random port for this instance.
620 // Just pick up the random port if the instance allows duplicate port.
658 @param[in] OldConfigData Pointer to the current ConfigData the udp instance
662 @retval TRUE The instance is reconfigurable according to the NewConfigData.
745 // Use the -1 magic number to disable the receiving process of the ip instance.
754 @param[in] Instance Pointer to the udp instance context data.
782 IN UDP6_INSTANCE_DATA *Instance,
826 ConfigData = &Instance->ConfigData;
994 UDP6_INSTANCE_DATA *Instance;
997 Instance = (UDP6_INSTANCE_DATA *) Context;
1000 if (Udp6RemoveToken (&Instance->TxTokens, Token) == EFI_SUCCESS) {
1178 @param[in] Instance Pointer to the Udp6 Instance.
1183 IN UDP6_INSTANCE_DATA *Instance
1188 while (!IsListEmpty (&Instance->RcvdDgramQue)) {
1192 Wrap = NET_LIST_HEAD (&Instance->RcvdDgramQue, UDP6_RXDATA_WRAP, Link);
1204 Cancel Udp6 tokens from the Udp6 instance.
1206 @param[in] Instance Pointer to the udp instance context data.
1208 tokens in this instance will be cancelled.
1217 IN UDP6_INSTANCE_DATA *Instance,
1226 Status = NetMapIterate (&Instance->TxTokens, Udp6CancelTokens, Token);
1240 Status = NetMapIterate (&Instance->RxTokens, Udp6CancelTokens, Token);
1251 ((0 == NetMapGetCount (&Instance->TxTokens)) &&
1252 (0 == NetMapGetCount (&Instance->RxTokens)))
1260 This function checks if the received udp datagram matches with the Instance.
1262 @param[in] Instance Pointer to the udp instance context data.
1266 @retval TRUE The udp datagram matches the receiving requirements of the Instance.
1267 @retval FALSE The udp datagram does not matche the receiving requirements of the Instance.
1272 IN UDP6_INSTANCE_DATA *Instance,
1279 ConfigData = &Instance->ConfigData;
1283 // Always matches if this instance is in the promiscuous state.
1301 // This datagram doesn't come from the instance's specified sender.
1310 // The instance is configured to receive datagrams destinated to any station IP or
1319 (NULL != Udp6MapMultiCastAddr (&Instance->McastIps, &Destination))
1322 // It's a multicast packet and the multicast address is accepted by this instance.
1371 @param[in] Instance Pointer to the instance context data.
1382 IN UDP6_INSTANCE_DATA *Instance,
1418 Wrap->TimeoutTick = Instance->ConfigData.ReceiveTimeout;
1444 UDP6_INSTANCE_DATA *Instance;
1454 Instance = NET_LIST_USER_STRUCT (Entry, UDP6_INSTANCE_DATA, Link);
1456 if (!Instance->Configured) {
1460 if (Udp6MatchDgram (Instance, &RxData->UdpSession)) {
1464 Wrap = Udp6WrapRxData (Instance, Packet, RxData);
1471 InsertTailList (&Instance->RcvdDgramQue, &Wrap->Link);
1482 This function delivers the received datagrams to the specified instance.
1484 @param[in] Instance Pointer to the instance context data.
1489 IN UDP6_INSTANCE_DATA *Instance
1498 if (!IsListEmpty (&Instance->RcvdDgramQue) &&
1499 !NetMapIsEmpty (&Instance->RxTokens)
1502 Wrap = NET_LIST_HEAD (&Instance->RcvdDgramQue, UDP6_RXDATA_WRAP, Link);
1518 NetListRemoveHead (&Instance->RcvdDgramQue);
1520 Token = (EFI_UDP6_COMPLETION_TOKEN *) NetMapRemoveHead (&Instance->RxTokens, NULL);
1538 InsertTailList (&Instance->DeliveredDgramQue, &Wrap->Link);
1558 UDP6_INSTANCE_DATA *Instance;
1564 Instance = NET_LIST_USER_STRUCT (Entry, UDP6_INSTANCE_DATA, Link);
1566 if (!Instance->Configured) {
1571 // Deliver the datagrams of this instance.
1573 Udp6InstanceDeliverDgram (Instance);
1669 @param[in] IpIo Pointer to the IP_IO instance.
1815 instance.
1835 UDP6_INSTANCE_DATA *Instance;
1850 Instance = NET_LIST_USER_STRUCT (Entry, UDP6_INSTANCE_DATA, Link);
1852 if (!Instance->Configured) {
1856 if (Udp6MatchDgram (Instance, &Udp6Session)) {
1860 Instance->IcmpError = IpIoGetIcmpErrStatus (IcmpError, IP_VERSION_6, NULL, NULL);
1863 Instance->IcmpError = EFI_ICMP_ERROR;
1867 // Notify the instance with the received Icmp Error.
1869 Udp6ReportIcmpError (Instance);
1882 @param[in] Instance Pointer to the udp instance context data.
1887 IN UDP6_INSTANCE_DATA *Instance
1892 if (NetMapIsEmpty (&Instance->RxTokens)) {
1899 if (EFI_ERROR (Instance->IcmpError)) {
1903 Token = (EFI_UDP6_COMPLETION_TOKEN *) NetMapRemoveHead (&Instance->RxTokens, NULL);
1909 Token->Status = Instance->IcmpError;
1915 Instance->IcmpError = EFI_SUCCESS;