List comments

GET /api/patches/151/comments/
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "id": 569,
        "web_url": "http://patches.dpdk.org/comment/569/",
        "msgid": "<4962829.zGcEtt7Rre@xps13>",
        "date": "2014-08-28T19:23:20",
        "subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
        "submitter": {
            "id": 1,
            "url": "http://patches.dpdk.org/api/people/1/",
            "name": "Thomas Monjalon",
            "email": "thomas.monjalon@6wind.com"
        },
        "content": "2014-08-12 23:47, Tomas Vestelind:\n> I added a function which extracts all the configured keys in a hash map.\n> This is good to have when debugging and printing data store in hash\n> maps.\n\nSomeone to review this patch, please?\n(and the other one for rte_hash_clear)",
        "headers": {
            "Return-Path": "<thomas.monjalon@6wind.com>",
            "References": "<1407880053-14650-1-git-send-email-tomas.vestelind@gmail.com>",
            "X-Mailman-Version": "2.1.15",
            "From": "Thomas Monjalon <thomas.monjalon@6wind.com>",
            "X-List-Received-Date": "Thu, 28 Aug 2014 20:54:45 -0000",
            "User-Agent": "KMail/4.13.3 (Linux/3.15.8-1-ARCH; KDE/4.13.3; x86_64; ; )",
            "List-Post": "<mailto:dev@dpdk.org>",
            "Content-Type": "text/plain; charset=\"us-ascii\"",
            "X-BeenThere": "dev@dpdk.org",
            "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:organization\n\t:user-agent:in-reply-to:references:mime-version\n\t:content-transfer-encoding:content-type;\n\tbh=T92X0Sb1LmKbmrulgwWQie3b04jseHSvAGIXcjySKL8=;\n\tb=lLFs9gWwsGv7wXSkXUNyWIw/+D3JFHP1nXIDmRx8UizX63IrB2PMWnwiAZZC0U/4xs\n\tYuaYXBFmdY1l1uF9IxJ6BoRxHaW9WrKOJdrsE+itKYqmQxQ3Y5CLjttC6AZE3QBTvwGz\n\t6B9vyUJjRYVJNjzPymUCRdATjEqwDZPWv590/yJHZhgFbharwTvzbRxi9PW8w6zaBpr+\n\tFzB4mY0Bnk21gRL6Bm/dKV2PagTvMALyZsDuGUliNwIT9hvYsYkMGnzSffeEYWNUKj8B\n\tfq/sZrfBD+vjVMwtzP5b0TsgEAgVXWEOyOTZ54rm3+pgqRbC33hbnKDB+wvPGd1lnRGr\n\tsD7w==",
            "Received": [
                "from mail-we0-f173.google.com (mail-we0-f173.google.com\n\t[74.125.82.173]) by dpdk.org (Postfix) with ESMTP id 2BF41B372\n\tfor <dev@dpdk.org>; Thu, 28 Aug 2014 22:54:45 +0200 (CEST)",
                "by mail-we0-f173.google.com with SMTP id t60so1345848wes.32\n\tfor <dev@dpdk.org>; Thu, 28 Aug 2014 13:58:55 -0700 (PDT)",
                "from xps13.localnet (136-92-190-109.dsl.ovh.fr. [109.190.92.136])\n\tby mx.google.com with ESMTPSA id\n\tgj3sm18588744wib.15.2014.08.28.13.58.54 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 28 Aug 2014 13:58:54 -0700 (PDT)"
            ],
            "Subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
            "X-Received": "by 10.180.100.196 with SMTP id fa4mr40792910wib.1.1409259535731; \n\tThu, 28 Aug 2014 13:58:55 -0700 (PDT)",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "Message-ID": "<4962829.zGcEtt7Rre@xps13>",
            "Precedence": "list",
            "X-Gm-Message-State": "ALoCoQk+FuM0kJrjN+O0E/U3qIF9OcsmpXjfvM+eqzF/ziYj9te/24JrbW7ImwxEU2+v06SACzCf",
            "Date": "Thu, 28 Aug 2014 21:23:20 +0200",
            "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
            "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
            "To": "dev@dpdk.org",
            "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
            "In-Reply-To": "<1407880053-14650-1-git-send-email-tomas.vestelind@gmail.com>",
            "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "MIME-Version": "1.0",
            "Content-Transfer-Encoding": "7Bit",
            "Organization": "6WIND"
        }
    },
    {
        "id": 570,
        "web_url": "http://patches.dpdk.org/comment/570/",
        "msgid": "<20140828153039.3c469f95@urahara>",
        "date": "2014-08-28T22:30:39",
        "subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
        "submitter": {
            "id": 27,
            "url": "http://patches.dpdk.org/api/people/27/",
            "name": "Stephen Hemminger",
            "email": "stephen@networkplumber.org"
        },
        "content": "On Tue, 12 Aug 2014 23:47:33 +0200\nTomas Vestelind <tomas.vestelind@gmail.com> wrote:\n\n> I added a function which extracts all the configured keys in a hash map.\n> This is good to have when debugging and printing data store in hash\n> maps.\n> \n> Signed-off-by: Tomas Vestelind <tomas.vestelind@gmail.com>\n> ---\n>  lib/librte_hash/rte_hash.c |   26 ++++++++++++++++++++++++++\n>  lib/librte_hash/rte_hash.h |   15 +++++++++++++++\n>  2 files changed, 41 insertions(+)\n> \n> diff --git a/lib/librte_hash/rte_hash.c b/lib/librte_hash/rte_hash.c\n> index d02b6b4..2108c4f 100644\n> --- a/lib/librte_hash/rte_hash.c\n> +++ b/lib/librte_hash/rte_hash.c\n> @@ -481,3 +481,29 @@ rte_hash_lookup_bulk(const struct rte_hash *h, const void **keys,\n>  \n>  \treturn 0;\n>  }\n> +\n> +unsigned int\n> +rte_hash_keys(const struct rte_hash *h, void *keys)\n> +{\n> +    unsigned int found_keys = 0;\n> +    unsigned int bucket, entry;\n> +\n> +    /* Go through each bucket and all its entries */\n> +    for (bucket = 0; bucket < h->num_buckets; bucket++) {\n> +        const hash_sig_t *sig = get_sig_tbl_bucket(h, bucket);\n> +\n> +        for (entry = 0; entry < h->bucket_entries; entry++) {\n> +            /* If the signature is valid, find and save the corresponding key */\n> +            if (sig[entry] != NULL_SIGNATURE) {\n> +               uint8_t *key_bucket = get_key_tbl_bucket(h, bucket);\n> +               void *key = get_key_from_bucket(h, key_bucket, entry);\n> +               rte_memcpy(keys, key, h->key_len);\n> +\n> +               keys = (uint8_t* )keys + h->key_len;\n> +               found_keys++;\n> +            }\n> +        }\n> +    }\n> +\n> +    return found_keys;\n> +}\n> diff --git a/lib/librte_hash/rte_hash.h b/lib/librte_hash/rte_hash.h\n> index 2ecaf1a..e0fb28f 100644\n> --- a/lib/librte_hash/rte_hash.h\n> +++ b/lib/librte_hash/rte_hash.h\n> @@ -303,6 +303,21 @@ rte_hash_hash(const struct rte_hash *h, const void *key)\n>  int\n>  rte_hash_lookup_bulk(const struct rte_hash *h, const void **keys,\n>  \t\t      uint32_t num_keys, int32_t *positions);\n> +\n> +/**\n> + * Copy the hash table keys to the supplied list of keys.\n> + * This operation is multi-thread safe.\n> + *\n> + * @param h\n> + *   Hash table to look in.\n> + * @param keys\n> + *   A pointer to a list of where keys will be written.\n> + *   Must be large enough to fit a potentially full hash map.\n> + * @return\n> + *   The number of found keys.\n> + */\n> +unsigned int\n> +rte_hash_keys(const struct rte_hash *h, void *keys);\n>  #ifdef __cplusplus\n>  }\n>  #endif\n\nPlease indent with tabs not spaces.\nUsing rte_memcpy() is no better than just using memcpy.\nPlease put blank line after declartions.\n\nWriting code with continue makes it easier?\n       for (entry = 0; entry < h->bucket_entries; entry++) {\n           /* If the signature is valid, find and save the corresponding key */\n           if (sig[entry] == NULL_SIGNATURE\n\t\t\tcontinue;",
        "headers": {
            "Return-Path": "<stephen@networkplumber.org>",
            "References": "<1407880053-14650-1-git-send-email-tomas.vestelind@gmail.com>",
            "X-Mailman-Version": "2.1.15",
            "Date": "Thu, 28 Aug 2014 15:30:39 -0700",
            "X-List-Received-Date": "Thu, 28 Aug 2014 22:26:33 -0000",
            "List-Post": "<mailto:dev@dpdk.org>",
            "Content-Type": "text/plain; charset=US-ASCII",
            "X-BeenThere": "dev@dpdk.org",
            "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to\n\t:references:mime-version:content-type:content-transfer-encoding;\n\tbh=MGzXORWre1qzpOn09C0NwWEQH0zXQ1HmkllccbUMW0U=;\n\tb=E48EEuT2JJz7MD/TeJap/EX+7NK2T0aUuH4KM/ZgL53ZkbkNt0vBNDew8am2CDmlkh\n\tJxW7jzPr6H2phcYKleZwHwxyOhv2T9Nn8LD32xyF0+77Ilp5HNz9XOXg5xU/FjIMx9bE\n\tFdckpTvm6YmLXPh5LkNKhs1SxErR7FBjohVP/g/dZAaQM7jcBENQyqZvJqqLpOPZzArz\n\t1hfR7WJLfnEpKrTWU+nf1MpK4ohK2KkBtYhAOFb5Ed7UzzCgmsFLGefZcCMIJDl0NEYZ\n\tqm4WzYqt8y8vjSkAoGEPANfqsEUXqnHUGMaHYBJF6fybAfU3UFbAhKbUNAtEpBa+S3jq\n\t3o1Q==",
            "Received": [
                "from mail-pa0-f41.google.com (mail-pa0-f41.google.com\n\t[209.85.220.41]) by dpdk.org (Postfix) with ESMTP id D534C590B\n\tfor <dev@dpdk.org>; Fri, 29 Aug 2014 00:26:32 +0200 (CEST)",
                "by mail-pa0-f41.google.com with SMTP id lj1so4463066pab.0\n\tfor <dev@dpdk.org>; Thu, 28 Aug 2014 15:30:42 -0700 (PDT)",
                "from urahara (static-50-53-65-80.bvtn.or.frontiernet.net.\n\t[50.53.65.80]) by mx.google.com with ESMTPSA id\n\thz1sm4578742pbb.75.2014.08.28.15.30.42 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 28 Aug 2014 15:30:42 -0700 (PDT)"
            ],
            "Subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
            "X-Received": "by 10.70.91.208 with SMTP id cg16mr10137869pdb.91.1409265042683; \n\tThu, 28 Aug 2014 15:30:42 -0700 (PDT)",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "Message-ID": "<20140828153039.3c469f95@urahara>",
            "Precedence": "list",
            "X-Gm-Message-State": "ALoCoQkjLK2EoMZ3x82mENTRXpG6oBu7CPMJJJra0g8RfDaBnddnYinTB/NHRTMD2iIuSBfB5YcV",
            "From": "Stephen Hemminger <stephen@networkplumber.org>",
            "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
            "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
            "Cc": "dev@dpdk.org",
            "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
            "In-Reply-To": "<1407880053-14650-1-git-send-email-tomas.vestelind@gmail.com>",
            "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "MIME-Version": "1.0",
            "Content-Transfer-Encoding": "7bit",
            "To": "Tomas Vestelind <tomas.vestelind@gmail.com>"
        }
    },
    {
        "id": 573,
        "web_url": "http://patches.dpdk.org/comment/573/",
        "msgid": "<2601191342CEEE43887BDE71AB9772582135F65F@IRSMSX105.ger.corp.intel.com>",
        "date": "2014-08-29T10:34:47",
        "subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
        "submitter": {
            "id": 33,
            "url": "http://patches.dpdk.org/api/people/33/",
            "name": "Ananyev, Konstantin",
            "email": "konstantin.ananyev@intel.com"
        },
        "content": "Hi Tomas,\n\n> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Tomas Vestelind\n> Sent: Tuesday, August 12, 2014 10:48 PM\n> To: dev@dpdk.org\n> Subject: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys\n> \n> I added a function which extracts all the configured keys in a hash map.\n> This is good to have when debugging and printing data store in hash\n> maps.\n> \n> Signed-off-by: Tomas Vestelind <tomas.vestelind@gmail.com>\n> ---\n>  lib/librte_hash/rte_hash.c |   26 ++++++++++++++++++++++++++\n>  lib/librte_hash/rte_hash.h |   15 +++++++++++++++\n>  2 files changed, 41 insertions(+)\n> \n> diff --git a/lib/librte_hash/rte_hash.c b/lib/librte_hash/rte_hash.c\n> index d02b6b4..2108c4f 100644\n> --- a/lib/librte_hash/rte_hash.c\n> +++ b/lib/librte_hash/rte_hash.c\n> @@ -481,3 +481,29 @@ rte_hash_lookup_bulk(const struct rte_hash *h, const void **keys,\n> \n>  \treturn 0;\n>  }\n> +\n> +unsigned int\n> +rte_hash_keys(const struct rte_hash *h, void *keys)\n> +{\n> +    unsigned int found_keys = 0;\n> +    unsigned int bucket, entry;\n> +\n> +    /* Go through each bucket and all its entries */\n> +    for (bucket = 0; bucket < h->num_buckets; bucket++) {\n> +        const hash_sig_t *sig = get_sig_tbl_bucket(h, bucket);\n> +\n> +        for (entry = 0; entry < h->bucket_entries; entry++) {\n> +            /* If the signature is valid, find and save the corresponding key */\n> +            if (sig[entry] != NULL_SIGNATURE) {\n> +               uint8_t *key_bucket = get_key_tbl_bucket(h, bucket);\n> +               void *key = get_key_from_bucket(h, key_bucket, entry);\n> +               rte_memcpy(keys, key, h->key_len);\n> +\n> +               keys = (uint8_t* )keys + h->key_len;\n> +               found_keys++;\n> +            }\n> +        }\n> +    }\n\nI suppose we need to add one extra parameter:  keys_size (size of the buffer provided) and inside the loop check that we wouldn't go beyond it.\nAlso it would probably helpful to have a function that would return to the user size of buffer needed to sore all keys from the hash.\nWhat you probably can do: implement a function that would iterate over all elements in the hash table and for each of them call a callback (taken as an argument).\nThen all these functions and rte_hash_clear() could be implemented on top of it.\nSomething like:\n\ntypedef int (*rte_hash_elem_iter_t)(const struct rte_hash*hash, const void *key, void *user_arg);\nvoid\nrte_hash_elem_iterate(const struct rte_hash *h, rte_hash_key_elem_t iter, void *arg)\n{\n   ...\n}\n\nAbout rte_hash_clear(const struct rte_hash *h) - can't we just do memset(h->sig_tbl, NULL_SIGNATURE, sig_tbl_size);?\nBTW, why it is pointer to the const strucuture if we modifying it?\n\n> +\n> +    return found_keys;\n> +}\n> diff --git a/lib/librte_hash/rte_hash.h b/lib/librte_hash/rte_hash.h\n> index 2ecaf1a..e0fb28f 100644\n> --- a/lib/librte_hash/rte_hash.h\n> +++ b/lib/librte_hash/rte_hash.h\n> @@ -303,6 +303,21 @@ rte_hash_hash(const struct rte_hash *h, const void *key)\n>  int\n>  rte_hash_lookup_bulk(const struct rte_hash *h, const void **keys,\n>  \t\t      uint32_t num_keys, int32_t *positions);\n> +\n> +/**\n> + * Copy the hash table keys to the supplied list of keys.\n> + * This operation is multi-thread safe.\n> + *\n> + * @param h\n> + *   Hash table to look in.\n> + * @param keys\n> + *   A pointer to a list of where keys will be written.\n> + *   Must be large enough to fit a potentially full hash map.\n> + * @return\n> + *   The number of found keys.\n> + */\n> +unsigned int\n> +rte_hash_keys(const struct rte_hash *h, void *keys);\n>  #ifdef __cplusplus\n>  }\n>  #endif\n> --\n> 1.7.10.4",
        "headers": {
            "Return-Path": "<konstantin.ananyev@intel.com>",
            "References": "<1407880053-14650-1-git-send-email-tomas.vestelind@gmail.com>",
            "X-Mailman-Version": "2.1.15",
            "X-IronPort-AV": "E=Sophos;i=\"5.04,424,1406617200\"; d=\"scan'208\";a=\"473765799\"",
            "From": "\"Ananyev, Konstantin\" <konstantin.ananyev@intel.com>",
            "x-originating-ip": "[163.33.239.182]",
            "List-Post": "<mailto:dev@dpdk.org>",
            "Thread-Index": "AQHPtnd97UcVno++BkOj29lgazF9aJvndLtA",
            "Content-Type": "text/plain; charset=\"us-ascii\"",
            "Thread-Topic": "[dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all\n\tkeys",
            "Accept-Language": "en-IE, en-US",
            "X-List-Received-Date": "Fri, 29 Aug 2014 10:30:41 -0000",
            "Received": [
                "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id 9F74CB373\n\tfor <dev@dpdk.org>; Fri, 29 Aug 2014 12:30:40 +0200 (CEST)",
                "from azsmga001.ch.intel.com ([10.2.17.19])\n\tby orsmga102.jf.intel.com with ESMTP; 29 Aug 2014 03:28:52 -0700",
                "from irsmsx103.ger.corp.intel.com ([163.33.3.157])\n\tby azsmga001.ch.intel.com with ESMTP; 29 Aug 2014 03:34:51 -0700",
                "from irsmsx105.ger.corp.intel.com ([169.254.7.158]) by\n\tIRSMSX103.ger.corp.intel.com ([169.254.3.112]) with mapi id\n\t14.03.0195.001; Fri, 29 Aug 2014 11:34:48 +0100"
            ],
            "Subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "Content-Language": "en-US",
            "Message-ID": "<2601191342CEEE43887BDE71AB9772582135F65F@IRSMSX105.ger.corp.intel.com>",
            "X-MS-Has-Attach": "",
            "X-BeenThere": "dev@dpdk.org",
            "Date": "Fri, 29 Aug 2014 10:34:47 +0000",
            "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
            "X-ExtLoop1": "1",
            "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
            "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
            "Precedence": "list",
            "In-Reply-To": "<1407880053-14650-1-git-send-email-tomas.vestelind@gmail.com>",
            "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "MIME-Version": "1.0",
            "Content-Transfer-Encoding": "quoted-printable",
            "To": "Tomas Vestelind <tomas.vestelind@gmail.com>,\n\t\"dev@dpdk.org\" <dev@dpdk.org>",
            "X-MS-TNEF-Correlator": ""
        }
    },
    {
        "id": 579,
        "web_url": "http://patches.dpdk.org/comment/579/",
        "msgid": "<20140829090809.2f3d42a8@urahara>",
        "date": "2014-08-29T16:08:09",
        "subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
        "submitter": {
            "id": 27,
            "url": "http://patches.dpdk.org/api/people/27/",
            "name": "Stephen Hemminger",
            "email": "stephen@networkplumber.org"
        },
        "content": "We implemented a more general hash iterator, thought the patch was already submitted.",
        "headers": {
            "Return-Path": "<stephen@networkplumber.org>",
            "References": "<1407880053-14650-1-git-send-email-tomas.vestelind@gmail.com>\n\t<2601191342CEEE43887BDE71AB9772582135F65F@IRSMSX105.ger.corp.intel.com>",
            "X-Mailman-Version": "2.1.15",
            "Date": "Fri, 29 Aug 2014 09:08:09 -0700",
            "X-List-Received-Date": "Fri, 29 Aug 2014 16:03:59 -0000",
            "List-Post": "<mailto:dev@dpdk.org>",
            "Content-Type": "text/plain; charset=US-ASCII",
            "X-BeenThere": "dev@dpdk.org",
            "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to\n\t:references:mime-version:content-type:content-transfer-encoding;\n\tbh=/MmjwiYz2t8CXWM9bUtmPdL2926E38M3s2HdRTx3rEQ=;\n\tb=aSRl8v2k1xobqx9bppuxgKTXQRLLgSqrGAi5YT/I1VvPqcPGxBBPaz4/qvrNxPfhB9\n\tdf36IRUvAs5Mg42Dv6D3B4MVpnah2IfWUFkxhCIK8GQrcId2DS6HuXcdJ2PT6vNiJk4i\n\tnUP7Txu5XezJNy+wBIN8ZfiOphQWusKcB56WmJxVyd/9L9mJlBbH4uoOi0fBUY3rcUVh\n\tpz3OyfzuyPPeOTvmw0O/wKzvMPfCLw6HjkwvxuNIpQJDCVRXH2wXXEqCNAdZGlbJ0gvI\n\tbKGuqefRm7Tn/MBtEUtofGpFFa8dVnxMuYCCh6cjfN/rGbPB8F5lyAxhJ8kHtaAvc70a\n\tVR6g==",
            "Received": [
                "from mail-pa0-f52.google.com (mail-pa0-f52.google.com\n\t[209.85.220.52]) by dpdk.org (Postfix) with ESMTP id 4DEB9B37D\n\tfor <dev@dpdk.org>; Fri, 29 Aug 2014 18:03:59 +0200 (CEST)",
                "by mail-pa0-f52.google.com with SMTP id eu11so6775334pac.11\n\tfor <dev@dpdk.org>; Fri, 29 Aug 2014 09:08:12 -0700 (PDT)",
                "from urahara (static-50-53-65-80.bvtn.or.frontiernet.net.\n\t[50.53.65.80]) by mx.google.com with ESMTPSA id\n\thp1sm280122pbb.77.2014.08.29.09.08.11 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tFri, 29 Aug 2014 09:08:12 -0700 (PDT)"
            ],
            "Subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
            "X-Received": "by 10.67.5.40 with SMTP id cj8mr16753125pad.137.1409328492476;\n\tFri, 29 Aug 2014 09:08:12 -0700 (PDT)",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "Message-ID": "<20140829090809.2f3d42a8@urahara>",
            "Precedence": "list",
            "X-Gm-Message-State": "ALoCoQnuElIR/w4XoS251z1P5aqg3CSRk7nWq2qodCX1IuxelfPP1n4bMDcPNIpFbjIikIOuKgm/",
            "From": "Stephen Hemminger <stephen@networkplumber.org>",
            "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
            "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
            "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>",
            "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
            "In-Reply-To": "<2601191342CEEE43887BDE71AB9772582135F65F@IRSMSX105.ger.corp.intel.com>",
            "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "MIME-Version": "1.0",
            "Content-Transfer-Encoding": "7bit",
            "To": "\"Ananyev, Konstantin\" <konstantin.ananyev@intel.com>"
        }
    },
    {
        "id": 614,
        "web_url": "http://patches.dpdk.org/comment/614/",
        "msgid": "<CABknXie6JUMGdscDoPsft5ot=+NvHzz-KEt-O=cGS91AckiMMA@mail.gmail.com>",
        "date": "2014-09-02T08:29:22",
        "subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
        "submitter": {
            "id": 53,
            "url": "http://patches.dpdk.org/api/people/53/",
            "name": "Tomas Vestelind",
            "email": "tomas.vestelind@gmail.com"
        },
        "content": "Hello!\n\nIf there's already an iterator then I guess this patch is superfluous.\nI tried searching for it among the e-mails but I can find it, can\nsomeone point me to it?\n\nIf you still think this has some values I will take the given feedback\nand make corrections.\n\nBest regards,\nTomas Vestelind\n\nps. Stephen sorry for the extra mail, I forgot to cc the correct\npeople in the first one.\n\nOn 8/29/14, Stephen Hemminger <stephen@networkplumber.org> wrote:\n> We implemented a more general hash iterator, thought the patch was already\n> submitted.\n>",
        "headers": {
            "Return-Path": "<tomas.vestelind@gmail.com>",
            "References": "<1407880053-14650-1-git-send-email-tomas.vestelind@gmail.com>\n\t<2601191342CEEE43887BDE71AB9772582135F65F@IRSMSX105.ger.corp.intel.com>\n\t<20140829090809.2f3d42a8@urahara>",
            "X-Mailman-Version": "2.1.15",
            "Date": "Tue, 2 Sep 2014 10:29:22 +0200",
            "X-List-Received-Date": "Tue, 02 Sep 2014 08:24:52 -0000",
            "Content-Type": "text/plain; charset=UTF-8",
            "X-BeenThere": "dev@dpdk.org",
            "Received": [
                "from mail-oi0-f50.google.com (mail-oi0-f50.google.com\n\t[209.85.218.50]) by dpdk.org (Postfix) with ESMTP id 26C595941\n\tfor <dev@dpdk.org>; Tue,  2 Sep 2014 10:24:52 +0200 (CEST)",
                "by mail-oi0-f50.google.com with SMTP id u20so4131869oif.23\n\tfor <dev@dpdk.org>; Tue, 02 Sep 2014 01:29:22 -0700 (PDT)",
                "by 10.202.75.140 with HTTP; Tue, 2 Sep 2014 01:29:22 -0700 (PDT)"
            ],
            "List-Post": "<mailto:dev@dpdk.org>",
            "Subject": "Re: [dpdk-dev] [PATCH] hash: added rte_hash_keys to extract all keys",
            "X-Received": "by 10.60.245.138 with SMTP id xo10mr3354343oec.12.1409646562301; \n\tTue, 02 Sep 2014 01:29:22 -0700 (PDT)",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "From": "Tomas Vestelind <tomas.vestelind@gmail.com>",
            "Message-ID": "<CABknXie6JUMGdscDoPsft5ot=+NvHzz-KEt-O=cGS91AckiMMA@mail.gmail.com>",
            "Precedence": "list",
            "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;\n\th=mime-version:in-reply-to:references:date:message-id:subject:from:to\n\t:cc:content-type;\n\tbh=XLi8uvkWnR8MXSnfRVmHDCRHxqgs3tss/JjVA4e38ug=;\n\tb=0iH5+3/mW85re1UvaTB2TXPjy/2rbBLSyAaAIei9yZmbUYKxjmpFhXAbKNuQFjcFK3\n\tRgLjQNct9cbRnfk3o/Blf3FoYmsEcPujyi4IpaX5q8ee5FOvkbSYtOvPTZbO9kuxLzyp\n\tLcs172TSnJiMKPWEQ3OGlEWO0+40BAtm0x5D3buOzSuehvZuetwkE63BRQXtC4QywO/p\n\tZBOugbyUeqnuxfuNa6+SHfpA3IyRwPl8kWtLqvC/EdVwWNWw6s8+RvsXK8BmLX8OFhfq\n\tLB7cISrDdt6CMhTiBecnKzToe5nJQxJr6N2LsgVPddYfuG9oP4Fh+9LNTREBTS7lxof5\n\tE2gw==",
            "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
            "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
            "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>",
            "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
            "In-Reply-To": "<20140829090809.2f3d42a8@urahara>",
            "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "MIME-Version": "1.0",
            "To": "Stephen Hemminger <stephen@networkplumber.org>"
        }
    }
]