VPP-233: disallow array[0] in reply messages

- updates jvpp generator to raise exception
  if array[0] is present in reply/detail/counter message

- fixes vpe.api reply/detail/counter messages
  that use incorrect variable array syntax.

Additional info:

Variable arrays in reply/detail/counter messages needs to have
lenght defined in other variable within the message.
The other variable can have any name, so it is impossible to
generate Java/Python code handling.

New syntax introduced by
https://gerrit.fd.io/r/#/c/1617/
fixes the problem:

u32 some_var;
XX array[some_var];

Change-Id: I0af50f1ef1d94d95b56d9326d4e944e72b4edcdd
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
This commit is contained in:
Marek Gradzki
2016-08-03 10:32:50 +02:00
parent 5ca5dc8651
commit 8a1531dfb7
2 changed files with 9 additions and 4 deletions

View File

@ -412,6 +412,11 @@ def generate_msg_handlers(func_list, inputfile):
c_name = t[2]
field_length = t[3][0]
if jni_type.endswith('Array') and field_length == '0':
raise Exception('Variable array \'%s\' defined in message \'%s\' '
'should have defined length (e.g. \'%s[%s_length]\''
% (c_name, handler_name, c_name, c_name))
# check if we are processing variable length array
if t[3][1]:
length_var_name = t[3][0]