Home | History | Annotate | Download | only in Tcp4Dxe

Lines Matching refs:Tcb

24   @param  Tcb                   Pointer to the TCP_CB of this TCP instance.

39 IN TCP_CB *Tcb,
45 Ip4 = Tcb->IpInfo->Ip.Ip4;
63 @param Tcb Pointer to the TCP_CB of this TCP instance.
74 IN TCP_CB *Tcb,
84 Sock = Tcb->Sk;
91 *(Mode->Tcp4State) = (EFI_TCP4_CONNECTION_STATE) Tcb->State;
100 ConfigData->TypeOfService = Tcb->Tos;
101 ConfigData->TimeToLive = Tcb->Ttl;
103 AccessPoint->UseDefaultAddress = Tcb->UseDefaultAddr;
105 IP4_COPY_ADDRESS (&AccessPoint->StationAddress, &Tcb->LocalEnd.Ip);
106 IP4_COPY_ADDRESS (&AccessPoint->SubnetMask, &Tcb->SubnetMask);
107 AccessPoint->StationPort = NTOHS (Tcb->LocalEnd.Port);
109 IP4_COPY_ADDRESS (&AccessPoint->RemoteAddress, &Tcb->RemoteEnd.Ip);
110 AccessPoint->RemotePort = NTOHS (Tcb->RemoteEnd.Port);
111 AccessPoint->ActiveFlag = (BOOLEAN) (Tcb->State != TCP_LISTEN);
114 Option->ReceiveBufferSize = GET_RCV_BUFFSIZE (Tcb->Sk);
115 Option->SendBufferSize = GET_SND_BUFFSIZE (Tcb->Sk);
116 Option->MaxSynBackLog = GET_BACKLOG (Tcb->Sk);
118 Option->ConnectionTimeout = Tcb->ConnectTimeout / TCP_TICK_HZ;
119 Option->DataRetries = Tcb->MaxRexmit;
120 Option->FinTimeout = Tcb->FinWait2Timeout / TCP_TICK_HZ;
121 Option->TimeWaitTimeout = Tcb->TimeWaitTimeout / TCP_TICK_HZ;
122 Option->KeepAliveProbes = Tcb->MaxKeepAlive;
123 Option->KeepAliveTime = Tcb->KeepAliveIdle / TCP_TICK_HZ;
124 Option->KeepAliveInterval = Tcb->KeepAlivePeriod / TCP_TICK_HZ;
126 Option->EnableNagle = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_NAGLE));
127 Option->EnableTimeStamp = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_TS));
128 Option->EnableWindowScaling = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_WS));
135 Ip = Tcb->IpInfo->Ip.Ip4;
209 Flush the Tcb add its associated protocols.
211 @param Tcb Pointer to the TCP_CB to be flushed.
216 IN TCP_CB *Tcb
221 IpIoConfigIp (Tcb->IpInfo, NULL);
223 Sock = Tcb->Sk;
226 RemoveEntryList (&Tcb->List);
241 NetbufFreeList (&Tcb->SndQue);
242 NetbufFreeList (&Tcb->RcvQue);
243 Tcb->State = TCP_CLOSED;
260 TCP_CB *Tcb;
266 Tcb = AllocateZeroPool (sizeof (TCP_CB));
268 if (Tcb == NULL) {
270 DEBUG ((EFI_D_ERROR, "Tcp4ConfigurePcb: failed to allocate a TCB\n"));
279 // Create an IpInfo for this Tcb.
281 Tcb->IpInfo = IpIoAddIp (IpIo);
282 if (Tcb->IpInfo == NULL) {
284 FreePool (Tcb);
292 Tcb->IpInfo->ChildHandle,
300 IpIoRemoveIp (IpIo, Tcb->IpInfo);
304 InitializeListHead (&Tcb->List);
305 InitializeListHead (&Tcb->SndQue);
306 InitializeListHead (&Tcb->RcvQue);
308 Tcb->State = TCP_CLOSED;
309 Tcb->Sk = Sk;
310 ProtoData->TcpPcb = Tcb;
327 TCP_CB *Tcb;
330 Tcb = ProtoData->TcpPcb;
332 ASSERT (Tcb != NULL);
334 Tcp4FlushPcb (Tcb);
340 Tcb->IpInfo->ChildHandle,
346 IpIoRemoveIp (ProtoData->TcpService->IpIo, Tcb->IpInfo);
348 FreePool (Tcb);
376 TCP_CB *Tcb;
381 Tcb = TcpProto->TcpPcb;
383 ASSERT (Tcb != NULL);
396 // Configure the IP instance this Tcb consumes.
398 Status = IpIoConfigIp (Tcb->IpInfo, &IpCfgData);
424 // Initalize the operating information in this Tcb
426 ASSERT (Tcb->State == TCP_CLOSED &&
427 IsListEmpty (&Tcb->SndQue) &&
428 IsListEmpty (&Tcb->RcvQue));
430 TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_NO_KEEPALIVE);
431 Tcb->State = TCP_CLOSED;
433 Tcb->SndMss = 536;
434 Tcb->RcvMss = TcpGetRcvMss (Sk);
436 Tcb->SRtt = 0;
437 Tcb->Rto = 3 * TCP_TICK_HZ;
439 Tcb->CWnd = Tcb->SndMss;
440 Tcb->Ssthresh = 0xffffffff;
442 Tcb->CongestState = TCP_CONGEST_OPEN;
444 Tcb->KeepAliveIdle = TCP_KEEPALIVE_IDLE_MIN;
445 Tcb->KeepAlivePeriod = TCP_KEEPALIVE_PERIOD;
446 Tcb->MaxKeepAlive = TCP_MAX_KEEPALIVE;
447 Tcb->MaxRexmit = TCP_MAX_LOSS;
448 Tcb->FinWait2Timeout = TCP_FIN_WAIT2_TIME;
449 Tcb->TimeWaitTimeout = TCP_TIME_WAIT_TIME;
450 Tcb->ConnectTimeout = TCP_CONNECT_TIME;
453 // initialize Tcb in the light of CfgData
455 Tcb->Ttl = CfgData->TimeToLive;
456 Tcb->Tos = CfgData->TypeOfService;
458 Tcb->UseDefaultAddr = CfgData->AccessPoint.UseDefaultAddress;
460 CopyMem (&Tcb->LocalEnd.Ip, &CfgData->AccessPoint.StationAddress, sizeof (IP4_ADDR));
461 Tcb->LocalEnd.Port = HTONS (CfgData->AccessPoint.StationPort);
462 IP4_COPY_ADDRESS (&Tcb->SubnetMask, &CfgData->AccessPoint.SubnetMask);
465 CopyMem (&Tcb->RemoteEnd.Ip, &CfgData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR));
466 Tcb->RemoteEnd.Port = HTONS (CfgData->AccessPoint.RemotePort);
468 Tcb->RemoteEnd.Ip = 0;
469 Tcb->RemoteEnd.Port = 0;
507 Tcb->MaxRexmit = (UINT16) TCP_COMP_VAL (
513 Tcb->FinWait2Timeout = TCP_COMP_VAL (
521 Tcb->TimeWaitTimeout = TCP_COMP_VAL (
528 Tcb->TimeWaitTimeout = 0;
532 TCP_CLEAR_FLG (Tcb->CtrlFlag, TCP_CTRL_NO_KEEPALIVE);
534 Tcb->MaxKeepAlive = (UINT8) TCP_COMP_VAL (
540 Tcb->KeepAliveIdle = TCP_COMP_VAL (
546 Tcb->KeepAlivePeriod = TCP_COMP_VAL (
554 Tcb->ConnectTimeout = TCP_COMP_VAL (
562 TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_NO_NAGLE);
566 TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_NO_TS);
570 TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_NO_WS);
584 // update state of Tcb and socket
588 TcpSetState (Tcb, TCP_LISTEN);
597 TcpInsertTcb (Tcb);
627 TCP_CB *Tcb;
632 Tcb = ProtoData->TcpPcb;
646 ASSERT (Tcb != NULL);
647 TcpOnAppConsume (Tcb);
652 ASSERT (Tcb != NULL);
653 TcpOnAppSend (Tcb);
658 TcpOnAppClose (Tcb);
664 TcpOnAppAbort (Tcb);
669 Tcb->SndPsh = TcpGetMaxSndNxt (Tcb) + GET_SND_DATASIZE (Tcb->Sk);
670 TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_SND_PSH);
675 Tcb->SndUp = TcpGetMaxSndNxt (Tcb) + GET_SND_DATASIZE (Tcb->Sk) - 1;
676 TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_SND_URG);
682 TcpOnAppConnect (Tcb);
692 Tcp4FlushPcb (Tcb);
711 ASSERT ((Data != NULL) && (Tcb != NULL));
713 return Tcp4GetMode (Tcb, (TCP4_MODE_DATA *) Data);
717 ASSERT ((Data != NULL) && (Tcb != NULL));
719 return Tcp4Route (Tcb, (TCP4_ROUTE_INFO *) Data);