diff --git a/source/FreeRTOS_IPv4.c b/source/FreeRTOS_IPv4.c index bd8ab19197..e5e5e48d5d 100644 --- a/source/FreeRTOS_IPv4.c +++ b/source/FreeRTOS_IPv4.c @@ -321,9 +321,7 @@ enum eFrameProcessingResult prvAllowIPPacketIPv4( const struct xIP_PACKET * cons ( FreeRTOS_FindEndPointOnIP_IPv4( ulDestinationIPAddress ) == NULL ) && /* Is it an IPv4 broadcast address x.x.x.255 ? */ ( ( FreeRTOS_ntohl( ulDestinationIPAddress ) & 0xffU ) != 0xffU ) && - ( xIsIPv4Multicast( ulDestinationIPAddress ) == pdFALSE ) && - /* Or (during DHCP negotiation) we have no IP-address yet? */ - ( FreeRTOS_IsNetworkUp() != pdFALSE ) ) + ( xIsIPv4Multicast( ulDestinationIPAddress ) == pdFALSE ) ) { /* Packet is not for this node, release it */ eReturn = eReleaseBuffer; diff --git a/source/FreeRTOS_Routing.c b/source/FreeRTOS_Routing.c index a480568639..7be5751936 100644 --- a/source/FreeRTOS_Routing.c +++ b/source/FreeRTOS_Routing.c @@ -389,7 +389,6 @@ struct xIPv6_Couple #endif { if( ( ulIPAddress == 0U ) || - ( pxEndPoint->ipv4_settings.ulIPAddress == 0U ) || ( pxEndPoint->ipv4_settings.ulIPAddress == ulIPAddress ) ) { break; diff --git a/source/portable/NetworkInterface/ATSAM4E/NetworkInterface.c b/source/portable/NetworkInterface/ATSAM4E/NetworkInterface.c index 48a7b5bab8..96ee3c48fe 100644 --- a/source/portable/NetworkInterface/ATSAM4E/NetworkInterface.c +++ b/source/portable/NetworkInterface/ATSAM4E/NetworkInterface.c @@ -88,7 +88,8 @@ static BaseType_t xGMACWaitLS( TickType_t xMaxTime ); #if ( ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM == 1 ) && ( ipconfigHAS_TX_CRC_OFFLOADING == 0 ) - void vGMACGenerateChecksum( uint8_t * apBuffer ); + void vGMACGenerateChecksum( uint8_t * pucBuffer, + size_t uxLength ); #endif /* @@ -405,9 +406,10 @@ static BaseType_t xGMACWaitLS( TickType_t xMaxTime ) /*#if( ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM == 1 ) && ( ipconfigHAS_TX_CRC_OFFLOADING == 0 ) */ -void vGMACGenerateChecksum( uint8_t * apBuffer ) +void vGMACGenerateChecksum( uint8_t * pucBuffer, + size_t uxLength ) { - ProtocolPacket_t * xProtPacket = ( ProtocolPacket_t * ) apBuffer; + ProtocolPacket_t * xProtPacket = ( ProtocolPacket_t * ) pucBuffer; if( xProtPacket->xTCPPacket.xEthernetHeader.usFrameType == ipIPv4_FRAME_TYPE ) { @@ -419,7 +421,7 @@ void vGMACGenerateChecksum( uint8_t * apBuffer ) pxIPHeader->usHeaderChecksum = ~FreeRTOS_htons( pxIPHeader->usHeaderChecksum ); /* Calculate the TCP checksum for an outgoing packet. */ - usGenerateProtocolChecksum( ( uint8_t * ) apBuffer, pdTRUE ); + usGenerateProtocolChecksum( ( uint8_t * ) pucBuffer, uxLength, pdTRUE ); } } diff --git a/source/portable/NetworkInterface/ATSAM4E/gmac.c b/source/portable/NetworkInterface/ATSAM4E/gmac.c index 7322ec5a0b..b79c162481 100644 --- a/source/portable/NetworkInterface/ATSAM4E/gmac.c +++ b/source/portable/NetworkInterface/ATSAM4E/gmac.c @@ -642,7 +642,8 @@ uint32_t gmac_dev_read( gmac_device_t * p_gmac_dev, } -extern void vGMACGenerateChecksum( uint8_t * apBuffer ); +extern void vGMACGenerateChecksum( uint8_t * pucBuffer, + size_t uxLength ); /** * \brief Send ulLength bytes from pcFrom. This copies the buffer to one of the @@ -715,7 +716,7 @@ uint32_t gmac_dev_write( gmac_device_t * p_gmac_dev, memcpy( ( void * ) p_tx_td->addr, p_buffer, ul_size ); } #endif /* ipconfigZERO_COPY_TX_DRIVER */ - vGMACGenerateChecksum( ( uint8_t * ) p_tx_td->addr ); + vGMACGenerateChecksum( ( uint8_t * ) p_tx_td->addr, ( size_t ) ul_size ); } #if ( GMAC_USES_TX_CALLBACK != 0 ) diff --git a/source/portable/NetworkInterface/DriverSAM/NetworkInterface.c b/source/portable/NetworkInterface/DriverSAM/NetworkInterface.c index 88679b7a74..8a837dd357 100644 --- a/source/portable/NetworkInterface/DriverSAM/NetworkInterface.c +++ b/source/portable/NetworkInterface/DriverSAM/NetworkInterface.c @@ -161,7 +161,7 @@ static BaseType_t xPHY_Write( BaseType_t xAddress, uint32_t ulValue ); #if ( ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM == 1 ) && ( ipconfigHAS_TX_CRC_OFFLOADING == 0 ) - void vGMACGenerateChecksum( uint8_t * apBuffer, + void vGMACGenerateChecksum( uint8_t * pucBuffer, size_t uxLength ); #endif diff --git a/source/portable/NetworkInterface/DriverSAM/gmac_SAM.h b/source/portable/NetworkInterface/DriverSAM/gmac_SAM.h index 0f6a3e9cad..abe420607f 100644 --- a/source/portable/NetworkInterface/DriverSAM/gmac_SAM.h +++ b/source/portable/NetworkInterface/DriverSAM/gmac_SAM.h @@ -1539,7 +1539,7 @@ /* The SAM4E has problems offloading checksums for transmission. * The SAME70 does not set the CRC for ICMP packets (ping). */ - extern void vGMACGenerateChecksum( uint8_t * apBuffer, + extern void vGMACGenerateChecksum( uint8_t * pucBuffer, size_t uxLength ); /*/ @cond 0 */ diff --git a/source/portable/NetworkInterface/RX/NetworkInterface.c b/source/portable/NetworkInterface/RX/NetworkInterface.c index 1c38741730..516da7b450 100644 --- a/source/portable/NetworkInterface/RX/NetworkInterface.c +++ b/source/portable/NetworkInterface/RX/NetworkInterface.c @@ -12,7 +12,7 @@ * Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of * this software. By using this software, you agree to the additional terms and conditions found by accessing the * following link: -* http://www.renesas.com/disclaimer +* https://www.renesas.com/en/document/oth/disclaimer8 * * Copyright (C) 2020 Renesas Electronics Corporation. All rights reserved. ***********************************************************************************************************************/ diff --git a/source/portable/NetworkInterface/RX/ether_callback.c b/source/portable/NetworkInterface/RX/ether_callback.c index dc54e0e31f..b5c15fa34a 100644 --- a/source/portable/NetworkInterface/RX/ether_callback.c +++ b/source/portable/NetworkInterface/RX/ether_callback.c @@ -12,7 +12,7 @@ * Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of * this software. By using this software, you agree to the additional terms and conditions found by accessing the * following link: -* http://www.renesas.com/disclaimer +* https://www.renesas.com/en/document/oth/disclaimer8 * * Copyright (C) 2015 Renesas Electronics Corporation. All rights reserved. ***********************************************************************************************************************/ diff --git a/test/unit-test/FreeRTOS_IPv4/FreeRTOS_IPv4_utest.c b/test/unit-test/FreeRTOS_IPv4/FreeRTOS_IPv4_utest.c index d758655ef5..d571040a9b 100644 --- a/test/unit-test/FreeRTOS_IPv4/FreeRTOS_IPv4_utest.c +++ b/test/unit-test/FreeRTOS_IPv4/FreeRTOS_IPv4_utest.c @@ -262,7 +262,6 @@ void test_prvAllowIPPacketIPv4_NotMatchingIP( void ) pxIPHeader->ulDestinationIPAddress = pxEndpoint->ipv4_settings.ulIPAddress + 1; FreeRTOS_FindEndPointOnIP_IPv4_ExpectAnyArgsAndReturn( NULL ); /* From prvAllowIPPacketIPv4() */ - FreeRTOS_IsNetworkUp_ExpectAndReturn( pdTRUE ); eResult = prvAllowIPPacketIPv4( pxIPPacket, pxNetworkBuffer, uxHeaderLength ); @@ -417,7 +416,6 @@ void test_prvAllowIPPacketIPv4_SourceIPBrdCast_NoLocalIP( void ) FreeRTOS_FindEndPointOnIP_IPv4_ExpectAnyArgsAndReturn( NULL ); /* From prvAllowIPPacketIPv4() */ - FreeRTOS_IsNetworkUp_ExpectAndReturn( pdFALSE ); eResult = prvAllowIPPacketIPv4( pxIPPacket, pxNetworkBuffer, uxHeaderLength ); @@ -455,7 +453,6 @@ void test_prvAllowIPPacketIPv4_DestMACBrdCast_DestIPUnicast( void ) FreeRTOS_FindEndPointOnIP_IPv4_ExpectAnyArgsAndReturn( NULL ); /* From prvAllowIPPacketIPv4() */ - FreeRTOS_IsNetworkUp_ExpectAndReturn( pdTRUE ); eResult = prvAllowIPPacketIPv4( pxIPPacket, pxNetworkBuffer, uxHeaderLength ); diff --git a/test/unit-test/FreeRTOS_Routing/FreeRTOS_Routing_utest.c b/test/unit-test/FreeRTOS_Routing/FreeRTOS_Routing_utest.c index 134aacbf64..0322c26790 100644 --- a/test/unit-test/FreeRTOS_Routing/FreeRTOS_Routing_utest.c +++ b/test/unit-test/FreeRTOS_Routing/FreeRTOS_Routing_utest.c @@ -1443,11 +1443,15 @@ void test_FreeRTOS_FindEndPointOnIP_IPv4_AnyEndpoint( void ) * pxNetworkEndPoints is a global variable using in FreeRTOS_Routing as link list head of all endpoints. * * Test step: - * - Create 1 endpoint with IP address 0 and add it to the list. - * - Call FreeRTOS_FindEndPointOnIP_IPv4 to query with IPV4_DEFAULT_ADDRESS. + * - Create 1 endpoint with IP address 0xAB12CD34 and add it to the list. + * - Call FreeRTOS_FindEndPointOnIP_IPv4 to query with 0xAB12CD34. * - Check if returned endpoint is same. - * - Call FreeRTOS_FindEndPointOnIP_IPv4 to query with IPV4_DEFAULT_GATEWAY. + * - Call FreeRTOS_FindEndPointOnIP_IPv4 to query with 0. * - Check if returned endpoint is same. + * - Call FreeRTOS_FindEndPointOnIP_IPv4 to query with IPV4_DEFAULT_ADDRESS. + * - Check if returned endpoint is NULL. + * - Call FreeRTOS_FindEndPointOnIP_IPv4 to query with IPV4_DEFAULT_GATEWAY. + * - Check if returned endpoint is NULL. */ void test_FreeRTOS_FindEndPointOnIP_IPv4_ZeroAddressEndpoint( void ) { @@ -1455,13 +1459,17 @@ void test_FreeRTOS_FindEndPointOnIP_IPv4_ZeroAddressEndpoint( void ) NetworkEndPoint_t * pxEndPoint = NULL; memset( &xEndPoint, 0, sizeof( NetworkEndPoint_t ) ); - xEndPoint.ipv4_settings.ulIPAddress = 0; + xEndPoint.ipv4_settings.ulIPAddress = 0xAB12CD34; pxNetworkEndPoints = &xEndPoint; - pxEndPoint = FreeRTOS_FindEndPointOnIP_IPv4( IPV4_DEFAULT_ADDRESS ); + pxEndPoint = FreeRTOS_FindEndPointOnIP_IPv4( 0xAB12CD34 ); TEST_ASSERT_EQUAL( &xEndPoint, pxEndPoint ); - pxEndPoint = FreeRTOS_FindEndPointOnIP_IPv4( IPV4_DEFAULT_GATEWAY ); + pxEndPoint = FreeRTOS_FindEndPointOnIP_IPv4( 0 ); TEST_ASSERT_EQUAL( &xEndPoint, pxEndPoint ); + pxEndPoint = FreeRTOS_FindEndPointOnIP_IPv4( IPV4_DEFAULT_ADDRESS ); + TEST_ASSERT_EQUAL( NULL, pxEndPoint ); + pxEndPoint = FreeRTOS_FindEndPointOnIP_IPv4( IPV4_DEFAULT_GATEWAY ); + TEST_ASSERT_EQUAL( NULL, pxEndPoint ); } /**