Skip to content

Commit

Permalink
Merge branch 'main' into dev-frame-filter
Browse files Browse the repository at this point in the history
  • Loading branch information
HTRamsey committed Apr 9, 2024
2 parents b5a21d1 + 1bc37d3 commit 28ae29b
Show file tree
Hide file tree
Showing 85 changed files with 15,831 additions and 910 deletions.
12 changes: 11 additions & 1 deletion .github/.cSpellWords.txt
Expand Up @@ -488,6 +488,7 @@ HASHL
HCKER
hclk
HDFC
HDLCD
hein
HFNMIENA
HFRDY
Expand Down Expand Up @@ -811,6 +812,7 @@ NOPIDEVAD
NOPRFCNT
NOTRCPKT
npacket
npuspporpl
NRZVALID
NSACR
NSID
Expand All @@ -820,6 +822,8 @@ nstat
NSUID
NSUIDE
NSUNID
NSWDRSTREQ
NSWDRSTREQEN
Nullpuc
Nullpx
numaker
Expand Down Expand Up @@ -1031,6 +1035,7 @@ RPSF
RRDPSR
RSERVED
RSTN
RSTREQEN
RTIC
RTIM
RTMIS
Expand Down Expand Up @@ -1174,6 +1179,7 @@ SLEEPONEXIT
SLEWCTL
Slirp
SLOWCLK
SLOWCLKWDRSTREQ
SMII
smlad
SMLAD
Expand Down Expand Up @@ -1284,13 +1290,15 @@ SUPPR
SUPR
SVLAN
SWDEF
SWDRSTREQ
SWFDUP
SWIER
SWINC
SWIT
SWOENA
SWOSCALER
SWRESET
SWRESETREQ
sxtab
SXTAB
sxtb
Expand Down Expand Up @@ -1511,11 +1519,13 @@ VLANE
VLANP
VLTV
VMASK
VMMPCBLKSIZE
VMRS
VMSR
vnetmask
vnetwork
VREDUCE
VSOCKET
VTIR
VTOR
wakeon
Expand Down Expand Up @@ -1565,7 +1575,7 @@ xpsr
xtopology
xtopologyp
xzvf
YA)
YA)
Zimperium
zipperowiec
Zosi
Expand Down
88 changes: 64 additions & 24 deletions .github/workflows/ci.yml
Expand Up @@ -9,7 +9,7 @@ on:

