Skip to content

Commit 0f41a12

Browse files
committed
Fix TCP checksum calculation to include Ethernet header
When ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM is 0, the TCP checksum was calculated with xDataLength that did not include the Ethernet header size, resulting in incorrect checksums on outgoing TCP packets. This fix parallels the IPv6 implementation which already correctly includes the Ethernet header size (ipSIZE_OF_ETH_HEADER) in the checksum calculation. Add regression test that verifies usGenerateProtocolChecksum is called with the correct data length (ulLen + ipSIZE_OF_ETH_HEADER).
1 parent af6b379 commit 0f41a12

File tree

145 files changed

+62808
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

145 files changed

+62808
-1
lines changed
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2+
3+
<html lang="en">
4+
5+
<head>
6+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7+
<title>LCOV - FreeRTOS-Plus-TCP 8380ab7cf9ec465c4bac07cf483498ed8ad6b22c - Annexed_TCP_Sources/FreeRTOS_BitConfig.c - functions</title>
8+
<link rel="stylesheet" type="text/css" href="../gcov.css">
9+
</head>
10+
11+
<body>
12+
13+
<table width="100%" border=0 cellspacing=0 cellpadding=0>
14+
<tr><td class="title">LCOV - code coverage report</td></tr>
15+
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
16+
17+
<tr>
18+
<td width="100%">
19+
<table cellpadding=1 border=0 width="100%">
20+
<tr>
21+
<td width="10%" class="headerItem">Current view:</td>
22+
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">Annexed_TCP_Sources</a> - FreeRTOS_BitConfig.c<span style="font-size: 80%;"> (<a href="FreeRTOS_BitConfig.c.gcov.html">source</a> / functions)</span></td>
23+
<td width="5%"></td>
24+
<td width="5%"></td>
25+
<td width="5%" class="headerCovTableHead">Coverage</td>
26+
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
27+
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
28+
</tr>
29+
<tr>
30+
<td class="headerItem">Test:</td>
31+
<td class="headerValue">FreeRTOS-Plus-TCP 8380ab7cf9ec465c4bac07cf483498ed8ad6b22c</td>
32+
<td></td>
33+
<td class="headerItem">Lines:</td>
34+
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
35+
<td class="headerCovTableEntry">87</td>
36+
<td class="headerCovTableEntry">87</td>
37+
</tr>
38+
<tr>
39+
<td class="headerItem">Test Date:</td>
40+
<td class="headerValue">2025-10-13 18:33:47</td>
41+
<td></td>
42+
<td class="headerItem">Functions:</td>
43+
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
44+
<td class="headerCovTableEntry">11</td>
45+
<td class="headerCovTableEntry">11</td>
46+
</tr>
47+
<tr>
48+
<td class="headerItem">Legend:</td>
49+
<td class="headerValueLeg"> Lines:
50+
<span class="coverLegendCov">hit</span>
51+
<span class="coverLegendNoCov">not hit</span>
52+
| Branches:
53+
<span class="coverLegendCov">+</span> taken
54+
<span class="coverLegendNoCov">-</span> not taken
55+
<span class="coverLegendNoCov">#</span> not executed
56+
</td>
57+
<td></td>
58+
<td class="headerItem">Branches:</td>
59+
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
60+
<td class="headerCovTableEntry">30</td>
61+
<td class="headerCovTableEntry">30</td>
62+
</tr>
63+
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
64+
</table>
65+
</td>
66+
</tr>
67+
68+
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
69+
</table>
70+
71+
<center>
72+
<table cellpadding=1 cellspacing=1 border=0>
73+
<tr><td><br></td></tr>
74+
<tr>
75+
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><a href="FreeRTOS_BitConfig.c.func.html"><img src="../updown.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></a></span></td>
76+
77+
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></span></td>
78+
79+
80+
</tr>
81+
<tr>
82+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L293">vBitConfig_write_16</a></td>
83+
84+
<td class="coverFnHi">2</td>
85+
86+
87+
</tr>
88+
<tr>
89+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L314">vBitConfig_write_32</a></td>
90+
91+
<td class="coverFnHi">2</td>
92+
93+
94+
</tr>
95+
<tr>
96+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L275">vBitConfig_write_8</a></td>
97+
98+
<td class="coverFnHi">2</td>
99+
100+
101+
</tr>
102+
<tr>
103+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L171">ucBitConfig_read_8</a></td>
104+
105+
<td class="coverFnHi">4</td>
106+
107+
108+
</tr>
109+
<tr>
110+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L216">ulBitConfig_read_32</a></td>
111+
112+
<td class="coverFnHi">4</td>
113+
114+
115+
</tr>
116+
<tr>
117+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L193">usBitConfig_read_16</a></td>
118+
119+
<td class="coverFnHi">4</td>
120+
121+
122+
</tr>
123+
<tr>
124+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L336">vBitConfig_release</a></td>
125+
126+
<td class="coverFnHi">6</td>
127+
128+
129+
</tr>
130+
<tr>
131+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L55">xBitConfig_init</a></td>
132+
133+
<td class="coverFnHi">6</td>
134+
135+
136+
</tr>
137+
<tr>
138+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L139">pucBitConfig_peek_last_index_uc</a></td>
139+
140+
<td class="coverFnHi">8</td>
141+
142+
143+
</tr>
144+
<tr>
145+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L244">vBitConfig_write_uc</a></td>
146+
147+
<td class="coverFnHi">12</td>
148+
149+
150+
</tr>
151+
<tr>
152+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L97">xBitConfig_read_uc</a></td>
153+
154+
<td class="coverFnHi">20</td>
155+
156+
157+
</tr>
158+
</table>
159+
<br>
160+
</center>
161+
<table width="100%" border=0 cellspacing=0 cellpadding=0>
162+
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
163+
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
164+
</table>
165+
<br>
166+
167+
</body>
168+
</html>
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2+
3+
<html lang="en">
4+
5+
<head>
6+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7+
<title>LCOV - FreeRTOS-Plus-TCP 8380ab7cf9ec465c4bac07cf483498ed8ad6b22c - Annexed_TCP_Sources/FreeRTOS_BitConfig.c - functions</title>
8+
<link rel="stylesheet" type="text/css" href="../gcov.css">
9+
</head>
10+
11+
<body>
12+
13+
<table width="100%" border=0 cellspacing=0 cellpadding=0>
14+
<tr><td class="title">LCOV - code coverage report</td></tr>
15+
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
16+
17+
<tr>
18+
<td width="100%">
19+
<table cellpadding=1 border=0 width="100%">
20+
<tr>
21+
<td width="10%" class="headerItem">Current view:</td>
22+
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">Annexed_TCP_Sources</a> - FreeRTOS_BitConfig.c<span style="font-size: 80%;"> (<a href="FreeRTOS_BitConfig.c.gcov.html">source</a> / functions)</span></td>
23+
<td width="5%"></td>
24+
<td width="5%"></td>
25+
<td width="5%" class="headerCovTableHead">Coverage</td>
26+
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
27+
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
28+
</tr>
29+
<tr>
30+
<td class="headerItem">Test:</td>
31+
<td class="headerValue">FreeRTOS-Plus-TCP 8380ab7cf9ec465c4bac07cf483498ed8ad6b22c</td>
32+
<td></td>
33+
<td class="headerItem">Lines:</td>
34+
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
35+
<td class="headerCovTableEntry">87</td>
36+
<td class="headerCovTableEntry">87</td>
37+
</tr>
38+
<tr>
39+
<td class="headerItem">Test Date:</td>
40+
<td class="headerValue">2025-10-13 18:33:47</td>
41+
<td></td>
42+
<td class="headerItem">Functions:</td>
43+
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
44+
<td class="headerCovTableEntry">11</td>
45+
<td class="headerCovTableEntry">11</td>
46+
</tr>
47+
<tr>
48+
<td class="headerItem">Legend:</td>
49+
<td class="headerValueLeg"> Lines:
50+
<span class="coverLegendCov">hit</span>
51+
<span class="coverLegendNoCov">not hit</span>
52+
| Branches:
53+
<span class="coverLegendCov">+</span> taken
54+
<span class="coverLegendNoCov">-</span> not taken
55+
<span class="coverLegendNoCov">#</span> not executed
56+
</td>
57+
<td></td>
58+
<td class="headerItem">Branches:</td>
59+
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
60+
<td class="headerCovTableEntry">30</td>
61+
<td class="headerCovTableEntry">30</td>
62+
</tr>
63+
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
64+
</table>
65+
</td>
66+
</tr>
67+
68+
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
69+
</table>
70+
71+
<center>
72+
<table cellpadding=1 cellspacing=1 border=0>
73+
<tr><td><br></td></tr>
74+
<tr>
75+
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><img src="../glass.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></span></td>
76+
77+
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><a href="FreeRTOS_BitConfig.c.func-c.html"><img src="../updown.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></a></span></td>
78+
79+
80+
</tr>
81+
<tr>
82+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L139">pucBitConfig_peek_last_index_uc</a></td>
83+
84+
<td class="coverFnHi">8</td>
85+
86+
87+
</tr>
88+
<tr>
89+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L171">ucBitConfig_read_8</a></td>
90+
91+
<td class="coverFnHi">4</td>
92+
93+
94+
</tr>
95+
<tr>
96+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L216">ulBitConfig_read_32</a></td>
97+
98+
<td class="coverFnHi">4</td>
99+
100+
101+
</tr>
102+
<tr>
103+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L193">usBitConfig_read_16</a></td>
104+
105+
<td class="coverFnHi">4</td>
106+
107+
108+
</tr>
109+
<tr>
110+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L336">vBitConfig_release</a></td>
111+
112+
<td class="coverFnHi">6</td>
113+
114+
115+
</tr>
116+
<tr>
117+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L293">vBitConfig_write_16</a></td>
118+
119+
<td class="coverFnHi">2</td>
120+
121+
122+
</tr>
123+
<tr>
124+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L314">vBitConfig_write_32</a></td>
125+
126+
<td class="coverFnHi">2</td>
127+
128+
129+
</tr>
130+
<tr>
131+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L275">vBitConfig_write_8</a></td>
132+
133+
<td class="coverFnHi">2</td>
134+
135+
136+
</tr>
137+
<tr>
138+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L244">vBitConfig_write_uc</a></td>
139+
140+
<td class="coverFnHi">12</td>
141+
142+
143+
</tr>
144+
<tr>
145+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L55">xBitConfig_init</a></td>
146+
147+
<td class="coverFnHi">6</td>
148+
149+
150+
</tr>
151+
<tr>
152+
<td class="coverFn"><a href="FreeRTOS_BitConfig.c.gcov.html#L97">xBitConfig_read_uc</a></td>
153+
154+
<td class="coverFnHi">20</td>
155+
156+
157+
</tr>
158+
</table>
159+
<br>
160+
</center>
161+
<table width="100%" border=0 cellspacing=0 cellpadding=0>
162+
<tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
163+
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
164+
</table>
165+
<br>
166+
167+
</body>
168+
</html>

0 commit comments

Comments
 (0)