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:
@ -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]
|
||||
|
@ -630,7 +630,7 @@ define vnet_interface_counters {
|
||||
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 {
|
||||
@ -3979,7 +3979,7 @@ define mpls_gre_tunnel_details {
|
||||
u32 tunnel_dst;
|
||||
u32 outer_fib_index;
|
||||
u32 nlabels;
|
||||
u32 labels[0];
|
||||
u32 labels[nlabels];
|
||||
};
|
||||
|
||||
/** \brief Dump mpls eth tunnel table
|
||||
@ -4017,7 +4017,7 @@ define mpls_eth_tunnel_details {
|
||||
u8 tunnel_dst_mac[6];
|
||||
u32 tx_sw_if_index;
|
||||
u32 nlabels;
|
||||
u32 labels[0];
|
||||
u32 labels[nlabels];
|
||||
};
|
||||
|
||||
/** \brief Dump mpls fib table
|
||||
@ -4045,7 +4045,7 @@ define mpls_fib_encap_details {
|
||||
u32 dest;
|
||||
u32 s_bit;
|
||||
u32 nlabels;
|
||||
u32 labels[0];
|
||||
u32 labels[nlabels];
|
||||
};
|
||||
|
||||
/** \brief Dump mpls fib decap table
|
||||
|
Reference in New Issue
Block a user