There is no Protocol ID field in the L2TPv3 Header that identifies the encapsulated protocol.
Somehow, using preferences one specifies how to interpret the L2TPv3 payload.
So it is not possible to register a protocol based on some header-field value of L2TPv3 Header.
On Wed, Feb 25, 2009 at 1:16 PM, Guy Harris
<guy@xxxxxxxxxxxx> wrote:
On Feb 24, 2009, at 8:28 PM, Akshitij Malik wrote:
> Thanks for the info, however I do not see any dissector table
> getting registered using "register_dissector_table".
That's why I said "Currently, no, not without modifying the L2TP
dissector."
> So does one go ahead and modify the L2TP dissector code to
> register the dissector table?
Yes.
> Alternatively, I had added a string preference to take in the
> name of an alternate protocol to dissect after L2-Specific Header
> fields have been dissected. That way one can switch between multiple
> protocols on-the-fly simply by changing preferences.
>
> Comments/Suggestions welcome as to which is the best approach.
If your protocol has an L2TPv3 protocol number assigned to it, which
it always uses, the dissector table scheme means that your dissector
will be called without having to set *any* preferences; something that
doesn't require a preference is preferable to something that does.