Show a patch.

GET /api/patches/299/
Content-Type: application/json
Vary: Accept

    "id": 299,
    "url": "",
    "web_url": "",
    "project": {
        "id": 1,
        "url": "",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "",
        "list_email": "",
        "web_url": "",
        "scm_url": "git://",
        "webscm_url": ""
    "msgid": "<>",
    "date": "2014-09-03T11:18:40",
    "name": "[dpdk-dev] eal: remove kni file from bsdapp eal",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "73fb3635cc72533bc254d947900dea8afaa8ac36",
    "submitter": {
        "id": 20,
        "url": "",
        "name": "Bruce Richardson",
        "email": ""
    "delegate": null,
    "mbox": "",
    "series": [],
    "comments": "",
    "check": "pending",
    "checks": "",
    "tags": {},
    "headers": {
        "X-Mailman-Version": "2.1.15",
        "Received": [
            "from ( [])\n\tby (Postfix) with ESMTP id D602D58EE\n\tfor <>; Wed,  3 Sep 2014 13:14:07 +0200 (CEST)",
            "from ([])\n\tby with ESMTP; 03 Sep 2014 04:10:25 -0700",
            "from ([])\n\tby with ESMTP; 03 Sep 2014 04:14:04 -0700",
            "from (\n\t[])\n\tby (8.14.3/8.13.6/MailSET/Hub) with ESMTP id\n\ts83BIfjA008399; Wed, 3 Sep 2014 12:18:41 +0100",
            "from (localhost [])\n\tby with ESMTP id s83BIfRl003123;\n\tWed, 3 Sep 2014 12:18:41 +0100",
            "(from bricha3@localhost)\n\tby with  id s83BIekj003119;\n\tWed, 3 Sep 2014 12:18:40 +0100"
        "From": "Bruce Richardson <>",
        "List-Help": "<>",
        "List-Post": "<>",
        "Message-Id": "<>",
        "List-Subscribe": "<>,\n\t<>",
        "List-Id": "patches and discussions about DPDK <>",
        "Date": "Wed,  3 Sep 2014 12:18:40 +0100",
        "Subject": "[dpdk-dev] [PATCH] eal: remove kni file from bsdapp eal",
        "Precedence": "list",
        "X-List-Received-Date": "Wed, 03 Sep 2014 11:14:08 -0000",
        "X-BeenThere": "",
        "List-Unsubscribe": "<>,\n\t<>",
        "Return-Path": "<>",
        "X-Mailer": "git-send-email",
        "X-ExtLoop1": "1",
        "List-Archive": "<>",
        "To": "",
        "X-IronPort-AV": "E=Sophos;i=\"4.97,862,1389772800\"; d=\"scan'208\";a=\"380767513\""
    "content": "KNI applies only to linux, so there should be no need for any kni files to\nbe present in the bsdapp eal folder.\n\nSigned-off-by: Bruce Richardson <>\n---\n lib/librte_eal/bsdapp/eal/Makefile                 |   2 +-\n .../bsdapp/eal/include/exec-env/rte_kni_common.h   | 166 ---------------------\n 2 files changed, 1 insertion(+), 167 deletions(-)\n delete mode 100644 lib/librte_eal/bsdapp/eal/include/exec-env/rte_kni_common.h",
    "diff": "diff --git a/lib/librte_eal/bsdapp/eal/Makefile b/lib/librte_eal/bsdapp/eal/Makefile\nindex 8f44273..876bec7 100644\n--- a/lib/librte_eal/bsdapp/eal/Makefile\n+++ b/lib/librte_eal/bsdapp/eal/Makefile\n@@ -84,7 +84,7 @@ CFLAGS_eal_thread.o += -Wno-return-type\n CFLAGS_eal_hpet.o += -Wno-return-type\n endif\n \n-INC := rte_per_lcore.h rte_lcore.h rte_interrupts.h rte_kni_common.h\n+INC := rte_per_lcore.h rte_lcore.h rte_interrupts.h\n \n SYMLINK-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP)-include/exec-env := \\\n \t$(addprefix include/exec-env/,$(INC))\ndiff --git a/lib/librte_eal/bsdapp/eal/include/exec-env/rte_kni_common.h b/lib/librte_eal/bsdapp/eal/include/exec-env/rte_kni_common.h\ndeleted file mode 100644\nindex d0b82da..0000000\n--- a/lib/librte_eal/bsdapp/eal/include/exec-env/rte_kni_common.h\n+++ /dev/null\n@@ -1,166 +0,0 @@\n-/*-\n- *   This file is provided under a dual BSD/LGPLv2 license.  When using or\n- *   redistributing this file, you may do so under either license.\n- *\n- *   GNU LESSER GENERAL PUBLIC LICENSE\n- *\n- *   Copyright(c) 2007-2014 Intel Corporation. All rights reserved.\n- *\n- *   This program is free software; you can redistribute it and/or modify\n- *   it under the terms of version 2.1 of the GNU Lesser General Public License\n- *   as published by the Free Software Foundation.\n- *\n- *   This program is distributed in the hope that it will be useful, but\n- *   WITHOUT ANY WARRANTY; without even the implied warranty of\n- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n- *   Lesser General Public License for more details.\n- *\n- *   You should have received a copy of the GNU Lesser General Public License\n- *   along with this program; if not, write to the Free Software\n- *   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.\n- *\n- *   Contact Information:\n- *   Intel Corporation\n- *\n- *\n- *   BSD LICENSE\n- *\n- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.\n- *   All rights reserved.\n- *\n- *   Redistribution and use in source and binary forms, with or without\n- *   modification, are permitted provided that the following conditions\n- *   are met:\n- *\n- *   * Redistributions of source code must retain the above copyright\n- *     notice, this list of conditions and the following disclaimer.\n- *   * Redistributions in binary form must reproduce the above copyright\n- *     notice, this list of conditions and the following disclaimer in\n- *     the documentation and/or other materials provided with the\n- *     distribution.\n- *   * Neither the name of Intel Corporation nor the names of its\n- *     contributors may be used to endorse or promote products derived\n- *     from this software without specific prior written permission.\n- *\n- *    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n- *    \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n- *    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n- *    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n- *    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n- *    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n- *    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n- *    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n- *    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n- *    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n- *    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n- *\n- */\n-\n-#ifndef _RTE_KNI_COMMON_H_\n-#define _RTE_KNI_COMMON_H_\n-\n-#ifdef __KERNEL__\n-#include <linux/if.h>\n-#endif\n-\n-/**\n- * KNI name is part of memzone name.\n- */\n-#define RTE_KNI_NAMESIZE 32\n-\n-/*\n- * Request id.\n- */\n-enum rte_kni_req_id {\n-\tRTE_KNI_REQ_UNKNOWN = 0,\n-\tRTE_KNI_REQ_CHANGE_MTU,\n-\tRTE_KNI_REQ_CFG_NETWORK_IF,\n-\tRTE_KNI_REQ_MAX,\n-};\n-\n-/*\n- * Structure for KNI request.\n- */\n-struct rte_kni_request {\n-\tuint32_t req_id;             /**< Request id */\n-\tunion {\n-\t\tuint32_t new_mtu;    /**< New MTU */\n-\t\tuint8_t if_up;       /**< 1: interface up, 0: interface down */\n-\t};\n-\tint32_t result;               /**< Result for processing request */\n-} __attribute__((__packed__));\n-\n-/*\n- * Fifo struct mapped in a shared memory. It describes a circular buffer FIFO\n- * Write and read should wrap around. Fifo is empty when write == read\n- * Writing should never overwrite the read position\n- */\n-struct rte_kni_fifo {\n-\tvolatile unsigned write;     /**< Next position to be written*/\n-\tvolatile unsigned read;      /**< Next position to be read */\n-\tunsigned len;                /**< Circular buffer length */\n-\tunsigned elem_size;          /**< Pointer size - for 32/64 bit OS */\n-\tvoid * volatile buffer[0];   /**< The buffer contains mbuf pointers */\n-};\n-\n-/*\n- * The kernel image of the rte_mbuf struct, with only the relevant fields.\n- * Padding is necessary to assure the offsets of these fields\n- */\n-struct rte_kni_mbuf {\n-\tvoid *pool;\n-\tvoid *buf_addr;\n-\tchar pad0[14];\n-\tuint16_t ol_flags;      /**< Offload features. */\n-\tvoid *next;\n-\tvoid *data;             /**< Start address of data in segment buffer. */\n-\tuint16_t data_len;      /**< Amount of data in segment buffer. */\n-\tchar pad2[2];\n-\tuint16_t pkt_len;       /**< Total pkt len: sum of all segment data_len. */\n-} __attribute__((__aligned__(64)));\n-\n-/*\n- * Struct used to create a KNI device. Passed to the kernel in IOCTL call\n- */\n-\n-struct rte_kni_device_info {\n-\tchar name[RTE_KNI_NAMESIZE];  /**< Network device name for KNI */\n-\n-\tphys_addr_t tx_phys;\n-\tphys_addr_t rx_phys;\n-\tphys_addr_t alloc_phys;\n-\tphys_addr_t free_phys;\n-\n-\t/* Used by Ethtool */\n-\tphys_addr_t req_phys;\n-\tphys_addr_t resp_phys;\n-\tphys_addr_t sync_phys;\n-\tvoid * sync_va;\n-\n-\t/* mbuf mempool */\n-\tvoid * mbuf_va;\n-\tphys_addr_t mbuf_phys;\n-\n-\t/* PCI info */\n-\tuint16_t vendor_id;           /**< Vendor ID or PCI_ANY_ID. */\n-\tuint16_t device_id;           /**< Device ID or PCI_ANY_ID. */\n-\tuint8_t bus;                  /**< Device bus */\n-\tuint8_t devid;                /**< Device ID */\n-\tuint8_t function;             /**< Device function. */\n-\n-\tuint16_t group_id;            /**< Group ID */\n-\tuint32_t core_id;             /**< core ID to bind for kernel thread */\n-\n-\tuint8_t force_bind : 1;       /**< Flag for kernel thread binding */\n-\n-\t/* mbuf size */\n-\tunsigned mbuf_size;\n-};\n-\n-#define KNI_DEVICE \"kni\"\n-\n-#define RTE_KNI_IOCTL_TEST    _IOWR(0, 1, int)\n-#define RTE_KNI_IOCTL_CREATE  _IOWR(0, 2, struct rte_kni_device_info)\n-#define RTE_KNI_IOCTL_RELEASE _IOWR(0, 3, struct rte_kni_device_info)\n-\n-#endif /* _RTE_KNI_COMMON_H_ */\n",
    "prefixes": [