DPDK patches and discussions
 help / color / mirror / Atom feed
From: "David Harton (dharton)" <dharton@cisco.com>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	"ferruh.yigit@intel.com" <ferruh.yigit@intel.com>,
	"ajit.khaparde@broadcom.com" <ajit.khaparde@broadcom.com>,
	"John Daley (johndale)" <johndale@cisco.com>,
	"konstantin.ananyev@intel.com" <konstantin.ananyev@intel.com>,
	"jingjing.wu@intel.com" <jingjing.wu@intel.com>,
	"beilei.xing@intel.com" <beilei.xing@intel.com>,
	"jing.d.chen@intel.com" <jing.d.chen@intel.com>,
	"adrien.mazarguil@6wind.com" <adrien.mazarguil@6wind.com>,
	"nelio.laranjeiro@6wind.com" <nelio.laranjeiro@6wind.com>,
	"alejandro.lucero@netronome.com" <alejandro.lucero@netronome.com>,
	"hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>,
	"rasesh.mody@cavium.com" <rasesh.mody@cavium.com>,
	"harish.patil@cavium.com" <harish.patil@cavium.com>,
	"skhare@vmware.com" <skhare@vmware.com>,
	"yliu@fridaylinux.org" <yliu@fridaylinux.org>,
	"maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>,
	"allain.legacy@windriver.com" <allain.legacy@windriver.com>
Subject: Re: [dpdk-dev] [PATCH v3] ethdev: modifiy vlan_offload_set_t to return int
Date: Fri, 1 Sep 2017 00:40:56 +0000	[thread overview]
Message-ID: <b69c194ccb304b10bffdda91d25dc376@XCH-RCD-016.cisco.com> (raw)
In-Reply-To: <2775824.X3T22OWxbu@xps>

Hi Thomas,

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Thursday, August 31, 2017 6:04 PM
> To: David Harton (dharton) <dharton@cisco.com>
> Cc: dev@dpdk.org; ferruh.yigit@intel.com; ajit.khaparde@broadcom.com; John
> Daley (johndale) <johndale@cisco.com>; konstantin.ananyev@intel.com;
> jingjing.wu@intel.com; beilei.xing@intel.com; jing.d.chen@intel.com;
> adrien.mazarguil@6wind.com; nelio.laranjeiro@6wind.com;
> alejandro.lucero@netronome.com; hemant.agrawal@nxp.com;
> rasesh.mody@cavium.com; harish.patil@cavium.com; skhare@vmware.com;
> yliu@fridaylinux.org; maxime.coquelin@redhat.com;
> allain.legacy@windriver.com
> Subject: Re: [dpdk-dev] [PATCH v3] ethdev: modifiy vlan_offload_set_t to
> return int
> 
> Hi,
> 
> 25/08/2017 15:47, David Harton:
> > Some devices may not support or fail setting VLAN offload
> > configuration based on dynamic circurmstances so the
> > vlan_offload_set_t vector is modified to return an int so
> > the caller can determine success or not.
> 
> I agree with allowing to return an error.
> 
> Comments on details below.
> 
> The title could be changed to better reflect the purpose:
> 	ethdev: allow returning error on VLAN configuration

Sure.

> 
> > --- a/doc/guides/rel_notes/release_17_11.rst
> > +++ b/doc/guides/rel_notes/release_17_11.rst
> > @@ -124,7 +124,7 @@ ABI Changes
> >     Also, make sure to start the actual text at the margin.
> >     =========================================================
> >
> > -
> > +* Changed return type of ``vlan_offload_set_t`` from ``void`` to ``int``.
> 
> It should be referenced as an API change (instead of ABI change).
> (and line spacing must be kept)

Sure I'll move it to API.

Line spacing?  You mean 80 char width?  I followed an example from a previous
release so I'm not sure what you mean.

> 
> We also need to bump the library version but it can be done with
> bigger changes in ethdev.

Ok.

