Lines Matching refs:pxSocket
78 static BaseType_t prvTCPPrepareConnect( FreeRTOS_Socket_t * pxSocket );
88 static BaseType_t prvTCPMakeSurePrepared( FreeRTOS_Socket_t * pxSocket ) in prvTCPMakeSurePrepared() argument
92 if( pxSocket->u.xTCP.bits.bConnPrepared == pdFALSE_UNSIGNED ) in prvTCPMakeSurePrepared()
94 if( prvTCPPrepareConnect( pxSocket ) != pdTRUE ) in prvTCPMakeSurePrepared()
114 int32_t prvTCPSendPacket( FreeRTOS_Socket_t * pxSocket ) in prvTCPSendPacket() argument
120 if( pxSocket->u.xTCP.eTCPState != eCONNECT_SYN ) in prvTCPSendPacket()
127 lResult = prvTCPSendRepeated( pxSocket, &pxNetworkBuffer ); in prvTCPSendPacket()
136 if( pxSocket->u.xTCP.ucRepCount >= 3U ) in prvTCPSendPacket()
142 … ( unsigned ) pxSocket->u.xTCP.ulRemoteIP, /* IP address of remote machine. */ in prvTCPSendPacket()
143 … pxSocket->u.xTCP.usRemotePort ) ); /* Port on remote machine. */ in prvTCPSendPacket()
144 vTCPStateChange( pxSocket, eCLOSE_WAIT ); in prvTCPSendPacket()
146 else if( prvTCPMakeSurePrepared( pxSocket ) == pdTRUE ) in prvTCPSendPacket()
159 …pxProtocolHeaders = ( ( ProtocolHeaders_t * ) &( pxSocket->u.xTCP.xPacket.u.ucLastPacket[ ipSIZE_O… in prvTCPSendPacket()
164 … uxOptionsLength = prvSetSynAckOptions( pxSocket, &( pxProtocolHeaders->xTCPHeader ) ); in prvTCPSendPacket()
167 … uxIntermediateResult = uxIPHeaderSizeSocket( pxSocket ) + ipSIZE_OF_TCP_HEADER + uxOptionsLength; in prvTCPSendPacket()
178 pxSocket->u.xTCP.ucRepCount++; in prvTCPSendPacket()
183 prvTCPReturnPacket( pxSocket, NULL, ( uint32_t ) lResult, pdFALSE ); in prvTCPSendPacket()
206 int32_t prvTCPSendRepeated( FreeRTOS_Socket_t * pxSocket, in prvTCPSendRepeated() argument
218 xSendLength = prvTCPPrepareSend( pxSocket, ppxNetworkBuffer, uxOptionsLength ); in prvTCPSendRepeated()
226 …prvTCPReturnPacket( pxSocket, *ppxNetworkBuffer, ( uint32_t ) xSendLength, ipconfigZERO_COPY_TX_DR… in prvTCPSendRepeated()
254 void prvTCPReturnPacket( FreeRTOS_Socket_t * pxSocket, in prvTCPReturnPacket() argument
283 pxNetworkBuffer->pucEthernetBuffer = pxSocket->u.xTCP.xPacket.u.ucLastPacket; in prvTCPReturnPacket()
284 pxNetworkBuffer->xDataLength = sizeof( pxSocket->u.xTCP.xPacket.u.ucLastPacket ); in prvTCPReturnPacket()
320 if( pxSocket != NULL ) in prvTCPReturnPacket()
324 pxTCPWindow = &( pxSocket->u.xTCP.xTCPWindow ); in prvTCPReturnPacket()
326 if( pxSocket->u.xTCP.rxStream != NULL ) in prvTCPReturnPacket()
330 … ulFrontSpace = ( uint32_t ) uxStreamBufferFrontSpace( pxSocket->u.xTCP.rxStream ); in prvTCPReturnPacket()
336 ulFrontSpace = ( uint32_t ) pxSocket->u.xTCP.uxRxStreamSize; in prvTCPReturnPacket()
342 …if( ( pxSocket->u.xTCP.bits.bLowWater != pdFALSE_UNSIGNED ) || ( pxSocket->u.xTCP.bits.bRxStopped … in prvTCPReturnPacket()
354 … if( ( ulSpace < pxSocket->u.xTCP.usMSS ) && ( ulFrontSpace >= pxSocket->u.xTCP.usMSS ) ) in prvTCPReturnPacket()
356 ulSpace = pxSocket->u.xTCP.usMSS; in prvTCPReturnPacket()
362 ulWinSize = ( ulSpace >> pxSocket->u.xTCP.ucMyWinScaleFactor ); in prvTCPReturnPacket()
378 pxSocket->u.xTCP.bits.bWinChange = pdFALSE_UNSIGNED; in prvTCPReturnPacket()
383 … pxSocket->u.xTCP.ulHighestRxAllowed = pxTCPWindow->rx.ulCurrentSequenceNumber + ulSpace; in prvTCPReturnPacket()
386 if( pxSocket->u.xTCP.bits.bSendKeepAlive != pdFALSE_UNSIGNED ) in prvTCPReturnPacket()
391 pxSocket->u.xTCP.bits.bSendKeepAlive = pdFALSE_UNSIGNED; in prvTCPReturnPacket()
392 pxSocket->u.xTCP.bits.bWaitKeepAlive = pdTRUE_UNSIGNED; in prvTCPReturnPacket()
394 … pxTCPPacket->xTCPHeader.ulSequenceNumber = pxSocket->u.xTCP.xTCPWindow.ulOurSequenceNumber - 1U; in prvTCPReturnPacket()
400 …pxTCPPacket->xTCPHeader.ulSequenceNumber = FreeRTOS_htonl( pxSocket->u.xTCP.xTCPWindow.ulOurSequen… in prvTCPReturnPacket()
432 if( ( pxSocket == NULL ) || ( *ipLOCAL_IP_ADDRESS_POINTER == 0U ) ) in prvTCPReturnPacket()
562 void prvTCPCreateWindow( FreeRTOS_Socket_t * pxSocket ) in prvTCPCreateWindow() argument
564 uint32_t ulRxWindowSize = ( uint32_t ) pxSocket->u.xTCP.uxRxWinSize; in prvTCPCreateWindow()
565 uint32_t ulTxWindowSize = ( uint32_t ) pxSocket->u.xTCP.uxTxWinSize; in prvTCPCreateWindow()
570 … ( unsigned ) ( pxSocket->u.xTCP.uxRxWinSize * ipconfigTCP_MSS ), in prvTCPCreateWindow()
571 ( unsigned ) pxSocket->u.xTCP.uxLittleSpace, in prvTCPCreateWindow()
572 ( unsigned ) pxSocket->u.xTCP.uxEnoughSpace, in prvTCPCreateWindow()
573 ( unsigned ) pxSocket->u.xTCP.uxRxStreamSize ) ); in prvTCPCreateWindow()
577 &pxSocket->u.xTCP.xTCPWindow, in prvTCPCreateWindow()
580 pxSocket->u.xTCP.xTCPWindow.rx.ulCurrentSequenceNumber, in prvTCPCreateWindow()
581 pxSocket->u.xTCP.xTCPWindow.ulOurSequenceNumber, in prvTCPCreateWindow()
582 ( uint32_t ) pxSocket->u.xTCP.usMSS ); in prvTCPCreateWindow()
601 static BaseType_t prvTCPPrepareConnect( FreeRTOS_Socket_t * pxSocket ) in prvTCPPrepareConnect() argument
618 ulRemoteIP = FreeRTOS_htonl( pxSocket->u.xTCP.ulRemoteIP ); in prvTCPPrepareConnect()
632 pxSocket->u.xTCP.ucRepCount++; in prvTCPPrepareConnect()
635 ( unsigned ) pxSocket->u.xTCP.ulRemoteIP, in prvTCPPrepareConnect()
655 pxSocket->usLocalPort, in prvTCPPrepareConnect()
656 … pxSocket->u.xTCP.ulRemoteIP, in prvTCPPrepareConnect()
657 … pxSocket->u.xTCP.usRemotePort ); in prvTCPPrepareConnect()
677 pxTCPPacket = ( ( TCPPacket_t * ) pxSocket->u.xTCP.xPacket.u.ucLastPacket ); in prvTCPPrepareConnect()
681 pxSocket->u.xTCP.ucRepCount = 0U; in prvTCPPrepareConnect()
684 pxSocket->u.xTCP.bits.bConnPrepared = pdTRUE_UNSIGNED; in prvTCPPrepareConnect()
688 …( void ) memset( pxSocket->u.xTCP.xPacket.u.ucLastPacket, 0, sizeof( pxSocket->u.xTCP.xPacket.u.uc… in prvTCPPrepareConnect()
707 pxIPHeader->ulSourceIPAddress = FreeRTOS_htonl( pxSocket->u.xTCP.ulRemoteIP ); in prvTCPPrepareConnect()
709 pxTCPPacket->xTCPHeader.usSourcePort = FreeRTOS_htons( pxSocket->u.xTCP.usRemotePort ); in prvTCPPrepareConnect()
710 pxTCPPacket->xTCPHeader.usDestinationPort = FreeRTOS_htons( pxSocket->usLocalPort ); in prvTCPPrepareConnect()
714 pxSocket->u.xTCP.xTCPWindow.rx.ulCurrentSequenceNumber = 0U; in prvTCPPrepareConnect()
717 pxSocket->u.xTCP.xTCPWindow.ulOurSequenceNumber = ulInitialSequenceNumber; in prvTCPPrepareConnect()
727 prvSocketSetMSS( pxSocket ); in prvTCPPrepareConnect()
732 prvTCPCreateWindow( pxSocket ); in prvTCPPrepareConnect()
748 static uint8_t prvWinScaleFactor( const FreeRTOS_Socket_t * pxSocket ) in prvWinScaleFactor() argument
755 uxWinSize = pxSocket->u.xTCP.uxRxWinSize * ( size_t ) pxSocket->u.xTCP.usMSS; in prvWinScaleFactor()
766 ( unsigned ) pxSocket->u.xTCP.uxRxWinSize, in prvWinScaleFactor()
767 pxSocket->u.xTCP.usMSS, in prvWinScaleFactor()
791 UBaseType_t prvSetSynAckOptions( FreeRTOS_Socket_t * pxSocket, in prvSetSynAckOptions() argument
794 uint16_t usMSS = pxSocket->u.xTCP.usMSS; in prvSetSynAckOptions()
806 pxSocket->u.xTCP.ucMyWinScaleFactor = prvWinScaleFactor( pxSocket ); in prvSetSynAckOptions()
811 pxTCPHeader->ucOptdata[ 7 ] = ( uint8_t ) pxSocket->u.xTCP.ucMyWinScaleFactor; in prvSetSynAckOptions()
848 NetworkBufferDescriptor_t * prvTCPBufferResize( const FreeRTOS_Socket_t * pxSocket, in prvTCPBufferResize() argument
878 …uxNeeded = ipSIZE_OF_ETH_HEADER + uxIPHeaderSizeSocket( pxSocket ) + ipSIZE_OF_TCP_HEADER + uxOpti… in prvTCPBufferResize()
881 if( uxNeeded < sizeof( pxSocket->u.xTCP.xPacket.u.ucLastPacket ) ) in prvTCPBufferResize()
883 uxNeeded = sizeof( pxSocket->u.xTCP.xPacket.u.ucLastPacket ); in prvTCPBufferResize()
922 …( void ) memcpy( pxReturn->pucEthernetBuffer, pxSocket->u.xTCP.xPacket.u.ucLastPacket, sizeof( pxS… in prvTCPBufferResize()
932 …xDataLength = ( size_t ) ( ipSIZE_OF_ETH_HEADER + uxIPHeaderSizeSocket( pxSocket ) + ipSIZE_OF_TCP… in prvTCPBufferResize()
949 int32_t prvTCPPrepareSend( FreeRTOS_Socket_t * pxSocket, in prvTCPPrepareSend() argument
971 pucEthernetBuffer = pxSocket->u.xTCP.xPacket.u.ucLastPacket; in prvTCPPrepareSend()
979 …lHeaders_t * ) &( pucEthernetBuffer[ ipSIZE_OF_ETH_HEADER + uxIPHeaderSizeSocket( pxSocket ) ] ) ); in prvTCPPrepareSend()
980 pxTCPWindow = &( pxSocket->u.xTCP.xTCPWindow ); in prvTCPPrepareSend()
985 if( pxSocket->u.xTCP.txStream != NULL ) in prvTCPPrepareSend()
991 if( pxSocket->u.xTCP.usMSS > 1U ) in prvTCPPrepareSend()
993 …lDataLen = ( int32_t ) ulTCPWindowTxGet( pxTCPWindow, pxSocket->u.xTCP.ulWindowSize, &lStreamPos ); in prvTCPPrepareSend()
1000 … pxNewBuffer = prvTCPBufferResize( pxSocket, *ppxNetworkBuffer, lDataLen, uxOptionsLength ); in prvTCPPrepareSend()
1013 …lHeaders_t * ) &( pucEthernetBuffer[ ipSIZE_OF_ETH_HEADER + uxIPHeaderSizeSocket( pxSocket ) ] ) ); in prvTCPPrepareSend()
1015 …ta = &( pucEthernetBuffer[ ipSIZE_OF_ETH_HEADER + uxIPHeaderSizeSocket( pxSocket ) + ipSIZE_OF_TCP… in prvTCPPrepareSend()
1019 …uxOffset = uxStreamBufferDistance( pxSocket->u.xTCP.txStream, pxSocket->u.xTCP.txStream->uxTail, (… in prvTCPPrepareSend()
1023 …ulDataGot = ( uint32_t ) uxStreamBufferGet( pxSocket->u.xTCP.txStream, uxOffset, pucSendData, ( si… in prvTCPPrepareSend()
1037 if( pxSocket->u.xTCP.bits.bCloseRequested != pdFALSE_UNSIGNED ) in prvTCPPrepareSend()
1039 …istance = ( uint32_t ) uxStreamBufferDistance( pxSocket->u.xTCP.txStream, ( size_t ) lStreamPos, p… in prvTCPPrepareSend()
1047 size_t uxHead = pxSocket->u.xTCP.txStream->uxHead; in prvTCPPrepareSend()
1048 size_t uxMid = pxSocket->u.xTCP.txStream->uxMid; in prvTCPPrepareSend()
1049 size_t uxTail = pxSocket->u.xTCP.txStream->uxTail; in prvTCPPrepareSend()
1062 pxSocket->u.xTCP.bits.bFinSent = pdTRUE_UNSIGNED; in prvTCPPrepareSend()
1073 if( ( lDataLen >= 0 ) && ( pxSocket->u.xTCP.eTCPState == eESTABLISHED ) ) in prvTCPPrepareSend()
1076 if( ( pxSocket->u.xTCP.bits.bUserShutdown != pdFALSE_UNSIGNED ) && in prvTCPPrepareSend()
1079 pxSocket->u.xTCP.bits.bUserShutdown = pdFALSE_UNSIGNED; in prvTCPPrepareSend()
1081 pxSocket->u.xTCP.bits.bFinSent = pdTRUE_UNSIGNED; in prvTCPPrepareSend()
1082 pxSocket->u.xTCP.bits.bWinChange = pdTRUE_UNSIGNED; in prvTCPPrepareSend()
1084 vTCPStateChange( pxSocket, eFIN_WAIT_1 ); in prvTCPPrepareSend()
1089 if( pxSocket->u.xTCP.ucKeepRepCount > 3U ) /*_RB_ Magic number. */ in prvTCPPrepareSend()
1092 … ( unsigned ) pxSocket->u.xTCP.ulRemoteIP, /* IP address of remote machine. */ in prvTCPPrepareSend()
1093 … pxSocket->u.xTCP.usRemotePort ) ); /* Port on remote machine. */ in prvTCPPrepareSend()
1094 vTCPStateChange( pxSocket, eCLOSE_WAIT ); in prvTCPPrepareSend()
1098 … if( ( lDataLen == 0 ) && ( pxSocket->u.xTCP.bits.bWinChange == pdFALSE_UNSIGNED ) ) in prvTCPPrepareSend()
1102 TickType_t xAge = xTaskGetTickCount() - pxSocket->u.xTCP.xLastAliveTime; in prvTCPPrepareSend()
1106 if( pxSocket->u.xTCP.ucKeepRepCount != 0U ) in prvTCPPrepareSend()
1113 pxSocket->u.xTCP.xLastAliveTime = xTaskGetTickCount(); in prvTCPPrepareSend()
1118 ( unsigned ) pxSocket->u.xTCP.ulRemoteIP, in prvTCPPrepareSend()
1119 pxSocket->u.xTCP.usRemotePort, in prvTCPPrepareSend()
1120 pxSocket->u.xTCP.ucKeepRepCount ) ); in prvTCPPrepareSend()
1123 pxSocket->u.xTCP.bits.bSendKeepAlive = pdTRUE_UNSIGNED; in prvTCPPrepareSend()
1124 pxSocket->u.xTCP.usTimeout = ( ( uint16_t ) pdMS_TO_TICKS( 2500U ) ); in prvTCPPrepareSend()
1125 pxSocket->u.xTCP.ucKeepRepCount++; in prvTCPPrepareSend()
1137 ( pxSocket->u.xTCP.bits.bWinChange != pdFALSE_UNSIGNED ) || in prvTCPPrepareSend()
1138 ( pxSocket->u.xTCP.bits.bSendKeepAlive != pdFALSE_UNSIGNED ) ) in prvTCPPrepareSend()
1150 … uxIntermediateResult = uxIPHeaderSizeSocket( pxSocket ) + ipSIZE_OF_TCP_HEADER + uxOptionsLength; in prvTCPPrepareSend()
1166 void prvTCPAddTxData( FreeRTOS_Socket_t * pxSocket ) in prvTCPAddTxData() argument
1176 lLength = ( int32_t ) uxStreamBufferMidSpace( pxSocket->u.xTCP.txStream ); in prvTCPAddTxData()
1186 lCount = lTCPWindowTxAdd( &pxSocket->u.xTCP.xTCPWindow, in prvTCPAddTxData()
1188 ( int32_t ) pxSocket->u.xTCP.txStream->uxMid, in prvTCPAddTxData()
1189 ( int32_t ) pxSocket->u.xTCP.txStream->LENGTH ); in prvTCPAddTxData()
1194 vStreamBufferMoveMid( pxSocket->u.xTCP.txStream, ( size_t ) lCount ); in prvTCPAddTxData()
1209 UBaseType_t prvSetOptions( FreeRTOS_Socket_t * pxSocket, in prvSetOptions() argument
1220 const TCPWindow_t * pxTCPWindow = &pxSocket->u.xTCP.xTCPWindow; in prvSetOptions()
1235 pxSocket->usLocalPort, in prvSetOptions()
1236 pxSocket->u.xTCP.usRemotePort, in prvSetOptions()
1238 …( unsigned ) ( FreeRTOS_ntohl( pxTCPWindow->ulOptionsData[ 1 ] ) - pxSocket->u.xTCP.xTCPWindow.rx.… in prvSetOptions()
1239 …( unsigned ) ( FreeRTOS_ntohl( pxTCPWindow->ulOptionsData[ 2 ] ) - pxSocket->u.xTCP.xTCPWindow.rx.… in prvSetOptions()
1258 …if( ( pxSocket->u.xTCP.eTCPState >= eESTABLISHED ) && ( pxSocket->u.xTCP.bits.bMssChange != pdFALS… in prvSetOptions()
1261 pxSocket->u.xTCP.bits.bMssChange = pdFALSE_UNSIGNED; in prvSetOptions()
1265 FreeRTOS_debug_printf( ( "MSS: sending %u\n", pxSocket->u.xTCP.usMSS ) ); in prvSetOptions()
1270 pxTCPHeader->ucOptdata[ 2 ] = ( uint8_t ) ( ( pxSocket->u.xTCP.usMSS ) >> 8 ); in prvSetOptions()
1271 pxTCPHeader->ucOptdata[ 3 ] = ( uint8_t ) ( ( pxSocket->u.xTCP.usMSS ) & 0xffU ); in prvSetOptions()
1297 BaseType_t prvSendData( FreeRTOS_Socket_t * pxSocket, in prvSendData() argument
1310 const TCPWindow_t * pxTCPWindow = &pxSocket->u.xTCP.xTCPWindow; in prvSendData()
1325 … ulRxBufferSpace = pxSocket->u.xTCP.ulHighestRxAllowed - pxTCPWindow->rx.ulCurrentSequenceNumber; in prvSendData()
1331 lMinLength = ( ( int32_t ) 2 ) * ( ( int32_t ) pxSocket->u.xTCP.usMSS ); in prvSendData()
1338 … ( pxSocket->u.xTCP.bits.bFinSent == pdFALSE_UNSIGNED ) && /* Not in a closure phase. */ in prvSendData()
1340 … ( pxSocket->u.xTCP.eTCPState == eESTABLISHED ) && /* Connection established. */ in prvSendData()
1343 uint32_t ulCurMSS = ( uint32_t ) pxSocket->u.xTCP.usMSS; in prvSendData()
1345 if( pxSocket->u.xTCP.pxAckMessage != *ppxNetworkBuffer ) in prvSendData()
1348 if( pxSocket->u.xTCP.pxAckMessage != NULL ) in prvSendData()
1350 vReleaseNetworkBufferAndDescriptor( pxSocket->u.xTCP.pxAckMessage ); in prvSendData()
1353 pxSocket->u.xTCP.pxAckMessage = *ppxNetworkBuffer; in prvSendData()
1358 pxSocket->u.xTCP.usTimeout = ( uint16_t ) tcpDELAYED_ACK_SHORT_DELAY_MS; in prvSendData()
1365 … pxSocket->u.xTCP.usTimeout = ( uint16_t ) pdMS_TO_TICKS( tcpDELAYED_ACK_LONGER_DELAY_MS ); in prvSendData()
1367 … if( pxSocket->u.xTCP.usTimeout < 1U ) /* LCOV_EXCL_BR_LINE, the second branch will never be hit */ in prvSendData()
1369 … pxSocket->u.xTCP.usTimeout = 1U; /* LCOV_EXCL_LINE, this line will not be reached */ in prvSendData()
1373 … if( ( xTCPWindowLoggingLevel > 1 ) && ( ipconfigTCP_MAY_LOG_PORT( pxSocket->usLocalPort ) ) ) in prvSendData()
1376 pxSocket->usLocalPort, in prvSendData()
1377 pxSocket->u.xTCP.usRemotePort, in prvSendData()
1379 …( unsigned ) ( pxSocket->u.xTCP.xTCPWindow.ulOurSequenceNumber - pxTCPWindow->tx.ulFirstSequenceNu… in prvSendData()
1381 pxSocket->u.xTCP.usTimeout, in prvSendData()
1388 else if( pxSocket->u.xTCP.pxAckMessage != NULL ) in prvSendData()
1392 if( pxSocket->u.xTCP.pxAckMessage != *ppxNetworkBuffer ) in prvSendData()
1394 vReleaseNetworkBufferAndDescriptor( pxSocket->u.xTCP.pxAckMessage ); in prvSendData()
1397 pxSocket->u.xTCP.pxAckMessage = NULL; in prvSendData()
1415 … if( ( xTCPWindowLoggingLevel > 1 ) && ( ipconfigTCP_MAY_LOG_PORT( pxSocket->usLocalPort ) ) ) in prvSendData()
1418 pxSocket->usLocalPort, in prvSendData()
1419 pxSocket->u.xTCP.usRemotePort, in prvSendData()
1427 …prvTCPReturnPacket( pxSocket, *ppxNetworkBuffer, ( uint32_t ) xSendLength, ipconfigZERO_COPY_TX_DR… in prvSendData()