reactor packet I/O & duplicated packet filter & evicted session filter

This commit is contained in:
luwenpeng
2024-03-09 19:28:14 +08:00
parent ee35a26a9d
commit 512dfddd03
79 changed files with 1974 additions and 2093 deletions

View File

@@ -296,75 +296,47 @@ int tuple6_cmp(const struct tuple6 *tuple_a, const struct tuple6 *tuple_b)
void tuple2_reverse(const struct tuple2 *in, struct tuple2 *out)
{
memset(out, 0, sizeof(struct tuple2));
out->ip_type = in->ip_type;
if (in->ip_type == IP_TYPE_V4)
{
out->src_addr.v4.s_addr = in->dst_addr.v4.s_addr;
out->dst_addr.v4.s_addr = in->src_addr.v4.s_addr;
}
else
{
memcpy(&out->src_addr.v6, &in->dst_addr.v6, sizeof(in->dst_addr.v6));
memcpy(&out->dst_addr.v6, &in->src_addr.v6, sizeof(in->src_addr.v6));
}
memcpy(&out->src_addr, &in->dst_addr, sizeof(in->dst_addr));
memcpy(&out->dst_addr, &in->src_addr, sizeof(in->src_addr));
}
void tuple4_reverse(const struct tuple4 *in, struct tuple4 *out)
{
memset(out, 0, sizeof(struct tuple4));
out->ip_type = in->ip_type;
out->src_port = in->dst_port;
out->dst_port = in->src_port;
if (in->ip_type == IP_TYPE_V4)
{
out->src_addr.v4.s_addr = in->dst_addr.v4.s_addr;
out->dst_addr.v4.s_addr = in->src_addr.v4.s_addr;
}
else
{
memcpy(&out->src_addr.v6, &in->dst_addr.v6, sizeof(in->dst_addr.v6));
memcpy(&out->dst_addr.v6, &in->src_addr.v6, sizeof(in->src_addr.v6));
}
memcpy(&out->src_addr, &in->dst_addr, sizeof(in->dst_addr));
memcpy(&out->dst_addr, &in->src_addr, sizeof(in->src_addr));
}
void tuple5_reverse(const struct tuple5 *in, struct tuple5 *out)
{
memset(out, 0, sizeof(struct tuple5));
out->ip_type = in->ip_type;
out->ip_proto = in->ip_proto;
out->src_port = in->dst_port;
out->dst_port = in->src_port;
if (in->ip_type == IP_TYPE_V4)
{
out->src_addr.v4.s_addr = in->dst_addr.v4.s_addr;
out->dst_addr.v4.s_addr = in->src_addr.v4.s_addr;
}
else
{
memcpy(&out->src_addr.v6, &in->dst_addr.v6, sizeof(in->dst_addr.v6));
memcpy(&out->dst_addr.v6, &in->src_addr.v6, sizeof(in->src_addr.v6));
}
memcpy(&out->src_addr, &in->dst_addr, sizeof(in->dst_addr));
memcpy(&out->dst_addr, &in->src_addr, sizeof(in->src_addr));
}
void tuple6_reverse(const struct tuple6 *in, struct tuple6 *out)
{
memset(out, 0, sizeof(struct tuple6));
out->ip_type = in->ip_type;
out->ip_proto = in->ip_proto;
out->domain = in->domain;
out->src_port = in->dst_port;
out->dst_port = in->src_port;
if (in->ip_type == IP_TYPE_V4)
{
out->src_addr.v4.s_addr = in->dst_addr.v4.s_addr;
out->dst_addr.v4.s_addr = in->src_addr.v4.s_addr;
}
else
{
memcpy(&out->src_addr.v6, &in->dst_addr.v6, sizeof(in->dst_addr.v6));
memcpy(&out->dst_addr.v6, &in->src_addr.v6, sizeof(in->src_addr.v6));
}
memcpy(&out->src_addr, &in->dst_addr, sizeof(in->dst_addr));
memcpy(&out->dst_addr, &in->src_addr, sizeof(in->src_addr));
}
void tuple2_to_str(const struct tuple2 *tuple, char *buf, uint32_t size)