TSG-22348 feature: adapt maat support UUID
This commit is contained in:
@@ -51,14 +51,17 @@ extern "C"
|
||||
* bypass(invalid policy)
|
||||
*/
|
||||
|
||||
static inline int rule_id_tostring(struct mutable_array *rule_ids, char *buffer, int size)
|
||||
static inline int rule_id_tostring(struct uuid_array *array, char *buffer, int size)
|
||||
{
|
||||
char uuid_str[UUID_STRING_SIZE] = {0};
|
||||
int used = 0;
|
||||
int num = uuid_array_get_count(array);
|
||||
used += snprintf(buffer + used, size - used, "[");
|
||||
for (int i = 0; i < rule_ids->num; i++)
|
||||
for (int i = 0; i < num; i++)
|
||||
{
|
||||
used += snprintf(buffer + used, size - used, "%lu", rule_ids->elems[i]);
|
||||
if (i < rule_ids->num - 1)
|
||||
uuid_unparse(*uuid_array_get_at(array, i), uuid_str);
|
||||
used += snprintf(buffer + used, size - used, "%s", uuid_str);
|
||||
if (i < num - 1)
|
||||
{
|
||||
used += snprintf(buffer + used, size - used, ", ");
|
||||
}
|
||||
@@ -69,11 +72,13 @@ static inline int rule_id_tostring(struct mutable_array *rule_ids, char *buffer,
|
||||
|
||||
static inline int sf_id_tostring(struct selected_chaining *chain, char *buffer, int size)
|
||||
{
|
||||
char uuid_str[UUID_STRING_SIZE] = {0};
|
||||
int used = 0;
|
||||
used += snprintf(buffer + used, size - used, "[");
|
||||
for (int i = 0; i < chain->chaining_used; i++)
|
||||
{
|
||||
used += snprintf(buffer + used, size - used, "%d", chain->chaining[i].sf_profile_id);
|
||||
uuid_unparse(chain->chaining[i].sf_uuid, uuid_str);
|
||||
used += snprintf(buffer + used, size - used, "%s", uuid_str);
|
||||
if (i < chain->chaining_used - 1)
|
||||
{
|
||||
used += snprintf(buffer + used, size - used, ", ");
|
||||
@@ -111,52 +116,55 @@ static inline int sf_id_tostring(struct selected_chaining *chain, char *buffer,
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define PACKET_TRACE_ON_POLICY(mr_ins, mr_buff, rule_ids, chain) \
|
||||
#define PACKET_TRACE_ON_POLICY(mr_ins, mr_buff, rule_uuid_array, chain) \
|
||||
do \
|
||||
{ \
|
||||
if (marsio_dp_trace_measurements_can_emit(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TRACE)) \
|
||||
{ \
|
||||
char rule_id_str[1024] = {0}; \
|
||||
char sf_id_str[1024] = {0}; \
|
||||
char rule_ids_str[1024] = {0}; \
|
||||
char sf_ids_str[1024] = {0}; \
|
||||
char buff[4096] = {0}; \
|
||||
rule_id_tostring(rule_ids, rule_id_str, sizeof(rule_id_str)); \
|
||||
sf_id_tostring(chain, sf_id_str, sizeof(sf_id_str)); \
|
||||
snprintf(buff, sizeof(buff), "sc rule list=%s, SFP list=%s", rule_id_str, sf_id_str); \
|
||||
rule_id_tostring(rule_uuid_array, rule_ids_str, sizeof(rule_ids_str)); \
|
||||
sf_id_tostring(chain, sf_ids_str, sizeof(sf_ids_str)); \
|
||||
snprintf(buff, sizeof(buff), "sc rule list=%s, SFP list=%s", rule_ids_str, sf_ids_str); \
|
||||
marsio_dp_trace_measurement_emit_str(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TRACE, "Policy", buff); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define PACKET_TELEMETRY_ON_POLICY(mr_ins, mr_buff, rule_ids, chain) \
|
||||
#define PACKET_TELEMETRY_ON_POLICY(mr_ins, mr_buff, rule_uuid_array, chain) \
|
||||
do \
|
||||
{ \
|
||||
if (marsio_dp_trace_measurements_can_emit(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY)) \
|
||||
{ \
|
||||
char rule_id_str[1024] = {0}; \
|
||||
char sf_id_str[1024] = {0}; \
|
||||
char rule_ids_str[1024] = {0}; \
|
||||
char sf_ids_str[1024] = {0}; \
|
||||
char buff[4096] = {0}; \
|
||||
rule_id_tostring(rule_ids, rule_id_str, sizeof(rule_id_str)); \
|
||||
sf_id_tostring(chain, sf_id_str, sizeof(sf_id_str)); \
|
||||
snprintf(buff, sizeof(buff), "sc rule list=%s, SFP list=%s", rule_id_str, sf_id_str); \
|
||||
rule_id_tostring(rule_uuid_array, rule_ids_str, sizeof(rule_ids_str)); \
|
||||
sf_id_tostring(chain, sf_ids_str, sizeof(sf_ids_str)); \
|
||||
snprintf(buff, sizeof(buff), "sc rule list=%s, SFP list=%s", rule_ids_str, sf_ids_str); \
|
||||
marsio_dp_trace_measurement_emit_str(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY, "Policy", buff); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define PACKET_TRACE_ON_CHAIN(mr_ins, mr_buff, sf, meta) \
|
||||
do \
|
||||
{ \
|
||||
if (marsio_dp_trace_measurements_can_emit(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TRACE)) \
|
||||
{ \
|
||||
char buff[2048] = {0}; \
|
||||
snprintf(buff, sizeof(buff), "sc rule id=%lu, sf id=%d, fwd type=%s, pkt dir=%s, pkt type=%s, state=%s %s", \
|
||||
(sf)->rule_id, \
|
||||
(sf)->sf_profile_id, \
|
||||
forward_type_tostring((sf)->sff_forward_type), \
|
||||
((meta)->direction ? "E2I" : "I2E"), \
|
||||
((meta)->is_decrypted ? "decrypted" : "raw"), \
|
||||
((sf)->sf_action == SESSION_ACTION_FORWARD ? "success" : "failure"), \
|
||||
((sf)->sf_action == SESSION_ACTION_FORWARD ? "" : action_desc_tostring((sf)->sf_action_desc))); \
|
||||
marsio_dp_trace_measurement_emit_str(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TRACE, "Forwarder", buff); \
|
||||
} \
|
||||
#define PACKET_TRACE_ON_CHAIN(mr_ins, mr_buff, sf, meta) \
|
||||
do \
|
||||
{ \
|
||||
if (marsio_dp_trace_measurements_can_emit(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TRACE)) \
|
||||
{ \
|
||||
char buff[2048] = {0}; \
|
||||
char rule_uuid_str[UUID_STRING_SIZE] = {0}; \
|
||||
char sf_uuid_str[UUID_STRING_SIZE] = {0}; \
|
||||
uuid_unparse((sf)->rule_uuid, rule_uuid_str); \
|
||||
uuid_unparse((sf)->sf_uuid, sf_uuid_str); \
|
||||
snprintf(buff, sizeof(buff), "sc rule id=%s, sf id=%s, fwd type=%s, pkt dir=%s, pkt type=%s, state=%s %s", \
|
||||
rule_uuid_str, sf_uuid_str, \
|
||||
forward_type_tostring((sf)->sff_forward_type), \
|
||||
((meta)->direction ? "E2I" : "I2E"), \
|
||||
((meta)->is_decrypted ? "decrypted" : "raw"), \
|
||||
((sf)->sf_action == SESSION_ACTION_FORWARD ? "success" : "failure"), \
|
||||
((sf)->sf_action == SESSION_ACTION_FORWARD ? "" : action_desc_tostring((sf)->sf_action_desc))); \
|
||||
marsio_dp_trace_measurement_emit_str(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TRACE, "Forwarder", buff); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define PACKET_TELEMETRY_ON_CHAIN(mr_ins, mr_buff, sf, meta) \
|
||||
@@ -165,9 +173,12 @@ static inline int sf_id_tostring(struct selected_chaining *chain, char *buffer,
|
||||
if (marsio_dp_trace_measurements_can_emit(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY)) \
|
||||
{ \
|
||||
char buff[2048] = {0}; \
|
||||
snprintf(buff, sizeof(buff), "sc rule id=%lu, sf id=%d, type=%s, action=%s", \
|
||||
(sf)->rule_id, \
|
||||
(sf)->sf_profile_id, \
|
||||
char rule_uuid_str[UUID_STRING_SIZE] = {0}; \
|
||||
char sf_uuid_str[UUID_STRING_SIZE] = {0}; \
|
||||
uuid_unparse((sf)->rule_uuid, rule_uuid_str); \
|
||||
uuid_unparse((sf)->sf_uuid, sf_uuid_str); \
|
||||
snprintf(buff, sizeof(buff), "sc rule id=%s, sf id=%s, type=%s, action=%s", \
|
||||
rule_uuid_str, sf_uuid_str, \
|
||||
forward_type_tostring((sf)->sff_forward_type), \
|
||||
action_desc_tostring((sf)->sf_action_desc)); \
|
||||
marsio_dp_trace_measurement_emit_str(mr_ins, mr_buff, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY, "Forwarder", buff); \
|
||||
|
||||
Reference in New Issue
Block a user