From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f54.google.com (mail-wm0-f54.google.com [74.125.82.54]) by dpdk.org (Postfix) with ESMTP id 9695F2C4C for ; Tue, 8 Mar 2016 11:16:11 +0100 (CET) Received: by mail-wm0-f54.google.com with SMTP id n186so124045819wmn.1 for ; Tue, 08 Mar 2016 02:16:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:organization:user-agent :in-reply-to:references:mime-version:content-transfer-encoding; bh=lD20X/HAJUwHYphKNs9tv/BHfko5vuYt293ib4R/YVU=; b=R/KEk7uEL4+9DpG25NbAE9fPHtCa5iPbovUuyDDl6TpAyC6IynxF7Gj3EXHf2pWDSO XRmFkoaH9fX92hrcWK0uQA9zRWgeCdP4Bia1K/SHBPC36kFubhhW6fBXnytpihruTpVC AqzqQOAJ1i+BbmSifeQ3cwwj31cuRB27/BRQaeFAllIn89Sqlp+mmD0LcKM6CCttBHkL K9avkmvByMimhZCTXgfTO89ZIcFXzWbWYKPNlGKkyv8tobaeo2ZVQKp9z66+8WQHmndk xzmr9ao1k4xglSmUfkVvAA+auKt7h/4W0zgugDodyFQVI+/ffh0xQg14yHgek5qT8o0B BbCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:organization :user-agent:in-reply-to:references:mime-version :content-transfer-encoding; bh=lD20X/HAJUwHYphKNs9tv/BHfko5vuYt293ib4R/YVU=; b=NQCWe1Zg8JAOr1+g42Hrq/IG6+Z1+p6prMLw813s+qakeE/HVW94gWZtCxgIlDylGr UVHl0fyCz+BzSeR//1tuecHQSwlvTD8d6VWfRM3MoPeZkh6pb/T3M2dZAdeeG3BHh1JS bDv6oJ9TGiYbVO02I1oLZ1Mnw309+b3Y6SLveC76iCqksMDbkodrkgMejAGN7igDgOC1 z050tmGoF/XkXv65b4jcHwl2ogydR0r8nlkvTYxulVnblJ2lcWet2iX24ABwxP2QSa/q nSwHDFOsRlpnNQLK3YNaUQqinseVQDmDfmErQTOQUwVE/ieP3O2Udlz7mznNiVo0XK3p WuAw== X-Gm-Message-State: AD7BkJLhjdc6vAb8jkayYzu6kBMVQnQ5B0SmhdTO2PAnb8+u8QIgTOBiM/Omsvj8C9eYukhX X-Received: by 10.28.213.142 with SMTP id m136mr19097829wmg.24.1457432171432; Tue, 08 Mar 2016 02:16:11 -0800 (PST) Received: from xps13.localnet (171.36.101.84.rev.sfr.net. [84.101.36.171]) by smtp.gmail.com with ESMTPSA id y3sm18020277wmy.17.2016.03.08.02.16.10 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 08 Mar 2016 02:16:10 -0800 (PST) From: Thomas Monjalon To: "Dumitrescu, Cristian" Date: Tue, 08 Mar 2016 11:14:33 +0100 Message-ID: <2001717.PSgDvV64ge@xps13> Organization: 6WIND User-Agent: KMail/4.14.10 (Linux/4.1.6-1-ARCH; KDE/4.14.11; x86_64; ; ) In-Reply-To: <3EB4FA525960D640B5BDFFD6A3D8912647968D3E@IRSMSX108.ger.corp.intel.com> References: <1455707490-13826-1-git-send-email-roy.fan.zhang@intel.com> <8203471.f1i4Yl96V2@xps13> <3EB4FA525960D640B5BDFFD6A3D8912647968D3E@IRSMSX108.ger.corp.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v2 1/4] lib/librte_port: add PCAP file support to source port X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Mar 2016 10:16:11 -0000 2016-03-08 08:36, Dumitrescu, Cristian: > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > > If this struct is used in a table, changing its size will break the ABI. > > This structure is already present in the API of the source port in file librte_port/rte_port_source_sink.h, this patch is simply adding two new fields at the end of it. I think we accepted adding parameters at the end of the API parameter structures in other parts of DPDK without considering them ABI breakages? It depends of the struct but generally it is considered an ABI break. > Per Panu's previous comment, this structure is indeed used within an array of unions in the ip_pipeline application, but (1) it is very unlikely a "regular" user application will use it this same way; and (2) somebody using the ip_pipeline application will upgrade both the library and the application at the same time. > > If you guys still think this is breaking the ABI, please let us know asap and we'll go with your suggestion. Yes it is. > > More generally, are you sure of the benefits of exposing a configuration > > structure in the API? > > This is not an internal (implementation side) structure, it is the external (API side) structure with the parameters required from the user for creating this object, I am not sure I understand your comment? There are 2 ways of passing parameters: struct or individual params. By using some functions with individual params, you can avoid ABI break (see librte_compat). In this case you would have a function pcap_config(). Just an idea.