Wireshark-dev: [Wireshark-dev] asn2wrs #.TABLE
From: "Graeme Lunt" <graeme@xxxxxxxxxxx>
Date: Mon, 26 Nov 2007 18:38:33 +0100
Tomas, Anders,
I am trying to make the new P7 dissector table driven using the #.TABLE
directives in the conformance file, based on what I can see in the camel
dissector.
I added the following to p7.cnf (it is commented out in the checked-in
version):
# This table creates the value_sting to name P7 operation codes and errors
# in file packet-p7-table.c which is included in the template file
#
#.TABLE_HDR
/* P7 ABSTRACT-OPERATIONS */
const value_string p7_opr_code_strings[] = {
#.TABLE_BODY ABSTRACT-OPERATION
{ %(&operationCode)s, "%(_ident)s" },
#.TABLE_FTR
{ 0, NULL }
;
#.END
ABSTRACT-OPERATION is defined as:
#.CLASS ABSTRACT-OPERATION
&ArgumentType
&argumentTypeOptional BooleanType
&returnResult BooleanType
&ResultType
&resultTypeOptional BooleanType
&Errors ClassReference ERROR
&Linked ClassReference OPERATION
&synchronous BooleanType
&alwaysReturns BooleanType
&InvokePriority _FixedTypeValueSetFieldSpec
&ResultPriority _FixedTypeValueSetFieldSpec
&operationCode TypeReference Code
#.END
Now I know that I am building the table on "ABSTRACT-OPERATION" rather than
"OPERATION" and "OPERATION" seems to be hard-coded into ans2wrs, but I tried
anyway.
I get the following error (which I didn't before):
env python "../../tools/asn2wrs.py" -b -e -X -T -p p7 -c p7.cnf
-s packet-p7-template MSAbstractService.asn MSGeneralAttributeTypes.asn
MSAccessProtocol.asn
ASN.1 to Wireshark dissector compiler
Traceback (most recent call last):
File "../../tools/asn2wrs.py", line 7671, in ?
eth_main()
File "../../tools/asn2wrs.py", line 7610, in eth_main
ectx.eth_do_output()
File "../../tools/asn2wrs.py", line 1987, in eth_do_output
self.eth_output_table()
File "../../tools/asn2wrs.py", line 1846, in eth_output_table
raise sys.exc_type, "%s:%s invalid key %s for information object %s of
%s" % (rep['fn'], rep['lineno'], sys.exc_value, ident, var)
KeyError: "p7.cnf:199 invalid key '&operationCode' for information object
ms-bind of ABSTRACT-OPERATION"
This looks encouraging, as it seems to be saying that it doesn't like
ms-bind not having an operationCode.
Bind doesn't have an operation code, so I comment out this
ABSTRACT-OPERATION:
-- MS-bind abstract-operation
--ms-bind ABSTRACT-OPERATION ::= {
-- ARGUMENT MSBindArgument
-- RESULT MSBindResult
-- ERRORS {ms-bind-error}
--}
And try again:
env python "../../tools/asn2wrs.py" -b -e -X -T -p p7 -c p7.cnf
-s packet-p7-template MSAbstractService.asn MSGeneralAttributeTypes.asn
MSAccessProtocol.asn
ASN.1 to Wireshark dissector compiler
Traceback (most recent call last):
File "../../tools/asn2wrs.py", line 7671, in ?
eth_main()
File "../../tools/asn2wrs.py", line 7610, in eth_main
ectx.eth_do_output()
File "../../tools/asn2wrs.py", line 1987, in eth_do_output
self.eth_output_table()
File "../../tools/asn2wrs.py", line 1838, in eth_output_table
obj = self.get_obj_repr(ident, var_list)
File "../../tools/asn2wrs.py", line 711, in get_obj_repr
for f in val.keys():
AttributeError: 'str' object has no attribute 'keys'
It now seems to be trying to output the table - but something fundamental is
wrong.
(I'm afraid my python isn't up to debugging this.)
Any ideas where I am going wrong? Or is this not yet supported in asn2wrs?
Thanks,
Graeme
- Follow-Ups:
- Re: [Wireshark-dev] asn2wrs #.TABLE
- From: Kukosa, Tomas
- Re: [Wireshark-dev] asn2wrs #.TABLE
- Prev by Date: Re: [Wireshark-dev] [Wireshark-commits] rev 23601: /trunk/ /trunk/: capture_loop.c
- Next by Date: Re: [Wireshark-dev] [Wireshark-commits] rev 23601: /trunk/ /trunk/: capture_loop.c
- Previous by thread: Re: [Wireshark-dev] [Wireshark-commits] rev 23601: /trunk/ /trunk/: capture_loop.c
- Next by thread: Re: [Wireshark-dev] asn2wrs #.TABLE
- Index(es):