On Sat, Mar 11, 2006 at 08:30:49AM -0500, jamal wrote: > On Fri, 2006-10-03 at 22:09 +0530, Balbir Singh wrote: > > On Fri, Mar 10, 2006 at 09:53:53AM -0500, jamal wrote: > > > > On kernel->user (in the case of response to #a or async notifiation as > > > in #b) you really dont need to specify the TG/PID since they appear in > > > the STATS etc. > > > > I see your point now. I am looking at other users of netlink like > > rtnetlink and I see the classical usage. > > > > We can implement TLV's in our code, but for the most part the data we > > exchange > > between the user <-> kernel has all the TLV's listed in the enum above. > > > > The major differnece is the type (pid/tgid). Hence we created a structure > > (taskstats) instead of using TLV's. > > Something to remember: > > 1) TLVs are essentially giving you the flexibility to send optionally > appearing elements. It is up to the receiver (in the kernel or user > space) to check for the presence of mandatory elements or execute things > depending on the presence of certain TLVs. Example in your case: > if the tgid TLV appears then the user is requesting for that TLV > if the pid appears then they are requesting for that > if both appear then it is the && of the two. > You should always ignore TLVs you dont understand - to allow for forward > compatibility. > > 2) The "T" part is essentially also encoding (semantically) what size > the value is; the "L" part is useful for validation. So the receiver > will always know what the size of the TLV is by definition and uses the > L to make sure it is the right size. Reject what is of the wrong size. > > cheers, > jamal
Thanks for the clarification, I will try and adapt our genetlink to use TLV's, I can see the benefits - we will work on this as an evolutionary change to our code. Warm Regards, Balbir - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html