<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>skb_checksum_complete</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="Linux Networking and Network Devices APIs" /><link rel="up" href="ch01s02.html" title="Socket Buffer Functions" /><link rel="prev" href="re43.html" title="skb_get_timestamp" /><link rel="next" href="re45.html" title="struct sock_common" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>skb_checksum_complete</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re43.html">Prev</a> </td><th width="60%" align="center">Socket Buffer Functions</th><td width="20%" align="right"> <a accesskey="n" href="re45.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="skb_checksum_complete"><a id="API-skb-checksum-complete"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>skb_checksum_complete — Calculate checksum of an entire packet </p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">__sum16 <b class="fsfunc">skb_checksum_complete </b>(</code></td><td>struct sk_buff * <var class="pdparam">skb</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Arguments"><a id="id2724053"></a><h2>Arguments</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p> packet to process </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id2724079"></a><h2>Description</h2><p> This function calculates the checksum over the entire packet plus the value of skb->csum. The latter can be used to supply the checksum of a pseudo header as used by TCP/UDP. It returns the checksum. </p><p> For protocols that contain complete checksums such as ICMP/TCP/UDP, this function can be used to verify that checksum on received packets. In that case the function should return zero if the checksum is correct. In particular, this function will return zero if skb->ip_summed is CHECKSUM_UNNECESSARY which indicates that the hardware has already verified the correctness of the checksum. </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re43.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch01s02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="re45.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>skb_get_timestamp</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span>struct sock_common</span></td></tr></table></div></body></html>