> 
> > --- a/lib/librte_ether/rte_ethdev.c
> > +++ b/lib/librte_ether/rte_ethdev.c
> > @@ -2049,10 +2049,16 @@ struct rte_eth_dev *
> >  	int ret = 0;
> >  	int mask = 0;
> >  	int cur, org = 0;
> > +	uint8_t org_strip, org_filter, org_extend;
> >
> >  	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
> >  	dev = &rte_eth_devices[port_id];
> >
> > +	/* save original values in case of failure */
> > +	org_strip = dev->data->dev_conf.rxmode.hw_vlan_strip;
> > +	org_filter = dev->data->dev_conf.rxmode.hw_vlan_filter;
> > +	org_extend = dev->data->dev_conf.rxmode.hw_vlan_extend;
> 
> Please waste one more char to write "orig" instead of "org".

Will do.

> 
> > -	(*dev->dev_ops->vlan_offload_set)(dev, mask);
> > +	ret = (*dev->dev_ops->vlan_offload_set)(dev, mask);
> > +	if (ret) {
> > +		/* hit an error restore  original values */
> > +		dev->data->dev_conf.rxmode.hw_vlan_strip = org_strip;
> > +		dev->data->dev_conf.rxmode.hw_vlan_filter = org_filter;
> > +		dev->data->dev_conf.rxmode.hw_vlan_extend = org_extend;
> > +	}
> 
> Isn't it the responsibility of the PMD to restore values in case of error?
> I understand it is there to factorize error handling code, right?

By setting the dev_conf.rxmode.hw_vlan_* fields this function is claiming 
ownership of that data and therefore it should be the one to reset it.

> Do we want to document this behaviour with the ops prototype?

Why?  Shouldn't any function that doesn't do what it was asked to do 
leave the system in its original state and in fact if it doesn't that 
is when it should be documented what the behavior is?  Otherwise every 
caller has to implement some cleanup code and would have to be given 
information to know how to perform that cleanup as well which seems 
more complicated.

Thanks,
Dave

  parent reply	other threads:[~2017-09-01  0:41 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-24 23:18 [dpdk-dev] [PATCH] " David Harton
2017-08-24 23:37 ` Stephen Hemminger
2017-08-25  0:55   ` David Harton (dharton)
2017-08-25  8:20     ` Bruce Richardson
2017-08-25 13:33 ` [dpdk-dev] [PATCH v2] " David Harton
2017-08-25 13:47   ` [dpdk-dev] [PATCH v3] " David Harton
2017-08-31 22:04     ` Thomas Monjalon
2017-08-31 22:08       ` Thomas Monjalon
2017-09-01  0:40       ` David Harton (dharton) [this message]
2017-09-01  8:01         ` Thomas Monjalon
2017-09-01  2:36     ` [dpdk-dev] [PATCH v4] ethdev: allow returning error on VLAN offload configuration David Harton
2017-09-01  7:41       ` Hemant Agrawal
2017-09-01 12:54         ` David Harton (dharton)
2017-09-07  9:37           ` Hemant Agrawal
2017-09-07 12:09             ` David Harton (dharton)
2017-10-10  5:34       ` Ferruh Yigit
2017-10-10 12:20         ` David Harton (dharton)
2017-10-25  3:01       ` [dpdk-dev] [PATCH v5] ethdev: allow returning error on VLAN offload ops Ferruh Yigit
2017-10-25 22:13         ` Ferruh Yigit

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=b69c194ccb304b10bffdda91d25dc376@XCH-RCD-016.cisco.com \
    --to=dharton@cisco.com \
    --cc=adrien.mazarguil@6wind.com \
    --cc=ajit.khaparde@broadcom.com \
    --cc=alejandro.lucero@netronome.com \
    --cc=allain.legacy@windriver.com \
    --cc=beilei.xing@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=harish.patil@cavium.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=jing.d.chen@intel.com \
    --cc=jingjing.wu@intel.com \
    --cc=johndale@cisco.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=nelio.laranjeiro@6wind.com \
    --cc=rasesh.mody@cavium.com \
    --cc=skhare@vmware.com \
    --cc=thomas@monjalon.net \
    --cc=yliu@fridaylinux.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).