enum16 T_mux_over_id { mux_over_zero 0 mux_over_one 1 mux_over_three 3 mux_over_29537 29537 } struct T_msg_header_type { byte_order big_endian ; T_mux_over_id mux_over_id ; } struct T_msg { T_msg_header_type header ; raw(*) data ; } struct T_msg_three { T_msg_header_type header ; uint32 mux_over_sub_id ; uint16[2] ui16 ; insproto(16) mux_over_sub_data1 ; uint32{o=136} mux_over_sub_id ; uint16[2] ui16 ; insproto(16) mux_over_sub_data2 ; uint32{o=137} mux_over_sub_id ; uint16[2] ui16 ; insproto(44) mux_over_sub_data3 ; uint16 ui16_after_mux_over_sub_data ; raw(*) the_end_of_msg_three ; } struct T_msg_29537 { T_msg_header_type header ; uint32[10] ui32; raw(*) the_end_of_msg_29537 ; } switch T_msg_switch T_mux_over_id { case mux_over_zero : T_msg ""; # "" permits to avoid a useless supplementary tree case mux_over_one : T_msg ""; case mux_over_three : T_msg_three ""; case mux_over_29537 : T_msg_29537 ""; default : fatal ("Unknow msg identifier %d (%s)", mux_over_id, mux_over_id); }