mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-10-09 21:14:02 +00:00
FS-9078 added hepv2 and hepv3 support
This commit is contained in:
@@ -130,6 +130,13 @@ struct hep_iphdr{
|
||||
struct in_addr hp_dst; /* source and dest address */
|
||||
};
|
||||
|
||||
/* HEPv2 */
|
||||
struct hep_timehdr{
|
||||
uint32_t tv_sec; /* seconds */
|
||||
uint32_t tv_usec; /* useconds */
|
||||
uint16_t captid; /* Capture ID node */
|
||||
};
|
||||
|
||||
#if SU_HAVE_IN6
|
||||
struct hep_ip6hdr {
|
||||
struct in6_addr hp6_src; /* source address */
|
||||
@@ -137,6 +144,86 @@ struct hep_ip6hdr {
|
||||
};
|
||||
#endif
|
||||
|
||||
/* HEPv3 types */
|
||||
struct hep_chunk {
|
||||
uint16_t vendor_id;
|
||||
uint16_t type_id;
|
||||
uint16_t length;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_chunk hep_chunk_t;
|
||||
|
||||
struct hep_chunk_uint8 {
|
||||
hep_chunk_t chunk;
|
||||
uint8_t data;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_chunk_uint8 hep_chunk_uint8_t;
|
||||
|
||||
struct hep_chunk_uint16 {
|
||||
hep_chunk_t chunk;
|
||||
uint16_t data;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_chunk_uint16 hep_chunk_uint16_t;
|
||||
|
||||
struct hep_chunk_uint32 {
|
||||
hep_chunk_t chunk;
|
||||
uint32_t data;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_chunk_uint32 hep_chunk_uint32_t;
|
||||
|
||||
struct hep_chunk_str {
|
||||
hep_chunk_t chunk;
|
||||
char *data;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_chunk_str hep_chunk_str_t;
|
||||
|
||||
struct hep_chunk_ip4 {
|
||||
hep_chunk_t chunk;
|
||||
struct in_addr data;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_chunk_ip4 hep_chunk_ip4_t;
|
||||
|
||||
struct hep_chunk_ip6 {
|
||||
hep_chunk_t chunk;
|
||||
struct in6_addr data;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_chunk_ip6 hep_chunk_ip6_t;
|
||||
|
||||
struct hep_chunk_payload {
|
||||
hep_chunk_t chunk;
|
||||
char *data;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_chunk_payload hep_chunk_payload_t;
|
||||
|
||||
struct hep_ctrl {
|
||||
char id[4];
|
||||
uint16_t length;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_ctrl hep_ctrl_t;
|
||||
|
||||
struct hep_generic {
|
||||
hep_ctrl_t header;
|
||||
hep_chunk_uint8_t ip_family;
|
||||
hep_chunk_uint8_t ip_proto;
|
||||
hep_chunk_uint16_t src_port;
|
||||
hep_chunk_uint16_t dst_port;
|
||||
hep_chunk_uint32_t time_sec;
|
||||
hep_chunk_uint32_t time_usec;
|
||||
hep_chunk_uint8_t proto_t;
|
||||
hep_chunk_uint32_t capt_id;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct hep_generic hep_generic_t;
|
||||
|
||||
|
||||
/** Maximum size when streaming. */
|
||||
#define MSG_SSIZE_MAX (USIZE_MAX)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user