Thread (7 messages) 7 messages, 3 authors, 2013-06-03

Re: [PATCH net] rtnetlink: ndo_dflt_fdb_del() never works

From: Alan Robertson <hidden>
Date: 2013-05-31 19:59:10

On 05/31/2013 11:11 AM, Vlad Yasevich wrote:
On 05/31/2013 12:43 PM, Alan Robertson wrote:
quoted
On 05/31/2013 02:46 AM, David Miller wrote:
quoted
From: Alan Robertson <redacted>
Date: Thu, 30 May 2013 16:01:55 -0600
quoted
ndo_dflt_fdb_del is checking for a condition which is opposite that
which ndo_dflt_fdb_add enforces.  ndo_dflt_fdb_add declares an error
if (ndm->ndm_state && !(ndm->ndm_state) & NUD_PERMANENT)) - that
is, if the
entry is static.  This is consistent with the failure error message.

On the other hand, ndo_dflt_del() declares an error
if (ndm_state & NUD_PERMANENT) - which is inconsistent with the add
precondition, and inconsistent with its failure message text.
As it is now, you can't delete any entry which add allows to be
added -
so entry deletion always fails.

Signed-off-by: Alan Robertson <redacted>
What about the ->ndm_state part of the add() test?  Why not include
that in the del() check?
I had three different thoughts about this:
   1) Replicated the add check in the delete
   2) Do what I did - make it where you can only delete those really
marked as static
   3) Eliminate all delete checks

The problem is -- I'm not sure why the ndm->ndm_state check is in there
-- I don't know how to make that condition occur.  It has the feel of a
check to be made before things are fully initialized - or maybe even
just leftover cruft.
The test  is there to support simultaneous master and self operations.
The operation on a master may not always require a NUD_PERMANENT state
(ex: bridge) and we don't want to perform self operations in that
instance.
quoted
You could make the argument that option (3) is the best -- if it's been
added successfully, you ought to be able to delete it.
Hmm..  _del() always deletes and flags/states don't matter much
generally.  I agree that the check isn't really needed as it isn't
really protecting anything.
So is that what folks want me to do?

-- 
    Alan Robertson [off-list ref] - @OSSAlanR

"Openness is the foundation and preservative of friendship...  Let me claim from you at all times your undisguised opinions." - William Wilberforce
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help