env:
bashPass: \033[32;1mPASSED -
bashWarn: \033[33;1mWARNING -
bashInfo: \033[33;1mWINFO -
bashFail: \033[31;1mFAILED -
bashEnd: \033[0m

Expand All @@ -21,24 +21,33 @@ jobs:
uses: actions/checkout@v4
with:
submodules: recursive

- env:
stepName: Build Unit Tests
stepName: Install Dependencies
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group::Install Dependencies"
git submodule update --checkout
cd tools/CMock
git submodule update --init vendor/unity
cd ../..
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
git submodule update --checkout --init --recursive
sudo apt-get update -y
sudo apt-get install -y lcov
sudo apt-get install -y unifdef
sudo apt-get install -y ninja-build
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
- env:
stepName: Build Unit Tests
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
echo "::group:: ${{ env.stepName }}"
cmake -S test/unit-test -B test/unit-test/build/ -G Ninja
cmake --build test/unit-test/build/ --target all
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -48,8 +57,10 @@ jobs:
shell: bash
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
ctest --test-dir test/unit-test/build/ -E system --output-on-failure
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -59,8 +70,10 @@ jobs:
shell: bash
run: |
# ${{ env.stepName }}
echo "::group::Build Tests"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cmake --build test/unit-test/build/ --target coverage
echo "::endgroup::"
echo -e "${{ env.bashPass }} Built Coverage Tests ${{ env.bashEnd }}"
Expand Down Expand Up @@ -142,8 +155,11 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
sudo apt-get update -y
sudo apt-get install -y libpcap-dev
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -152,9 +168,11 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL
cmake --build build --target freertos_plus_tcp_build_test
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -163,10 +181,12 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -175,9 +195,11 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV6
cmake --build build --target freertos_plus_tcp_build_test
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -186,10 +208,12 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4_IPV6
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -198,10 +222,12 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4_TCP
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -210,9 +236,11 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV6_TCP
cmake --build build --target freertos_plus_tcp_build_test
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -221,10 +249,12 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DISABLE_ALL
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -233,10 +263,12 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DEFAULT_CONF
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand Down Expand Up @@ -264,7 +296,7 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
sudo apt-get install complexity
sudo apt-get install uncrustify
echo "::endgroup::"
Expand All @@ -275,7 +307,8 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
COMPLEXITY_PARAMS="--scores --threshold=10 --horrid-threshold=283"
TEMP_DIR=./temp
mkdir -p ${TEMP_DIR}
Expand All @@ -289,6 +322,7 @@ jobs:
find ${TEMP_DIR} -iname '*.c' | xargs complexity ${COMPLEXITY_PARAMS}
RESULT=$?
rm -rf ${TEMP_DIR}
echo "::endgroup::"
if [ "${RESULT}" = "0" ]; then
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand Down Expand Up @@ -316,8 +350,10 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
cd git-secrets && sudo make install && cd ..
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -326,9 +362,11 @@ jobs:
name: ${{ env.stepName }}
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
git-secrets --register-aws
git-secrets --scan
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand All @@ -347,10 +385,12 @@ jobs:
shell: bash
run: |
# ${{ env.stepName }}
echo "::group:: ${{ env.stepName }}"
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
git submodule update --init --checkout --recursive
sudo apt-get update
sudo apt-get install --yes --no-install-recommends gcc-multilib
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -5,7 +5,7 @@ This library has undergone static code analysis and checks for compliance with t

## Getting started
The easiest way to use version 4.0.0 and later of FreeRTOS-Plus-TCP is to refer the Getting started Guide (found [here](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/GettingStarted.md))
Another way is to start with the pre-configured demo application project (found in [this directory](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator)). That way you will have the correct FreeRTOS source files included, and the correct include paths configured. Once a demo application is building and executing you can remove the demo application files, and start to add in your own application source files. See the [FreeRTOS Kernel Quick Start Guide](https://www.freertos.org/FreeRTOS-quick-start-guide.html) for detailed instructions and other useful links.
Another way is to start with the pre-configured IPv4 Windows Simulator demo (found in [this directory](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator)) or IPv6 Multi-endpoint Windows Simulator demo (found in [this directory](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_IPv6_Demo/IPv6_Multi_WinSim_demo)). That way you will have the correct FreeRTOS source files included, and the correct include paths configured. Once a demo application is building and executing you can remove the demo application files, and start to add in your own application source files. See the [FreeRTOS Kernel Quick Start Guide](https://www.freertos.org/FreeRTOS-quick-start-guide.html) for detailed instructions and other useful links.

Additionally, for FreeRTOS-Plus-TCP source code organization refer to the [Documentation](http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Networking_Tutorial.html), and [API Reference](https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/FreeRTOS_TCP_API_Functions.html).

Expand All @@ -17,7 +17,7 @@ Also see the [Submitting a bugs/feature request](https://github.com/FreeRTOS/Fre
**Note:** All the remaining sections are generic and applies to all the versions from V3.0.0 onwards.

## Upgrading to V3.0.0 and V3.1.0
In version 3.0.0 or 3.1.0, the folder structure of FreeRTOS-Plus-TCP has changed and the files have been broken down into smaller logically separated modules. This change makes the code more modular and conducive to unit-tests. FreeRTOS-Plus-TCP V3.0.0 improves the robustness, security, and modularity of the library. Version 3.0.0 adds comprehensive unit test coverage for all lines and branches of code and has undergone protocol testing, and penetration testing by AWS Security to reduce the exposure to security vulnerabilities. Additionally, the source files have been moved to a `source` directory. This change requires modification of any existing project(s) to include the modified source files and directories. There are examples on how to use the new files and directory structure. For an example based on the Xilinx Zynq-7000, use the code in this [branch](https://github.com/aws/amazon-freertos/tree/TCPRefactorDemo) and follow these [instructions](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_xilinx.html) to build and run the demo.
In version 3.0.0 or 3.1.0, the folder structure of FreeRTOS-Plus-TCP has changed and the files have been broken down into smaller logically separated modules. This change makes the code more modular and conducive to unit-tests. FreeRTOS-Plus-TCP V3.0.0 improves the robustness, security, and modularity of the library. Version 3.0.0 adds comprehensive unit test coverage for all lines and branches of code and has undergone protocol testing, and penetration testing by AWS Security to reduce the exposure to security vulnerabilities. Additionally, the source files have been moved to a `source` directory. This change requires modification of any existing project(s) to include the modified source files and directories.

**FreeRTOS-Plus-TCP V3.1.0 [source code](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/tree/V3.1.0)(.c .h) is part of the [FreeRTOS 202210.00 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202210.00-LTS) release.**

Expand Down

0 comments on commit 28ae29b

Please sign in to comment.