Я работаю над разработкой плагина в wireshark для закрытого протокола.У меня есть следующие 3 структуры, которые определяют характеристики протокола:
static const value_string packettypenames[] = { /* MAIN COMMAND */
{0x01,"FALO_PWRL_CMD"}, /* 0x01 */
{0x02,"FALO_CALLABLE_CMD"}, /* 0x02 */
{0x03,"FALO_CORTEX_DATA_CMD"}, /* 0x03 */
{0x04,"FALO_LOCAL_CMD"} /* 0x04 */
}
static const calue_string packettypesubnames_falo_pwrl_cmd[]={/* SUBCOMMAND BASED */
{0x01, "FALO_PWRL_PREF_PLMN"}, /*ON SELECTED MAIN COMMAND */
{0x02 ,"FALO_PWRL_PLMN_SEL"}
}
static const calue_string packettypesubnames_falo_callable_cmd[]={ /* SUBCOMMAND */
{0x01, "FALO_PWRL_PREF_PLMN"}, /*based ON SELECTED MAIN COMMAND */
{0x02 ,"FALO_PWRL_PLMN_SEL"}
}
Структура и информация о форматировании, хранящаяся в массиве hf_register, выглядит следующим образом:
void proto_register_talo(void)
{
static hf_register_info hf[] = {
{ &hf_talo_main_command,
{ "Talo Main Command", "talo.command",
FT_UINT8, BASE_HEX,
VALS(packettypenames) , 0x0,
NULL, HFILL }
},
{ &hf_ipc_sub_command,
{ "Talo Sub Command", "talo.subcommand",
FT_UINT8, BASE_HEX,
VALS(packetsubtypenames), 0x0, /* STUCK AT THIS POINT */
NULL, HFILL }
}
};
Вот моя информация о форматированиидля подкоманды основана на значении основной команды.Есть ли способ получить такую вещь, чтобы значение второй подкоманды поля можно было определить на основе значения, присутствующего в основной команде?
Спасибо за помощь, Мрунал