Skip to content

Conversation

@htibosch
Copy link
Contributor

@htibosch htibosch commented Apr 9, 2021

Description

This PR comes in response to issue #216: "Possible overflow in xProcessReceivedTCPPacket". @bernd-edlinger : thanks a lot for reporting this.

When a RST packet is received for an existing TCP connection, 3 things can happen:

  • The peer knows exactly what seq number the device is expecting: accept the RST and close the socket.
  • The peer comes with a seq number that is within the RX window: send a challenge ACK
  • The peer doesn't have a clue about the seq number: ignore the RST packet

The check of the sequence number was not totally exact: it would fail if the sequence number is about to pass through zero.
Solution: use the functions xSequenceGreaterThan() and xSequenceLessThan(). They are defined in FreeRTOS_TCP_WIN.c and now made public:

Test Steps

It is a bit difficult to do an integration test for this change, it needs a bit of hacking. Start a TCP connection while the sequence number is e.g. 0xFFFFFF00. Do not send data, but in stead let the peer send a RST packet with a sequence number of e.g. 0x01 or 0x100.

In stead, I did a simulation:

{
    uint32_t ulSequenceNumber, ulCurrentSequenceNumber, ulRxWindowLength;
    bool r1, r2, r3, r4;

    /* A normal situation, no roll-over: */
    ulCurrentSequenceNumber = 0x0000F000U;
    ulSequenceNumber = ulCurrentSequenceNumber + 512;
    ulRxWindowLength = 1460U;
    r1 = xSequenceGreaterThan( ulSequenceNumber, ulCurrentSequenceNumber );
    r2 = xSequenceLessThan( ulSequenceNumber, ( ulCurrentSequenceNumber + ulRxWindowLength ) );
    r3 = ( ulSequenceNumber > ulCurrentSequenceNumber ) ? 1 : 0;
    r4 = ( ulSequenceNumber < ( ulCurrentSequenceNumber + ulRxWindowLength ) ) ? 1 : 0;
    logPrintf("rc = %d %d versus %d %d\n", r1, r2, r3, r4);

    /* Rolling over but within the expected range: */
    ulCurrentSequenceNumber = 0xFFFFFF00U;
    ulSequenceNumber = ulCurrentSequenceNumber + 512;
    ulRxWindowLength = 1460U;
    r1 = xSequenceGreaterThan( ulSequenceNumber, ulCurrentSequenceNumber );
    r2 = xSequenceLessThan( ulSequenceNumber, ( ulCurrentSequenceNumber + ulRxWindowLength ) );
    r3 = ( ulSequenceNumber > ulCurrentSequenceNumber ) ? 1 : 0;
    r4 = ( ulSequenceNumber < ( ulCurrentSequenceNumber + ulRxWindowLength ) ) ? 1 : 0;
    logPrintf("rc = %d %d versus %d %d\n", r1, r2, r3, r4);

    /* Not rolling over, but still within the expected range: */
    ulCurrentSequenceNumber = 0xFFFFFF00U;
    ulSequenceNumber = ulCurrentSequenceNumber + 1;
    ulRxWindowLength = 1460U;
    r1 = xSequenceGreaterThan( ulSequenceNumber, ulCurrentSequenceNumber );
    r2 = xSequenceLessThan( ulSequenceNumber, ( ulCurrentSequenceNumber + ulRxWindowLength ) );
    r3 = ( ulSequenceNumber > ulCurrentSequenceNumber ) ? 1 : 0;
    r4 = ( ulSequenceNumber < ( ulCurrentSequenceNumber + ulRxWindowLength ) ) ? 1 : 0;
    logPrintf("rc = %d %d versus %d %d\n", r1, r2, r3, r4);
}

/*
    The output is:
    rc = 1 1 versus 1 1 // good
    rc = 1 1 versus 0 1 // wrong
    rc = 1 1 versus 1 0 // wrong
    The results on the left hand are all correct.
*/

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@htibosch htibosch requested a review from a team as a code owner April 9, 2021 09:41
pxSocket->u.xTCP.xTCPWindow.xSize.ulRxWindowLength ) ) )
else if( ( xSequenceGreaterThan( ulSequenceNumber, pxSocket->u.xTCP.xTCPWindow.rx.ulCurrentSequenceNumber ) ) &&
( xSequenceLessThan( ulSequenceNumber, ( pxSocket->u.xTCP.xTCPWindow.rx.ulCurrentSequenceNumber +
pxSocket->u.xTCP.xTCPWindow.xSize.ulRxWindowLength ) ) ) )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you could also do something like this:

else if ( ulSequenceNumber - pxSocket->u.xTCP.xTCPWindow.rx.ulCurrentSequenceNumber <
          pxSocket->u.xTCP.xTCPWindow.xSize.ulRxWindowLength )

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I believe that. indirectly, that test has been done. Formally ( i.e. without the overflows ), the following two staments are equal:

  • else if ( ulSequenceNumber - ulCurrentSequenceNumber < ulRxWindowLength )
  • else if ( ulSequenceNumber < ulRxWindowLength + ulCurrentSequenceNumber )

Only I have expressed it as:

( xSequenceLessThan( ulSequenceNumber, ( ulCurrentSequenceNumber + ulRxWindowLength ) ) )

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xSequenceLessThan is not linking. Did a file get missed in the commit?

Copy link
Contributor

@bernd-edlinger bernd-edlinger Apr 9, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right, both ways it is correct as long as ulRxWindowLength <= 2^31
it's just that your solution needs two checks. (this is the response to @htibosch 's comment above)

Copy link
Contributor

@bernd-edlinger bernd-edlinger Apr 9, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually to prove the equivalence I need 1 <= ulRxWindowLength && ulRxWindowLength <= 2^31+2
Are we sure that ulRxWindowLength is not zero?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@n9wxu

xSequenceLessThan is not linking. Did a file get missed in the commit?

Sorry yes, I forgot to upload the TCP_WIN source files. One moment.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we sure that ulRxWindowLength is not zero?

I gave a quick look to the source and it seems that ulRxWindowLength is never 0. Even when the windowing is disabled for TCP, the value of ulRxWindowLength == ipconfigTCP_MSS.

If someone was to mess with ipconfigTCP_MSS and make it 0, then the overflow of sequence numbers would be the least of their problems. :)

