diff --git a/launch/tier4_system_launch/config/system_monitor/net_monitor.param.yaml b/launch/tier4_system_launch/config/system_monitor/net_monitor.param.yaml
index f8dc832d7b2f2..e91aa4ca3fbb3 100644
--- a/launch/tier4_system_launch/config/system_monitor/net_monitor.param.yaml
+++ b/launch/tier4_system_launch/config/system_monitor/net_monitor.param.yaml
@@ -3,3 +3,5 @@
devices: ["*"]
traffic_reader_port: 7636
monitor_program: "greengrass"
+ crc_error_check_duration: 1
+ crc_error_count_threshold: 1
diff --git a/system/system_error_monitor/config/diagnostic_aggregator/system.param.yaml b/system/system_error_monitor/config/diagnostic_aggregator/system.param.yaml
index af6b9ab8a64c2..290a272eb2605 100644
--- a/system/system_error_monitor/config/diagnostic_aggregator/system.param.yaml
+++ b/system/system_error_monitor/config/diagnostic_aggregator/system.param.yaml
@@ -122,6 +122,12 @@
contains: [": Network Traffic"]
timeout: 3.0
+ netowork_crc_error:
+ type: diagnostic_aggregator/GenericAnalyzer
+ path: network_crc_error
+ contains: [": Network CRC Error"]
+ timeout: 3.0
+
storage:
type: diagnostic_aggregator/AnalyzerGroup
path: storage
diff --git a/system/system_monitor/README.md b/system/system_monitor/README.md
index 79f390a80d7e7..6a776a51bb6d0 100644
--- a/system/system_monitor/README.md
+++ b/system/system_monitor/README.md
@@ -53,28 +53,29 @@ Every topic is published in 1 minute interval.
[Usage] ✓:Supported, -:Not supported
-| Node | Message | Intel | arm64(tegra) | arm64(raspi) | Notes |
-| --------------- | ---------------------- | :---: | :----------: | :----------: | ------------------------------------------------------------- |
-| CPU Monitor | CPU Temperature | ✓ | ✓ | ✓ | |
-| | CPU Usage | ✓ | ✓ | ✓ | |
-| | CPU Load Average | ✓ | ✓ | ✓ | |
-| | CPU Thermal Throttling | ✓ | - | ✓ | |
-| | CPU Frequency | ✓ | ✓ | ✓ | Notification of frequency only, normally error not generated. |
-| HDD Monitor | HDD Temperature | ✓ | ✓ | ✓ | |
-| | HDD PowerOnHours | ✓ | ✓ | ✓ | |
-| | HDD TotalDataWritten | ✓ | ✓ | ✓ | |
-| | HDD Usage | ✓ | ✓ | ✓ | |
-| Memory Monitor | Memory Usage | ✓ | ✓ | ✓ | |
-| Net Monitor | Network Usage | ✓ | ✓ | ✓ | |
-| NTP Monitor | NTP Offset | ✓ | ✓ | ✓ | |
-| Process Monitor | Tasks Summary | ✓ | ✓ | ✓ | |
-| | High-load Proc[0-9] | ✓ | ✓ | ✓ | |
-| | High-mem Proc[0-9] | ✓ | ✓ | ✓ | |
-| GPU Monitor | GPU Temperature | ✓ | ✓ | - | |
-| | GPU Usage | ✓ | ✓ | - | |
-| | GPU Memory Usage | ✓ | - | - | |
-| | GPU Thermal Throttling | ✓ | - | - | |
-| | GPU Frequency | - | ✓ | - | |
+| Node | Message | Intel | arm64(tegra) | arm64(raspi) | Notes |
+| --------------- | ---------------------- | :---: | :----------: | :----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| CPU Monitor | CPU Temperature | ✓ | ✓ | ✓ | |
+| | CPU Usage | ✓ | ✓ | ✓ | |
+| | CPU Load Average | ✓ | ✓ | ✓ | |
+| | CPU Thermal Throttling | ✓ | - | ✓ | |
+| | CPU Frequency | ✓ | ✓ | ✓ | Notification of frequency only, normally error not generated. |
+| HDD Monitor | HDD Temperature | ✓ | ✓ | ✓ | |
+| | HDD PowerOnHours | ✓ | ✓ | ✓ | |
+| | HDD TotalDataWritten | ✓ | ✓ | ✓ | |
+| | HDD Usage | ✓ | ✓ | ✓ | |
+| Memory Monitor | Memory Usage | ✓ | ✓ | ✓ | |
+| Net Monitor | Network Usage | ✓ | ✓ | ✓ | |
+| | Network CRC Error | ✓ | ✓ | ✓ | Warning occurs when the number of CRC errors in the period reaches the threshold value. The number of CRC errors that occur is the same as the value that can be confirmed with the ip command. |
+| NTP Monitor | NTP Offset | ✓ | ✓ | ✓ | |
+| Process Monitor | Tasks Summary | ✓ | ✓ | ✓ | |
+| | High-load Proc[0-9] | ✓ | ✓ | ✓ | |
+| | High-mem Proc[0-9] | ✓ | ✓ | ✓ | |
+| GPU Monitor | GPU Temperature | ✓ | ✓ | - | |
+| | GPU Usage | ✓ | ✓ | - | |
+| | GPU Memory Usage | ✓ | - | - | |
+| | GPU Thermal Throttling | ✓ | - | - | |
+| | GPU Frequency | - | ✓ | - | |
## ROS parameters
diff --git a/system/system_monitor/config/net_monitor.param.yaml b/system/system_monitor/config/net_monitor.param.yaml
index 953d32d788ccf..686ee349b0765 100644
--- a/system/system_monitor/config/net_monitor.param.yaml
+++ b/system/system_monitor/config/net_monitor.param.yaml
@@ -3,3 +3,5 @@
devices: ["*"]
traffic_reader_port: 7636
monitor_program: "greengrass"
+ crc_error_check_duration: 1
+ crc_error_count_threshold: 1
diff --git a/system/system_monitor/docs/ros_parameters.md b/system/system_monitor/docs/ros_parameters.md
index 779297492e00a..044c1eb10a5d0 100644
--- a/system/system_monitor/docs/ros_parameters.md
+++ b/system/system_monitor/docs/ros_parameters.md
@@ -53,10 +53,12 @@ mem_monitor:
net_monitor:
-| Name | Type | Unit | Default | Notes |
-| :--------- | :----------: | :-----: | :-----: | :----------------------------------------------------------------------------------- |
-| devices | list[string] | n/a | none | The name of network interface to monitor. (e.g. eth0, \* for all network interfaces) |
-| usage_warn | float | %(1e-2) | 0.95 | Generates warning when network usage reaches a specified value or higher. |
+| Name | Type | Unit | Default | Notes |
+| :------------------------ | :----------: | :-----: | :-----: | :-------------------------------------------------------------------------------------------------------------- |
+| devices | list[string] | n/a | none | The name of network interface to monitor. (e.g. eth0, \* for all network interfaces) |
+| usage_warn | float | %(1e-2) | 0.95 | Generates warning when network usage reaches a specified value or higher. |
+| crc_error_check_duration | int | sec | 1 | CRC error check duration. |
+| crc_error_count_threshold | int | n/a | 1 | Generates warning when count of CRC errors during CRC error check duration reaches a specified value or higher. |
## NTP Monitor
diff --git a/system/system_monitor/docs/topics_net_monitor.md b/system/system_monitor/docs/topics_net_monitor.md
index 36fdeea890e6a..261cede53de21 100644
--- a/system/system_monitor/docs/topics_net_monitor.md
+++ b/system/system_monitor/docs/topics_net_monitor.md
@@ -63,3 +63,21 @@
| key | value (example) |
| ----- | ----------------------------------------------------- |
| error | [nethogs -t] execve failed: No such file or directory |
+
+## Network CRC Error
+
+/diagnostics/net_monitor: Network CRC Error
+
+[summary]
+
+| level | message |
+| ----- | ------- |
+| OK | OK |
+
+[values]
+
+| key | value (example) |
+| ------------------------------------------ | --------------- |
+| Network [0-9]: interface name | wlp82s0 |
+| Network [0-9]: total rx_crc_errors | 0 |
+| Network [0-9]: rx_crc_errors per unit time | 0 |
diff --git a/system/system_monitor/include/system_monitor/net_monitor/net_monitor.hpp b/system/system_monitor/include/system_monitor/net_monitor/net_monitor.hpp
index 8aafb4b08b083..53f3e1250c9f0 100644
--- a/system/system_monitor/include/system_monitor/net_monitor/net_monitor.hpp
+++ b/system/system_monitor/include/system_monitor/net_monitor/net_monitor.hpp
@@ -25,6 +25,7 @@
#include
#include
+#include
#include