Thank you for the clarification. On Mon, 8 Jul 2019 at 01:04, Murphy McCauley <murphy.mccau...@gmail.com> wrote:
> The constructor arguments are basically the same for all classes in the > packet library. > > raw is used if you are parsing a raw packet that's held in a bytes/str > object. > prev is mostly used internally to build chains of packet headers. That > is, since most packet headers are preceded by other packet headers, a > packet's .prev usually points to the preceding one. But most of the time > you don't manually set it in the constructor; usually the right thing > happens without you having to worry about it. > > If you're constructing a packet from scratch, you use keyword arguments. > This isn't that useful for LLDP packets. It's more useful for things like > TCP packets. It's more or less a shortcut so that you can do things like: > mypacket = foo(bar = 42) > > Instead of: > mypacket = foo() > foo.bar = 42 > > LLDP packets don't really have many fields, though. They're basically > just a list of TLVs. So the more common way to use it is just to create an > empty LLDP header and append TLVs. discovery does this, for example: > https://github.com/noxrepo/pox/blob/eel/pox/openflow/discovery.py#L189 > > -- Murphy > > On Sun, Jul 7, 2019 at 6:01 AM AASIF MNIT <aasifm...@gmail.com> wrote: > >> The following is code from lldp.py, I am unable to get use of parameters >> used in methods, please help me. >> >> >> def __init__ (self, raw=None, prev=None, **kw): >> packet_base.__init__(self) >> >> self.prev = prev >> >> self.next = None >> self.tlvs = [] >> >> if raw is not None: >> self.parse(raw) >> >> self._init(kw) >> >