n9wxu
n9wxu previously approved these changes Apr 9, 2021
@htibosch
Copy link
Contributor Author

About commit: "Make xSequenceLessThan and xSequenceGreaterThan public functions"

These 2 functions will now compile as global functions, independently of the macro ipconfigUSE_TCP_WIN.

gkwicker
gkwicker previously approved these changes Apr 12, 2021
Copy link
Contributor

@gkwicker gkwicker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved with a few minor suggestions.

BaseType_t xSequenceLessThan( uint32_t a,
uint32_t b )
{
BaseType_t xResult;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: code might be clearer as:

BaseType_t xResult = pdFALSE;

/* Test if a < b */
if( ( ( b - ( a + 1UL ) ) & 0x80000000UL ) == 0UL )
{
    xResult = pdTRUE;
}
return xResult;

{
xResult = pdFALSE;
}
BaseType_t xSequenceGreaterThan( uint32_t a,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: see previous comment in xSequenceLessThan().

*
* @return pdTRUE or pdFALSE.
*/
BaseType_t xSequenceGreaterThan( uint32_t a,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nits: should these use portINLINE? Also, the names indicate that these are to be used with TCP sequence numbers but they could be used with any 32-bit rolling counter. Are these good names? Is there anywhere else they might be useful?

uint32_t ulLast );

/**
* @brief Check if a > b.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: we might add a little more detail in this description – it could be helpful to know a little more about how a and b are used. This helper function is for rolling counter applications like TCP sequence numbers.

@htibosch htibosch dismissed stale reviews from gkwicker and AniruddhaKanhere via 8aa5866 April 13, 2021 16:41
@bernd-edlinger
Copy link
Contributor

I just saw an error from the "spell check"

tcp/include/FreeRTOS_TCP_WIN.h

   240	 * @note GreaterThan is calculated as "( a - ( b + 1U ) ) < 0x80000000".

tcp/include/FreeRTOS_TCP_WIN.h

   253	 * @note LessThan is implemented as "( b - ( a + 1 ) ) < 0x80000000".
Error: Process completed with exit code 1.

IOW it does not like "GreaterThan" and "LessThan".

@htibosch
Copy link
Contributor Author

About "Although no changes were made to MPS2_AN385, some formatting changes to that driver"
It seems to solve the formatting errors.

@AniruddhaKanhere AniruddhaKanhere merged commit e88ecd3 into FreeRTOS:main Apr 21, 2021
@htibosch htibosch deleted the checks_for_TCPSendChallengeAck branch May 8, 2021 03:56
AniruddhaKanhere added a commit that referenced this pull request Aug 8, 2021
* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* parent be9fe45d8ec440f7750de0f4870b28de39b10a3b
author Hein Tibosch <[email protected]> 1609879469 +0800
committer Aniruddha Kanhere <[email protected]> 1619029134 -0700

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Create uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

* Remove unused file

Include ICMP while calculating IP header checksum (#198)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Include ICMP checksum

* Uncrustify

* Update ci.yml

* Spell check

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add comment to CI.yml

fix compiler warnings about casting to format string (#197)

* fix compiler warnings about casting to format string

Fix various warnings like:

/FreeRTOS-Plus-TCP/FreeRTOS_IP.c: In function 'FreeRTOS_strerror_r':
/FreeRTOS-Plus-TCP/FreeRTOS_IP.c:3395:60: error: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Werror=format=]
             ( void ) snprintf( pcBuffer, uxLength, "Errno %d", ( int32_t ) xErrnum );
                                                           ~^   ~~~~~~~~~~~~~~~~~~~
                                                           %ld

* explicitly cast arguments to format string

This should hopefully make the format string compatible
with all architectures.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Added git-secrets check to Github actions (#201)

Add header file to socket.h so that it can be compiled on its own (#204)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

User hook function for handling unsupported Ethernet frames (#200)

* Adds an optional user hook that gets called for all unhandled Ethernet frames.

* re-wording

* Fix spell check

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Limit the number of attempts to resolve an address in xARPWaitResolution() (#206)

Co-authored-by: Hein Tibosch <[email protected]>

Update litani submodule to version 1.6.0 (#210)

[CBMC] Add assert with readability check (#214)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update proof to use assert with readability check

* Revert ci.yml changes

* Remove unwanted changes

* Null check

* Fix adding NULL checks

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add unit-tests for FreeRTOS_ARP.c (#209)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

* First commit

* Cleanup

* Update: working version

* Coverage of eARPGetCacheEntry

* Update

* Unit-test and clenaup

* 100% line and function coverage

* Uncrustify and update

* 100% all coverage

* Move files to correct location

* Fix tests

* uncrustified

* Update ci.yml

* Update

* uncrustify and update after Hein's comments

* Empty commit

* Clenaup after @yanjos-dev's review

* Update CI

* Cleanup - pass 1

* Remove gdb

* Uncrustify

* Remove litani changes

* Clean up

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

DHCP unit test (#211)

Co-authored-by: Aniruddha Kanhere <[email protected]>

Repair buffer leak when replying to NBNS requests (#215)

* Repair buffer leak when replying to NBNS requests

* Applied Uncrustify

* Variable 'pxNewBuffer' was out of scope

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Static allocation, if configSUPPORT_STATIC_ALLOCATION == 1 (#208) (#217)

* Static allocation of tasks and queues, if configSUPPORT_STATIC_ALLOCATION == 1 (#208)

Is not added to any ported network interfaced.

* Build-check fix

* Uncrustify

* Uncrustify v2

* Update FreeRTOS_IP.c

Co-authored-by: Christian Jensen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Add a method to obtain the handle of the FreeRTOS+TCP IP task (#222)

* Add a method to obtain the handle of the FreeRTOS+TCP IP task

* Added the modified FreeRTOS_IP.c

* Update lexicon.txt

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Code changes for unit-testing (#223)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Make some code changes as a precursor for unit-testing

* remove unused file

* Fixed failing checks

* Fixed CBMC proof

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Use an infinite timeout in FreeRTOS_closesocket when called from a user task (#226)

Reformat MPS2_AN385 network driver (#224)

* Update the MPS2_AN385 network driver so it conforms to the +TCP coding and style guide.

* Update smsc9220_eth_drv.c

Remove #warning message erroneously left in.

Co-authored-by: alfred gedeon <[email protected]>

Uncrustify.

Uncrustify again.

Before sending a challenge ACK, check the sequence number more properly (#225)

* Before sending a challenge ACK, check the sequence number more properly

* Make xSequenceLessThan and xSequenceGreaterThan public functions

* Extended comments on two public functions.

* Fix Spell check

* Although no changes were made to MPS2_AN385, some formatting changes to that driver

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Fix Some warnings

* merge tcp_mem_stats

* Add check

* Add 'UL' to an uint32_t value

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
AniruddhaKanhere added a commit that referenced this pull request Aug 12, 2021
* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* parent be9fe45d8ec440f7750de0f4870b28de39b10a3b
author Hein Tibosch <[email protected]> 1609879469 +0800
committer Aniruddha Kanhere <[email protected]> 1619029134 -0700

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Create uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

* Remove unused file

Include ICMP while calculating IP header checksum (#198)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Include ICMP checksum

* Uncrustify

* Update ci.yml

* Spell check

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add comment to CI.yml

fix compiler warnings about casting to format string (#197)

* fix compiler warnings about casting to format string

Fix various warnings like:

/FreeRTOS-Plus-TCP/FreeRTOS_IP.c: In function 'FreeRTOS_strerror_r':
/FreeRTOS-Plus-TCP/FreeRTOS_IP.c:3395:60: error: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Werror=format=]
             ( void ) snprintf( pcBuffer, uxLength, "Errno %d", ( int32_t ) xErrnum );
                                                           ~^   ~~~~~~~~~~~~~~~~~~~
                                                           %ld

* explicitly cast arguments to format string

This should hopefully make the format string compatible
with all architectures.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Added git-secrets check to Github actions (#201)

Add header file to socket.h so that it can be compiled on its own (#204)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

User hook function for handling unsupported Ethernet frames (#200)

* Adds an optional user hook that gets called for all unhandled Ethernet frames.

* re-wording

* Fix spell check

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Limit the number of attempts to resolve an address in xARPWaitResolution() (#206)

Co-authored-by: Hein Tibosch <[email protected]>

Update litani submodule to version 1.6.0 (#210)

[CBMC] Add assert with readability check (#214)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update proof to use assert with readability check

* Revert ci.yml changes

* Remove unwanted changes

* Null check

* Fix adding NULL checks

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add unit-tests for FreeRTOS_ARP.c (#209)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

* First commit

* Cleanup

* Update: working version

* Coverage of eARPGetCacheEntry

* Update

* Unit-test and clenaup

* 100% line and function coverage

* Uncrustify and update

* 100% all coverage

* Move files to correct location

* Fix tests

* uncrustified

* Update ci.yml

* Update

* uncrustify and update after Hein's comments

* Empty commit

* Clenaup after @yanjos-dev's review

* Update CI

* Cleanup - pass 1

* Remove gdb

* Uncrustify

* Remove litani changes

* Clean up

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

DHCP unit test (#211)

Co-authored-by: Aniruddha Kanhere <[email protected]>

Repair buffer leak when replying to NBNS requests (#215)

* Repair buffer leak when replying to NBNS requests

* Applied Uncrustify

* Variable 'pxNewBuffer' was out of scope

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Static allocation, if configSUPPORT_STATIC_ALLOCATION == 1 (#208) (#217)

* Static allocation of tasks and queues, if configSUPPORT_STATIC_ALLOCATION == 1 (#208)

Is not added to any ported network interfaced.

* Build-check fix

* Uncrustify

* Uncrustify v2

* Update FreeRTOS_IP.c

Co-authored-by: Christian Jensen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Add a method to obtain the handle of the FreeRTOS+TCP IP task (#222)

* Add a method to obtain the handle of the FreeRTOS+TCP IP task

* Added the modified FreeRTOS_IP.c

* Update lexicon.txt

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Code changes for unit-testing (#223)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Make some code changes as a precursor for unit-testing

* remove unused file

* Fixed failing checks

* Fixed CBMC proof

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Use an infinite timeout in FreeRTOS_closesocket when called from a user task (#226)

Reformat MPS2_AN385 network driver (#224)

* Update the MPS2_AN385 network driver so it conforms to the +TCP coding and style guide.

* Update smsc9220_eth_drv.c

Remove #warning message erroneously left in.

Co-authored-by: alfred gedeon <[email protected]>

Uncrustify.

Uncrustify again.

Before sending a challenge ACK, check the sequence number more properly (#225)

* Before sending a challenge ACK, check the sequence number more properly

* Make xSequenceLessThan and xSequenceGreaterThan public functions

* Extended comments on two public functions.

* Fix Spell check

* Although no changes were made to MPS2_AN385, some formatting changes to that driver

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Fix Some warnings

* merge tcp_mem_stats

* Disallow octal IP-addresses

* Uncrustified

* Clear the output variable

* Add unit-tests for pton4

* Uncrustified

* Updated log messages

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
AniruddhaKanhere added a commit that referenced this pull request Sep 9, 2021
* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* parent be9fe45d8ec440f7750de0f4870b28de39b10a3b
author Hein Tibosch <[email protected]> 1609879469 +0800
committer Aniruddha Kanhere <[email protected]> 1619029134 -0700

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Create uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

* Remove unused file

Include ICMP while calculating IP header checksum (#198)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Include ICMP checksum

* Uncrustify

* Update ci.yml

* Spell check

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add comment to CI.yml

fix compiler warnings about casting to format string (#197)

* fix compiler warnings about casting to format string

Fix various warnings like:

/FreeRTOS-Plus-TCP/FreeRTOS_IP.c: In function 'FreeRTOS_strerror_r':
/FreeRTOS-Plus-TCP/FreeRTOS_IP.c:3395:60: error: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Werror=format=]
             ( void ) snprintf( pcBuffer, uxLength, "Errno %d", ( int32_t ) xErrnum );
                                                           ~^   ~~~~~~~~~~~~~~~~~~~
                                                           %ld

* explicitly cast arguments to format string

This should hopefully make the format string compatible
with all architectures.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Added git-secrets check to Github actions (#201)

Add header file to socket.h so that it can be compiled on its own (#204)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

User hook function for handling unsupported Ethernet frames (#200)

* Adds an optional user hook that gets called for all unhandled Ethernet frames.

* re-wording

* Fix spell check

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Limit the number of attempts to resolve an address in xARPWaitResolution() (#206)

Co-authored-by: Hein Tibosch <[email protected]>

Update litani submodule to version 1.6.0 (#210)

[CBMC] Add assert with readability check (#214)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update proof to use assert with readability check

* Revert ci.yml changes

* Remove unwanted changes

* Null check

* Fix adding NULL checks

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add unit-tests for FreeRTOS_ARP.c (#209)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

* First commit

* Cleanup

* Update: working version

* Coverage of eARPGetCacheEntry

* Update

* Unit-test and clenaup

* 100% line and function coverage

* Uncrustify and update

* 100% all coverage

* Move files to correct location

* Fix tests

* uncrustified

* Update ci.yml

* Update

* uncrustify and update after Hein's comments

* Empty commit

* Clenaup after @yanjos-dev's review

* Update CI

* Cleanup - pass 1

* Remove gdb

* Uncrustify

* Remove litani changes

* Clean up

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

DHCP unit test (#211)

Co-authored-by: Aniruddha Kanhere <[email protected]>

Repair buffer leak when replying to NBNS requests (#215)

* Repair buffer leak when replying to NBNS requests

* Applied Uncrustify

* Variable 'pxNewBuffer' was out of scope

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Static allocation, if configSUPPORT_STATIC_ALLOCATION == 1 (#208) (#217)

* Static allocation of tasks and queues, if configSUPPORT_STATIC_ALLOCATION == 1 (#208)

Is not added to any ported network interfaced.

* Build-check fix

* Uncrustify

* Uncrustify v2

* Update FreeRTOS_IP.c

Co-authored-by: Christian Jensen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Add a method to obtain the handle of the FreeRTOS+TCP IP task (#222)

* Add a method to obtain the handle of the FreeRTOS+TCP IP task

* Added the modified FreeRTOS_IP.c

* Update lexicon.txt

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Code changes for unit-testing (#223)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Make some code changes as a precursor for unit-testing

* remove unused file

* Fixed failing checks

* Fixed CBMC proof

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Use an infinite timeout in FreeRTOS_closesocket when called from a user task (#226)

Reformat MPS2_AN385 network driver (#224)

* Update the MPS2_AN385 network driver so it conforms to the +TCP coding and style guide.

* Update smsc9220_eth_drv.c

Remove #warning message erroneously left in.

Co-authored-by: alfred gedeon <[email protected]>

Uncrustify.

Uncrustify again.

Before sending a challenge ACK, check the sequence number more properly (#225)

* Before sending a challenge ACK, check the sequence number more properly

* Make xSequenceLessThan and xSequenceGreaterThan public functions

* Extended comments on two public functions.

* Fix Spell check

* Although no changes were made to MPS2_AN385, some formatting changes to that driver

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Fix Some warnings

* merge tcp_mem_stats

* remove typo

* Update vSocketWakeupUser Proof

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Cobus van Eeden <[email protected]>
n9wxu pushed a commit that referenced this pull request Dec 27, 2021
* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* parent be9fe45d8ec440f7750de0f4870b28de39b10a3b
author Hein Tibosch <[email protected]> 1609879469 +0800
committer Aniruddha Kanhere <[email protected]> 1619029134 -0700

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Create uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

* Remove unused file

Include ICMP while calculating IP header checksum (#198)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Include ICMP checksum

* Uncrustify

* Update ci.yml

* Spell check

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add comment to CI.yml

fix compiler warnings about casting to format string (#197)

* fix compiler warnings about casting to format string

Fix various warnings like:

/FreeRTOS-Plus-TCP/FreeRTOS_IP.c: In function 'FreeRTOS_strerror_r':
/FreeRTOS-Plus-TCP/FreeRTOS_IP.c:3395:60: error: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Werror=format=]
             ( void ) snprintf( pcBuffer, uxLength, "Errno %d", ( int32_t ) xErrnum );
                                                           ~^   ~~~~~~~~~~~~~~~~~~~
                                                           %ld

* explicitly cast arguments to format string

This should hopefully make the format string compatible
with all architectures.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Added git-secrets check to Github actions (#201)

Add header file to socket.h so that it can be compiled on its own (#204)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

User hook function for handling unsupported Ethernet frames (#200)

* Adds an optional user hook that gets called for all unhandled Ethernet frames.

* re-wording

* Fix spell check

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Limit the number of attempts to resolve an address in xARPWaitResolution() (#206)

Co-authored-by: Hein Tibosch <[email protected]>

Update litani submodule to version 1.6.0 (#210)

[CBMC] Add assert with readability check (#214)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update proof to use assert with readability check

* Revert ci.yml changes

* Remove unwanted changes

* Null check

* Fix adding NULL checks

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add unit-tests for FreeRTOS_ARP.c (#209)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

* First commit

* Cleanup

* Update: working version

* Coverage of eARPGetCacheEntry

* Update

* Unit-test and clenaup

* 100% line and function coverage

* Uncrustify and update

* 100% all coverage

* Move files to correct location

* Fix tests

* uncrustified

* Update ci.yml

* Update

* uncrustify and update after Hein's comments

* Empty commit

* Clenaup after @yanjos-dev's review

* Update CI

* Cleanup - pass 1

* Remove gdb

* Uncrustify

* Remove litani changes

* Clean up

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

DHCP unit test (#211)

Co-authored-by: Aniruddha Kanhere <[email protected]>

Repair buffer leak when replying to NBNS requests (#215)

* Repair buffer leak when replying to NBNS requests

* Applied Uncrustify

* Variable 'pxNewBuffer' was out of scope

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Static allocation, if configSUPPORT_STATIC_ALLOCATION == 1 (#208) (#217)

* Static allocation of tasks and queues, if configSUPPORT_STATIC_ALLOCATION == 1 (#208)

Is not added to any ported network interfaced.

* Build-check fix

* Uncrustify

* Uncrustify v2

* Update FreeRTOS_IP.c

Co-authored-by: Christian Jensen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Add a method to obtain the handle of the FreeRTOS+TCP IP task (#222)

* Add a method to obtain the handle of the FreeRTOS+TCP IP task

* Added the modified FreeRTOS_IP.c

* Update lexicon.txt

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Code changes for unit-testing (#223)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Make some code changes as a precursor for unit-testing

* remove unused file

* Fixed failing checks

* Fixed CBMC proof

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Use an infinite timeout in FreeRTOS_closesocket when called from a user task (#226)

Reformat MPS2_AN385 network driver (#224)

* Update the MPS2_AN385 network driver so it conforms to the +TCP coding and style guide.

* Update smsc9220_eth_drv.c

Remove #warning message erroneously left in.

Co-authored-by: alfred gedeon <[email protected]>

Uncrustify.

Uncrustify again.

Before sending a challenge ACK, check the sequence number more properly (#225)

* Before sending a challenge ACK, check the sequence number more properly

* Make xSequenceLessThan and xSequenceGreaterThan public functions

* Extended comments on two public functions.

* Fix Spell check

* Although no changes were made to MPS2_AN385, some formatting changes to that driver

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Fix Some warnings

* merge tcp_mem_stats

* Add automated uncrustify

* Un-uncrustify

* Uncrustify - manually

* Remove unused comment

* Update user to be github action

* Remove catch_assert from uncrustify

* Add comment to let user know on what to do and run uncrustify a second time

* Return a failure when uncrustify fails

* Add some more info for the user

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
alfred2g pushed a commit to alfred2g/FreeRTOS-Plus-TCP that referenced this pull request Jan 31, 2022
* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* parent be9fe45d8ec440f7750de0f4870b28de39b10a3b
author Hein Tibosch <[email protected]> 1609879469 +0800
committer Aniruddha Kanhere <[email protected]> 1619029134 -0700

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Create uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

* Remove unused file

Include ICMP while calculating IP header checksum (#198)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Include ICMP checksum

* Uncrustify

* Update ci.yml

* Spell check

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add comment to CI.yml

fix compiler warnings about casting to format string (#197)

* fix compiler warnings about casting to format string

Fix various warnings like:

/FreeRTOS-Plus-TCP/FreeRTOS_IP.c: In function 'FreeRTOS_strerror_r':
/FreeRTOS-Plus-TCP/FreeRTOS_IP.c:3395:60: error: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Werror=format=]
             ( void ) snprintf( pcBuffer, uxLength, "Errno %d", ( int32_t ) xErrnum );
                                                           ~^   ~~~~~~~~~~~~~~~~~~~
                                                           %ld

* explicitly cast arguments to format string

This should hopefully make the format string compatible
with all architectures.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Added git-secrets check to Github actions (#201)

Add header file to socket.h so that it can be compiled on its own (#204)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

User hook function for handling unsupported Ethernet frames (#200)

* Adds an optional user hook that gets called for all unhandled Ethernet frames.

* re-wording

* Fix spell check

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Limit the number of attempts to resolve an address in xARPWaitResolution() (#206)

Co-authored-by: Hein Tibosch <[email protected]>

Update litani submodule to version 1.6.0 (#210)

[CBMC] Add assert with readability check (#214)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update proof to use assert with readability check

* Revert ci.yml changes

* Remove unwanted changes

* Null check

* Fix adding NULL checks

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add unit-tests for FreeRTOS_ARP.c (#209)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

* First commit

* Cleanup

* Update: working version

* Coverage of eARPGetCacheEntry

* Update

* Unit-test and clenaup

* 100% line and function coverage

* Uncrustify and update

* 100% all coverage

* Move files to correct location

* Fix tests

* uncrustified

* Update ci.yml

* Update

* uncrustify and update after Hein's comments

* Empty commit

* Clenaup after @yanjos-dev's review

* Update CI

* Cleanup - pass 1

* Remove gdb

* Uncrustify

* Remove litani changes

* Clean up

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

DHCP unit test (#211)

Co-authored-by: Aniruddha Kanhere <[email protected]>

Repair buffer leak when replying to NBNS requests (#215)

* Repair buffer leak when replying to NBNS requests

* Applied Uncrustify

* Variable 'pxNewBuffer' was out of scope

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Static allocation, if configSUPPORT_STATIC_ALLOCATION == 1 (#208) (#217)

* Static allocation of tasks and queues, if configSUPPORT_STATIC_ALLOCATION == 1 (#208)

Is not added to any ported network interfaced.

* Build-check fix

* Uncrustify

* Uncrustify v2

* Update FreeRTOS_IP.c

Co-authored-by: Christian Jensen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Add a method to obtain the handle of the FreeRTOS+TCP IP task (#222)

* Add a method to obtain the handle of the FreeRTOS+TCP IP task

* Added the modified FreeRTOS_IP.c

* Update lexicon.txt

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Code changes for unit-testing (#223)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Make some code changes as a precursor for unit-testing

* remove unused file

* Fixed failing checks

* Fixed CBMC proof

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Use an infinite timeout in FreeRTOS_closesocket when called from a user task (#226)

Reformat MPS2_AN385 network driver (#224)

* Update the MPS2_AN385 network driver so it conforms to the +TCP coding and style guide.

* Update smsc9220_eth_drv.c

Remove #warning message erroneously left in.

Co-authored-by: alfred gedeon <[email protected]>

Uncrustify.

Uncrustify again.

Before sending a challenge ACK, check the sequence number more properly (#225)

* Before sending a challenge ACK, check the sequence number more properly

* Make xSequenceLessThan and xSequenceGreaterThan public functions

* Extended comments on two public functions.

* Fix Spell check

* Although no changes were made to MPS2_AN385, some formatting changes to that driver

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Fix Some warnings

* merge tcp_mem_stats

* Add automated uncrustify

* Un-uncrustify

* Uncrustify - manually

* Remove unused comment

* Update user to be github action

* Remove catch_assert from uncrustify

* Add comment to let user know on what to do and run uncrustify a second time

* Return a failure when uncrustify fails

* Add some more info for the user

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
alfred2g pushed a commit to alfred2g/FreeRTOS-Plus-TCP that referenced this pull request Feb 2, 2022
* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* parent be9fe45d8ec440f7750de0f4870b28de39b10a3b
author Hein Tibosch <[email protected]> 1609879469 +0800
committer Aniruddha Kanhere <[email protected]> 1619029134 -0700

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Create uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

* Remove unused file

Include ICMP while calculating IP header checksum (#198)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Include ICMP checksum

* Uncrustify

* Update ci.yml

* Spell check

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add comment to CI.yml

fix compiler warnings about casting to format string (#197)

* fix compiler warnings about casting to format string

Fix various warnings like:

/FreeRTOS-Plus-TCP/FreeRTOS_IP.c: In function 'FreeRTOS_strerror_r':
/FreeRTOS-Plus-TCP/FreeRTOS_IP.c:3395:60: error: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Werror=format=]
             ( void ) snprintf( pcBuffer, uxLength, "Errno %d", ( int32_t ) xErrnum );
                                                           ~^   ~~~~~~~~~~~~~~~~~~~
                                                           %ld

* explicitly cast arguments to format string

This should hopefully make the format string compatible
with all architectures.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Added git-secrets check to Github actions (#201)

Add header file to socket.h so that it can be compiled on its own (#204)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

User hook function for handling unsupported Ethernet frames (#200)

* Adds an optional user hook that gets called for all unhandled Ethernet frames.

* re-wording

* Fix spell check

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Limit the number of attempts to resolve an address in xARPWaitResolution() (#206)

Co-authored-by: Hein Tibosch <[email protected]>

Update litani submodule to version 1.6.0 (#210)

[CBMC] Add assert with readability check (#214)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update proof to use assert with readability check

* Revert ci.yml changes

* Remove unwanted changes

* Null check

* Fix adding NULL checks

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add unit-tests for FreeRTOS_ARP.c (#209)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

* First commit

* Cleanup

* Update: working version

* Coverage of eARPGetCacheEntry

* Update

* Unit-test and clenaup

* 100% line and function coverage

* Uncrustify and update

* 100% all coverage

* Move files to correct location

* Fix tests

* uncrustified

* Update ci.yml

* Update

* uncrustify and update after Hein's comments

* Empty commit

* Clenaup after @yanjos-dev's review

* Update CI

* Cleanup - pass 1

* Remove gdb

* Uncrustify

* Remove litani changes

* Clean up

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

DHCP unit test (#211)

Co-authored-by: Aniruddha Kanhere <[email protected]>

Repair buffer leak when replying to NBNS requests (#215)

* Repair buffer leak when replying to NBNS requests

* Applied Uncrustify

* Variable 'pxNewBuffer' was out of scope

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Static allocation, if configSUPPORT_STATIC_ALLOCATION == 1 (#208) (#217)

* Static allocation of tasks and queues, if configSUPPORT_STATIC_ALLOCATION == 1 (#208)

Is not added to any ported network interfaced.

* Build-check fix

* Uncrustify

* Uncrustify v2

* Update FreeRTOS_IP.c

Co-authored-by: Christian Jensen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Add a method to obtain the handle of the FreeRTOS+TCP IP task (#222)

* Add a method to obtain the handle of the FreeRTOS+TCP IP task

* Added the modified FreeRTOS_IP.c

* Update lexicon.txt

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Code changes for unit-testing (#223)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Make some code changes as a precursor for unit-testing

* remove unused file

* Fixed failing checks

* Fixed CBMC proof

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Use an infinite timeout in FreeRTOS_closesocket when called from a user task (#226)

Reformat MPS2_AN385 network driver (#224)

* Update the MPS2_AN385 network driver so it conforms to the +TCP coding and style guide.

* Update smsc9220_eth_drv.c

Remove #warning message erroneously left in.

Co-authored-by: alfred gedeon <[email protected]>

Uncrustify.

Uncrustify again.

Before sending a challenge ACK, check the sequence number more properly (#225)

* Before sending a challenge ACK, check the sequence number more properly

* Make xSequenceLessThan and xSequenceGreaterThan public functions

* Extended comments on two public functions.

* Fix Spell check

* Although no changes were made to MPS2_AN385, some formatting changes to that driver

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Fix Some warnings

* merge tcp_mem_stats

* Add automated uncrustify

* Un-uncrustify

* Uncrustify - manually

* Remove unused comment

* Update user to be github action

* Remove catch_assert from uncrustify

* Add comment to let user know on what to do and run uncrustify a second time

* Return a failure when uncrustify fails

* Add some more info for the user

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
alfred2g added a commit that referenced this pull request Feb 7, 2022
* ListIntegrationbytes of TCP IP / Option for Copy ClientSocket (#333)

* without the clal of vListInitialiseItem, aren't the list integrity byte set

* We need a option, that the Socketset isn't copyed to the client socket

* Uncrustify again

* Update with suggestions and uncrustify

Co-authored-by: Maurus MH. Hilber <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* IPv4/single: TCP minimum time for retransmissions (#387)

* IPv4/multi: TCP minimum time for retransmissions

* Corrected typo in a comment

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Advance litani submodule for CBMC proofs (#389)

Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update ARP cache only when necessary and use ARP cache to translate IP to MAC (#366)

* Update ARP cache only when required

* Uncrustified and added a declaration

* Add ; in declaration

* Update after @htibosch's comments

* Fix unit-tests

* Remove unused variable and add compound block

* Update version number/Manifest/History and Kernel pointer for release (#383)

* Update version/manifest/Kernel pointer

* Always prepare source tree for cbmc proofs (#395)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix constant comparison warnings (#398)

* Remove constant comparision warnings

* Fix formatting and add terminating #endif

* Add Comment triggered uncrustify script (#400)

* Add automated uncrustify

* Un-uncrustify

* Uncrustify - manually

* Remove unused comment

* Update user to be github action

* Remove catch_assert from uncrustify

* Minor changes to the GH action uncrustify (#401)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* parent be9fe45d8ec440f7750de0f4870b28de39b10a3b
author Hein Tibosch <[email protected]> 1609879469 +0800
committer Aniruddha Kanhere <[email protected]> 1619029134 -0700

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

Fix doxygen check (#149)

* Update doxygen version

* update the config file

TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

Create uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

Update uncrustify.yml

* Remove unused file

Include ICMP while calculating IP header checksum (#198)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Include ICMP checksum

* Uncrustify

* Update ci.yml

* Spell check

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add comment to CI.yml

fix compiler warnings about casting to format string (#197)

* fix compiler warnings about casting to format string

Fix various warnings like:

/FreeRTOS-Plus-TCP/FreeRTOS_IP.c: In function 'FreeRTOS_strerror_r':
/FreeRTOS-Plus-TCP/FreeRTOS_IP.c:3395:60: error: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Werror=format=]
             ( void ) snprintf( pcBuffer, uxLength, "Errno %d", ( int32_t ) xErrnum );
                                                           ~^   ~~~~~~~~~~~~~~~~~~~
                                                           %ld

* explicitly cast arguments to format string

This should hopefully make the format string compatible
with all architectures.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Added git-secrets check to Github actions (#201)

Add header file to socket.h so that it can be compiled on its own (#204)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

User hook function for handling unsupported Ethernet frames (#200)

* Adds an optional user hook that gets called for all unhandled Ethernet frames.

* re-wording

* Fix spell check

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Limit the number of attempts to resolve an address in xARPWaitResolution() (#206)

Co-authored-by: Hein Tibosch <[email protected]>

Update litani submodule to version 1.6.0 (#210)

[CBMC] Add assert with readability check (#214)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update proof to use assert with readability check

* Revert ci.yml changes

* Remove unwanted changes

* Null check

* Fix adding NULL checks

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Add unit-tests for FreeRTOS_ARP.c (#209)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Add header in the socket file

* Remove unwanted file

* remove unwanted changes

* First commit

* Cleanup

* Update: working version

* Coverage of eARPGetCacheEntry

* Update

* Unit-test and clenaup

* 100% line and function coverage

* Uncrustify and update

* 100% all coverage

* Move files to correct location

* Fix tests

* uncrustified

* Update ci.yml

* Update

* uncrustify and update after Hein's comments

* Empty commit

* Clenaup after @yanjos-dev's review

* Update CI

* Cleanup - pass 1

* Remove gdb

* Uncrustify

* Remove litani changes

* Clean up

* Uncrustify

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

DHCP unit test (#211)

Co-authored-by: Aniruddha Kanhere <[email protected]>

Repair buffer leak when replying to NBNS requests (#215)

* Repair buffer leak when replying to NBNS requests

* Applied Uncrustify

* Variable 'pxNewBuffer' was out of scope

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Static allocation, if configSUPPORT_STATIC_ALLOCATION == 1 (#208) (#217)

* Static allocation of tasks and queues, if configSUPPORT_STATIC_ALLOCATION == 1 (#208)

Is not added to any ported network interfaced.

* Build-check fix

* Uncrustify

* Uncrustify v2

* Update FreeRTOS_IP.c

Co-authored-by: Christian Jensen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Add a method to obtain the handle of the FreeRTOS+TCP IP task (#222)

* Add a method to obtain the handle of the FreeRTOS+TCP IP task

* Added the modified FreeRTOS_IP.c

* Update lexicon.txt

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

Code changes for unit-testing (#223)

* Fix compiler warnings when the TCP Window is not used (#124)

* Fix warnings when TCP window is not used

* Uncrustify

* Move local variables to inner loop in prvNetworkInterfaceInput() (#144)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update litani submodule (#147)

Co-authored-by: Mark R. Tuttle <[email protected]>

* Fix doxygen check (#149)

* Update doxygen version

* update the config file

* TCP_WIN: fix compile warning on x86_64 (#148)

* TCP_WIN: fix compile warning on x86_64

Fix the following warning when building for 64 bit:

warning: conversion from ‘long unsigned int’ to ‘uint32_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
             uint32_t ulReturn = ~0UL;
                                 ^

* Update FreeRTOS_TCP_WIN.c

Co-authored-by: Aniruddha Kanhere <[email protected]>

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix deprecated volatile compound assignment (#152)

* fixed deprecated volatile compound assignment

C++20 deprecates some undefined or unclear use cases of 'volatile' like
compound assignments and compliant compilers warn about those deprecated
operations.

In vStreamBufferMoveMid the deprecated compound assignment and other
direct accesses to volatile 'StreamBuffer_t->uxMid' is replaced using a
local variable stored back when done.

* Uncrustify

Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* FreeRTOS_ARP.c : store local addresses only (#120)

* FreeRTOS_ARP.c : store local addresses only

* Added the function xARPWaitResolution()

* Added an entry to lexicon.txt.

* Ran Uncrustify

* Update unit test file

* Update

* Declared xARPWaitResolution() in FreeRTOS_IP.h

* Compare the result of xIsCallingFromIPTask() with pdFALSE in stead of 0

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Remove unnecessary #ifndef (#186)

* Add entropy

* remove warning

* Remove unnecessary ifndef

* Remove unwanted changes

* Don't Fragment Flags patch. (#179)

* Moves all IP flag defines in FreeRTOS_IP_Private.h so that they are accessible to all protocols
Adds definitions for the IP fragmentation flags
Modifies the fragmentation check for incoming frames to drop both the first and later fragments.
Sets the "don't fragment" flag for all outgoing IP frames ( ICMP, DNS, UDP, TCP )
Removes ipGET_UDP_PAYLOAD_OFFSET_FOR_FRAGMENT as it appears obsolete. The stack never outputs fragments.

* Uncrustified

* Uncrustify

* Fixes the fragment offset and fragmentation flags masks ( 0x0FFF and 0xF000 -> 0x1FFF and 0xE000 )
Adds a configuration define ( ipconfigADVERTISE_DONT_FRAGMENT_FLAG ) as suggested by htibosch with a default value of zero for backwards compatibility
Updates the comment that explains the discarding of incoming fragments as discussed with Aniruddha Kanhere

* Adds the 'U' qualifier as requested by hs2gh
fixes a typo in FreeRTOSIPConfigDefaults.h

* Shortens the comment in FreeRTOSIPConfigDefaults as per htibosch's suggestion.

* Renames ipconfigADVERTISE_DONT_FRAGMENT to ipconfigFORCE_IP_DONT_FRAGMENT

* same as last commit, simply forgot to save this before pushing.

Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* fix IP buffer padding check on 64bit (#146)

* fix IP buffer padding check on 64bit

On 64 bit systems, FreeRTOS_IPInit() would assert
ipconfigBUFFER_PADDING was equal to 14 to "make sure there
is enough space in pucEthernetBuffer to store a pointer."

This prevents the driver from requesting additional
padding, so make the assert greater than or equal to 14.

Also use the final ipBUFFER_PADDING value instead of
ipconfigBUFFER_PADDING, which is probably what was
intended?

* Update after comments

Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update readme.md (#189)

Just fixing the "table of 3 types of STH32H7" so that it renders in github webpage.  I had a tough time reading that table until I looked at the md source.
You could also just put code fences around it:
~~~
/**
 * RAM area	H747	H743	H742	Location
 * ------------------------------------------------
 * DTCM		128k	128k	128k	0x20000000
 * AXI-SRAM	511k	511k	384k	0x24000000
 *
 * SRAM1	128k	128k	32k		0x30000000
 * SRAM2	128k	128k	16k		0x30020000
 * SRAM3	32k		32k	 	-		0x30040000
 * SRAM4	64k		64k		64k		0x38000000
 * Backup   SRAM	4k		4k	4k	0x38800000
 */
~~~

Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update files referencing aws_application_version.h to use iot_application_version.h (#188)

* Update files referencing aws_application_version.h to use iot_application_version.h

* Remove pic32 ethernet _Command_Version function to remove dependency on iot_application_version.h from amazon-freertos repository.

* Remove function defs from header files (#190)

* Add entropy

* remove warning

* Remove function defs from headers

* Some corrections

* More fixes and uncrustify

* Remove the BaseType min function

* Doxygen

* Fix one CBMC proof

* More cbmc proof fixes

* More cbmc fixes

* Some doxygen additions

* Update last CBMC proof

* Doxygen comments

* Doxygen updates

* Doxygen and spell check

* Spell check and unit-test

* Unit test fix

* Update after comments

* Update 2 after comments

* Move function around

* Uncrustify

* Update after comments

Co-authored-by: Gary Wicker <[email protected]>

* Do not release a network buffer if it equals to NULL (#191)

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Circumvent Qemu MPS2 networking bug (#142)

* Add support for MPS2 networking with lan9118/lan9220

* Fix uncrustify errors

* Enable network interrupt handling

* Add network interrupt support to Qemu MPS2 AN385

* Fix function comment

* Fix Uncrustify errors

* Fix Uncrustify errors

* Fix Uncrustify Errors

* Fix typo

* Cirumvent Qemu MPS2 network bug

* Remove commented code, add doxygen comment

* Add a project for static analysis (#195)

* Add entropy

* remove warning

* Remove unwanted changes

* Update tcp_mem_stats.c

* Add Coverity

* Remove unused files

* Add some features

* clean up

* More clean up

* Unwanted additions removal

* Clean up

* Add 32-bit compile option

* Update after comments

* Uncrustify

* Create uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Update uncrustify.yml

* Make some code changes as a precursor for unit-testing

* remove unused file

* Fixed failing checks

* Fixed CBMC proof

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Thomas Pedersen <[email protected]>
Co-authored-by: Hartmut Schaefer <[email protected]>
Co-authored-by: evpopov <[email protected]>
Co-authored-by: Emil Popov <[email protected]>
Co-authored-by: shrewmouse1 <[email protected]>
Co-authored-by: Paul Bartell <[email protected]>
Co-authored-by: Gary Wicker <[email protected]>
Co-authored-by: alfred gedeon <[email protected]>

Use an infinite timeout in FreeRTOS_closesocket when called from a user task (#226)

Reformat MPS2_AN385 network driver (#224)

* Update the MPS2_AN385 network driver so it conforms to the +TCP coding and style guide.

* Update smsc9220_eth_drv.c

Remove #warning message erroneously left in.

Co-authored-by: alfred gedeon <[email protected]>

Uncrustify.

Uncrustify again.

Before sending a challenge ACK, check the sequence number more properly (#225)

* Before sending a challenge ACK, check the sequence number more properly

* Make xSequenceLessThan and xSequenceGreaterThan public functions

* Extended comments on two public functions.

* Fix Spell check

* Although no changes were made to MPS2_AN385, some formatting changes to that driver

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Fix Some warnings

* merge tcp_mem_stats

* Add automated uncrustify

* Un-uncrustify

* Uncrustify - manually

* Remove unused comment

* Update user to be github action

* Remove catch_assert from uncrustify

* Add comment to let user know on what to do and run uncrustify a second time

* Return a failure when uncrustify fails

* Add some more info for the user

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>

* Amended ETH_DMA_IT_xxx flags in ETH_DMA_ALL_INTS (#402)

* Amended ETH_DMA_IT_xxx flags in ETH_DMA_ALL_INTS

according to the ST docs, this is a sticky bit that must be cleared
explicitly even though it is an OR of different other status bits.

* Update NetworkInterface.c

Style: Fix Formatting

Co-authored-by: alfred gedeon <[email protected]>

* Unit-tests for FreeRTOS_Sockets.c file (#407)

* Initial refactoring commit

* Uncrustified

* Update after some bug fixes

* Fix build issues

* Update build details

* Update with more refactor and first test

* Make builds pass

* Uncrustify/Add unit-test/Remove static qualifier

* Update with ~100% coverage

* ICMP coverage 100%

* Update with some reorganization

* 100% coverage utils and timers

* Add Socket unit-test 70% coverage

* Uncrustify and Add more UT coverage

* 100% coverage

* Uncrustify

* Uncrustify all files

* Try to merge main to this

* Add ignored unit-tests and reorder inclusion order

* Remove commented code from UT

* Remove kernel and stubs from coverage info

* Add briefs to all the functions.

* Update the last functions with briefs

* Uncrustify: triggered by comment.

* Fix spellings

* Break the test file in multiple files

* Fix coverage

* Uncrustify and spell check fix

* IPv4/single: TCP minimum time for retransmissions (#387)

* IPv4/multi: TCP minimum time for retransmissions

* Corrected typo in a comment

Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>

* Update version number/Manifest/History and Kernel pointer for release (#383)

* Update version/manifest/Kernel pointer

* First TCP WIN Refactor/UT

* revert kernel head

* Update kernel head

* Update FreeRTOS_IP.c

* Update FreeRTOSIPConfigDefaults.h

* Remove commented code

* Remove _static from source

* Revert _static

* Fix compilation erros when TCP_WIN = 0

Co-authored-by: fireblade156 <[email protected]>
Co-authored-by: Maurus MH. Hilber <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Aniruddha Kanhere <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Hein Tibosch <[email protected]>
Co-authored-by: Mark Tuttle <[email protected]>
Co-authored-by: Mark R. Tuttle <[email protected]>
Co-authored-by: RAc-GIT <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants