En Tue, 13 Mar 2007 03:13:37 -0300, jezzzz . <[EMAIL PROTECTED]> escribió:
> I added the self parameter to the the chassis_id function, however I now > have a problem and question regarding encoding MAC addresses for a > struct. What string format am I supposed to use? py> data = [int(x,16) for x in "2A:3B:01:9C:04:F0".split(":")] py> print data [42, 59, 1, 156, 4, 240] py> struct.pack("6B", *data) '*;\x01\x9c\x04\xf0' That is: take the string "2A:3B:01:9C:04:F0", split it in parts at each ":", iterate over them converting from hex to integer; the resulting list is called data. Then, pack the numbers using "6B" format. > Also, I think I will get rid of Scapy in my small program. Any > references I can use to easily send (no need to receive) a packet with a > Layer 1 and 2 only? (i.e. only Ethernet and LLDP - no need for IP, UDP, > TCP etc. I wish to create something like Ethernet | LLDP msg1 | LLDP > msg2 | ... | LLDP msgn) I don't think you can do that with Python alone - that is, without using some other specific tool like scapy. > class lldp_class: Usually classes have UppercaseWords, and omit the word "class". But since LLDP would be all uppercase, maybe another name would be better. You appear to be storing just a few attributes, not implementing that protocol, so maybe LLDPInfo might be used. > def chassis_id(self, subtype, chassis_info): > > if subtype == 4: > > chassis_data = struct.pack("!B",chassis_info) > > subtype_data = struct.pack("!B",subtype) > > self.chassis_id_tlv = subtype_data + chassis_data What should happen when subtipe is not 4? (Currently you get an error). -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list