All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: Olivier Matz <olivier.matz@6wind.com>,
	dev@dpdk.org, yuanhan.liu@linux.intel.com
Cc: konstantin.ananyev@intel.com, sugesh.chandran@intel.com,
	bruce.richardson@intel.com, jianfeng.tan@intel.com,
	helin.zhang@intel.com, adrien.mazarguil@6wind.com,
	stephen@networkplumber.org, dprovan@bivio.net,
	xiao.w.wang@intel.com
Subject: Re: [PATCH v2 04/12] net: add function to calculate a checksum in a mbuf
Date: Tue, 11 Oct 2016 15:25:34 +0200	[thread overview]
Message-ID: <b2d7d636-657d-b7da-80ce-97ca1300911e@redhat.com> (raw)
In-Reply-To: <1475485223-30566-5-git-send-email-olivier.matz@6wind.com>



On 10/03/2016 11:00 AM, Olivier Matz wrote:
> This function can be used to calculate the checksum of data embedded in
> mbuf, that can be composed of several segments.
>
> This function will be used by the virtio pmd in next commits to calculate
> the checksum in software in case the protocol is not recognized.
>
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> ---
>  doc/guides/rel_notes/release_16_11.rst |  5 +++
>  lib/librte_net/rte_ip.h                | 60 ++++++++++++++++++++++++++++++++++
>  2 files changed, 65 insertions(+)
>
> diff --git a/doc/guides/rel_notes/release_16_11.rst b/doc/guides/rel_notes/release_16_11.rst
> index 3d3c417..f29b44c 100644
> --- a/doc/guides/rel_notes/release_16_11.rst
> +++ b/doc/guides/rel_notes/release_16_11.rst
> @@ -55,6 +55,11 @@ New Features
>    Added two new functions ``rte_get_rx_ol_flag_list()`` and
>    ``rte_get_tx_ol_flag_list()`` to dump offload flags as a string.
>
> +* **Added a functions to calculate the checksum of data in a mbuf.**
> +
> +  Added a new function ``rte_raw_cksum_mbuf()`` to process the checksum of
> +  data embedded in an mbuf chain.
> +
>  Resolved Issues
>  ---------------
>
> diff --git a/lib/librte_net/rte_ip.h b/lib/librte_net/rte_ip.h
> index 5b7554a..8499356 100644
> --- a/lib/librte_net/rte_ip.h
> +++ b/lib/librte_net/rte_ip.h
> @@ -230,6 +230,66 @@ rte_raw_cksum(const void *buf, size_t len)
>  }
>
>  /**
> + * Compute the raw (non complemented) checksum of a packet.
> + *
> + * @param m
> + *   The pointer to the mbuf.
> + * @param off
> + *   The offset in bytes to start the checksum.
> + * @param len
> + *   The length in bytes of the data to ckecksum.
> + */
> +static inline uint16_t
> +rte_raw_cksum_mbuf(const struct rte_mbuf *m, uint32_t off, uint32_t len)
> +{
> +	const struct rte_mbuf *seg;
> +	const char *buf;
> +	uint32_t sum, tmp;
> +	uint32_t seglen, done;
> +
> +	/* easy case: all data in the first segment */
> +	if (off + len <= rte_pktmbuf_data_len(m))
> +		return rte_raw_cksum(rte_pktmbuf_mtod_offset(m,
> +				const char *, off), len);
> +
> +	if (off + len > rte_pktmbuf_pkt_len(m))
unlikely?
> +		return 0; /* invalid params, return a dummy value */
Couldn't be better to return an error, so that the caller has a chance
to see it is passing wrong arguments?
The csum would be passed as an arg.

Thanks,
Maxime

  reply	other threads:[~2016-10-11 13:25 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-21  8:08 [PATCH 00/12] net/virtio: add offload support Olivier Matz
2016-07-21  8:08 ` [PATCH 01/12] virtio: move device initialization in a function Olivier Matz
2016-07-21  8:08 ` [PATCH 02/12] virtio: setup and start cq in configure callback Olivier Matz
2016-07-21 21:15   ` Stephen Hemminger
2016-07-22  7:54     ` Olivier Matz
2016-07-21  8:08 ` [PATCH 03/12] virtio: reinitialize the device " Olivier Matz
2016-07-21  8:08 ` [PATCH 04/12] mbuf: add function to calculate a checksum Olivier Matz
2016-07-21 10:51   ` Ananyev, Konstantin
2016-07-21 16:26     ` Don Provan
2016-07-21 16:46       ` Olivier Matz
2016-07-22  8:24     ` Olivier Matz
2016-08-29 14:52       ` Olivier Matz
2016-07-21  8:08 ` [PATCH 05/12] mbuf: add new Rx checksum mbuf flags Olivier Matz
2016-07-21 21:22   ` Stephen Hemminger
2016-07-22  8:03     ` Olivier Matz
2016-07-21  8:08 ` [PATCH 06/12] app/testpmd: fix checksum stats in csum engine Olivier Matz
2016-07-21  8:08 ` [PATCH 07/12] mbuf: new flag for LRO Olivier Matz
2016-07-21  8:08 ` [PATCH 08/12] app/testpmd: display lro segment size Olivier Matz
2016-07-21  8:08 ` [PATCH 09/12] virtio: add Rx checksum offload support Olivier Matz
2016-07-27  9:52   ` Wang, Xiao W
2016-07-21  8:08 ` [PATCH 10/12] virtio: add Tx " Olivier Matz
2016-07-21  8:08 ` [PATCH 11/12] virtio: add Lro support Olivier Matz
2016-07-21  8:08 ` [PATCH 12/12] virtio: add Tso support Olivier Matz
2016-10-03  9:00 ` [PATCH v2 00/12] net/virtio: add offload support Olivier Matz
2016-10-03  9:00   ` [PATCH v2 01/12] virtio: move device initialization in a function Olivier Matz
2016-10-11 12:30     ` Maxime Coquelin
2016-10-03  9:00   ` [PATCH v2 02/12] virtio: setup and start cq in configure callback Olivier Matz
2016-10-11 12:47     ` Maxime Coquelin
2016-10-03  9:00   ` [PATCH v2 03/12] virtio: reinitialize the device " Olivier Matz
2016-10-11 13:13     ` Maxime Coquelin
2016-10-12 14:41     ` Yuanhan Liu
2016-10-12 16:01       ` Olivier MATZ
2016-10-13  7:54         ` Yuanhan Liu
2016-10-13 13:57           ` Olivier MATZ
2016-10-03  9:00   ` [PATCH v2 04/12] net: add function to calculate a checksum in a mbuf Olivier Matz
2016-10-11 13:25     ` Maxime Coquelin [this message]
2016-10-11 13:33       ` Olivier MATZ
2016-10-03  9:00   ` [PATCH v2 05/12] mbuf: add new Rx checksum mbuf flags Olivier Matz
2016-10-11 13:43     ` Maxime Coquelin
2016-10-03  9:00   ` [PATCH v2 06/12] app/testpmd: fix checksum stats in csum engine Olivier Matz
2016-10-11 13:46     ` Maxime Coquelin
2016-10-03  9:00   ` [PATCH v2 07/12] mbuf: new flag for LRO Olivier Matz
2016-10-11 13:48     ` Maxime Coquelin
2016-10-03  9:00   ` [PATCH v2 08/12] app/testpmd: display lro segment size Olivier Matz
2016-10-11 13:49     ` Maxime Coquelin
2016-10-03  9:00   ` [PATCH v2 09/12] virtio: add Rx checksum offload support Olivier Matz
2016-10-03 12:51     ` Maxime Coquelin
2016-10-05 11:56       ` Olivier Matz
2016-10-05 13:27         ` Maxime Coquelin
2016-10-05 13:30           ` Olivier Matz
2016-10-12 13:02           ` Yuanhan Liu
2016-10-12 15:55             ` Olivier MATZ
2016-10-11 14:04     ` Maxime Coquelin
2016-10-11 14:29       ` Olivier MATZ
2016-10-11 14:36         ` Maxime Coquelin
2016-10-11 14:49           ` Olivier MATZ
2016-10-03  9:00   ` [PATCH v2 10/12] virtio: add Tx " Olivier Matz
2016-10-07  7:25     ` Maxime Coquelin
2016-10-07 16:36       ` Olivier Matz
2016-10-13  8:38     ` Yuanhan Liu
2016-10-13 13:58       ` Olivier MATZ
2016-10-03  9:00   ` [PATCH v2 11/12] virtio: add Lro support Olivier Matz
2016-10-11 14:21     ` Maxime Coquelin
2016-10-03  9:00   ` [PATCH v2 12/12] virtio: add Tso support Olivier Matz
2016-10-13  8:18     ` Yuanhan Liu
2016-10-13 14:02       ` Olivier MATZ
2016-10-13 14:16         ` Yuanhan Liu
2016-10-13 14:52           ` Olivier MATZ
2016-10-13 15:01             ` Yuanhan Liu
2016-10-13 15:15               ` Olivier MATZ
2016-10-13 15:29                 ` Yuanhan Liu
2016-10-13 15:45                   ` Olivier Matz
2016-10-13 16:01                     ` Yuanhan Liu
2016-10-13 15:04             ` Yuanhan Liu
2016-10-13 23:33       ` Stephen Hemminger
2016-10-18 14:07         ` Olivier Matz
2016-10-11 11:35   ` [PATCH v2 00/12] net/virtio: add offload support Yuanhan Liu
2016-10-11 12:14     ` Olivier MATZ
2016-10-11 15:37       ` Yuanhan Liu
2016-10-13 14:15 ` [PATCH v3 " Olivier Matz
2016-10-13 14:16   ` [PATCH v3 01/12] net/virtio: move device initialization in a function Olivier Matz
2016-10-13 14:16   ` [PATCH v3 02/12] net/virtio: setup and start cq in configure callback Olivier Matz
2016-11-02  1:38     ` Yao, Lei A
2016-11-08 14:58       ` Olivier Matz
2016-10-13 14:16   ` [PATCH v3 03/12] net/virtio: reinitialize the device " Olivier Matz
2016-10-13 14:16   ` [PATCH v3 04/12] net: add function to calculate a checksum in a mbuf Olivier Matz
2016-10-13 14:16   ` [PATCH v3 05/12] mbuf: add new Rx checksum mbuf flags Olivier Matz
2016-10-13 14:16   ` [PATCH v3 06/12] app/testpmd: adapt checksum stats in csum engine Olivier Matz
2016-10-13 14:16   ` [PATCH v3 07/12] mbuf: new flag for LRO Olivier Matz
2016-10-13 14:16   ` [PATCH v3 08/12] app/testpmd: display lro segment size Olivier Matz
2016-10-13 14:16   ` [PATCH v3 09/12] net/virtio: add Rx checksum offload support Olivier Matz
2016-10-13 14:16   ` [PATCH v3 10/12] net/virtio: add Tx " Olivier Matz
2016-10-13 14:16   ` [PATCH v3 11/12] net/virtio: add Lro support Olivier Matz
2016-10-13 14:16   ` [PATCH v3 12/12] net/virtio: add Tso support Olivier Matz
2016-10-13 16:05     ` Yuanhan Liu
2016-10-13 18:50       ` Thomas Monjalon
2016-10-13 19:58         ` Olivier Matz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b2d7d636-657d-b7da-80ce-97ca1300911e@redhat.com \
    --to=maxime.coquelin@redhat.com \
    --cc=adrien.mazarguil@6wind.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=dprovan@bivio.net \
    --cc=helin.zhang@intel.com \
    --cc=jianfeng.tan@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=olivier.matz@6wind.com \
    --cc=stephen@networkplumber.org \
    --cc=sugesh.chandran@intel.com \
    --cc=xiao.w.wang@intel.com \
    --cc=yuanhan.liu@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.