secgateway/Platform/user/trace/trace-api/trace_api.h

45 lines
884 B
C
Executable File

#ifndef _TRACE_API_H
#define _TRACE_API_H
#include <stdint.h>
#include <linux/in.h>
#include <linux/in6.h>
typedef enum {
TRACE_SUCCESS = 0,
TRACE_FAILURE,
TRACE_PENDING
} trace_ret_t;
typedef struct _addr {
uint8_t family;
union {
struct in_addr ip4;
struct in6_addr ip6;
} addr;
} addr_t;
typedef void (*async_cb)(trace_ret_t ret, void *arg);
typedef struct _trace_policy {
addr_t src;
uint16_t sport;
addr_t dst;
uint16_t dport;
uint8_t protocol;
//PKT_TUPLE
uint16_t app_type;
} trace_policy_t;
trace_ret_t policy_client_init();
trace_ret_t policy_client_exit();
trace_ret_t policy_async_exec(const trace_policy_t *in,
async_cb cb, void *arg);
trace_ret_t policy_sync_exec(const trace_policy_t *in);
#endif