- 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>
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]
u8 is_combined;
u32 first_sw_if_index;
u32 count;
- u8 data[0];
+ u8 data[count];
};
typeonly manual_print manual_endian define ip4_fib_counter {
u32 tunnel_dst;
u32 outer_fib_index;
u32 nlabels;
- u32 labels[0];
+ u32 labels[nlabels];
};
/** \brief Dump mpls eth tunnel table
u8 tunnel_dst_mac[6];
u32 tx_sw_if_index;
u32 nlabels;
- u32 labels[0];
+ u32 labels[nlabels];
};
/** \brief Dump mpls fib table
u32 dest;
u32 s_bit;
u32 nlabels;
- u32 labels[0];
+ u32 labels[nlabels];
};
/** \brief Dump mpls fib decap table