On Jan 8, 2013, at 21:07 , ext Jesse Gross wrote: > On Tue, Jan 8, 2013 at 3:41 AM, Jarno Rajahalme <jarno.rajaha...@nsn.com> > wrote: >> Userspace code will need to keep on checking for both ENODEV and ENOENT as >> long as older kernel modules are around. >> >> Signed-off-by: Jarno Rajahalme <jarno.rajaha...@nsn.com> > > OVS userspace actually uses this distinction to determine whether it > is the datapath or the port that doesn't exist. For example, see > netdev_vport_set_config(). In general, it's also usually helpful to > have more information about the cause of the error as long as it > doesn't expose implementation details.
Actually, it seems to me that netdev_vport_set_config() does the OVS_VPORT_CMD_SET based on the vport name only. In the "name" branch of the lookup_vport() ENODEV is returned if a matching vport cannot be found, i.e. ENOENT would not be returned to netdev_vport_set_config(). Also, it is the ENODEV value netdev_vport_set_config() looks for, not ENOENT. If netdev_vport_set_config() were to use ODP port number to refer to the vport, it would also need to check for ENOENT in addition to ENODEV. It is the mismatch between the name and port_no branches of lookup_vport() that triggered me to propose the change. Currently: If name is given, and no such port is found, return ENODEV if dp_ifindex is given but it does not match, return ENODEV else if port_no is given and dp (via dp_ifindex) cannot be found, return ENODEV if the dp has no port_no, return ENOENT To me this does not look right. A different value for similar error case ("valid datapath, no such port") is returned depending on whether the query is done with a name or a port_no. > > Also, would you mind keeping the subject of your patches to around 70 > characters in the future so they don't wrap? Sorry about that. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev