tcp: Do not include the tcp_packet.h file in the ip4_packet.h
Type: refactor IP4 does not depend on TCP (it's the other way around). This upside down dependency leads to some nasty circular includes when trying to use ip46_address.h in interface.h Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: I4a1bd21543b08b9c1cf1e5563da738414734a878
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
#include <vnet/devices/devices.h>
|
||||
#include <vnet/interface/rx_queue_funcs.h>
|
||||
#include <vnet/feature/feature.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
|
||||
#include <dpdk/device/dpdk_priv.h>
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <vnet/feature/feature.h>
|
||||
#include <vnet/ip/ip4.h>
|
||||
#include <vnet/ip/ip6.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
|
||||
extern vlib_node_registration_t mssc_ip4_in_node, mssc_ip4_out_node;
|
||||
extern vlib_node_registration_t mssc_ip6_in_node, mssc_ip6_out_node;
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include "pnat.h"
|
||||
#include <vnet/vnet.h>
|
||||
#include <pnat/pnat.api_enum.h>
|
||||
#include <pnat/pnat.api_types.h>
|
||||
#include <vlibmemory/api.h>
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <pnat/pnat.api_enum.h>
|
||||
#include <vnet/feature/feature.h>
|
||||
#include <vnet/udp/udp_packet.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
#include <vnet/ip/format.h>
|
||||
|
||||
/* PNAT next-nodes */
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <vnet/ip/ip6_packet.h>
|
||||
#include <vnet/ip/ip4_packet.h>
|
||||
#include <vnet/udp/udp_packet.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
#include <vnet/interface/rx_queue_funcs.h>
|
||||
#include <vmxnet3/vmxnet3.h>
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <wireguard/wireguard_index_table.h>
|
||||
#include <wireguard/wireguard_messages.h>
|
||||
#include <wireguard/wireguard_timer.h>
|
||||
#include <vnet/buffer.h>
|
||||
|
||||
#define WG_DEFAULT_DATA_SIZE 2048
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <vnet/ip/ip4_packet.h>
|
||||
#include <vnet/ip/ip6_packet.h>
|
||||
#include <vnet/udp/udp_packet.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
#include <vnet/devices/virtio/virtio.h>
|
||||
#include <vnet/devices/virtio/virtio_inline.h>
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <vnet/devices/devices.h>
|
||||
#include <vnet/feature/feature.h>
|
||||
#include <vnet/udp/udp_packet.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
#include <vnet/interface/rx_queue_funcs.h>
|
||||
|
||||
#include <vnet/devices/virtio/vhost_user.h>
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <vnet/devices/virtio/vhost_std.h>
|
||||
#include <vnet/devices/virtio/virtio_buffering.h>
|
||||
#include <vnet/gso/gro.h>
|
||||
#include <vnet/interface.h>
|
||||
|
||||
#define foreach_virtio_if_flag \
|
||||
_(0, ADMIN_UP, "admin-up") \
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#include <vppinfra/clib.h>
|
||||
#include <vppinfra/pcap.h>
|
||||
#include <vnet/vnet.h>
|
||||
#include <vnet/l3_types.h>
|
||||
#include <vnet/ip/ip4_packet.h>
|
||||
#include <vnet/ip/ip6_packet.h>
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <vnet/ip/ip6_packet.h>
|
||||
#include <vnet/udp/udp_local.h>
|
||||
#include <vnet/udp/udp_packet.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
#include <vnet/vnet.h>
|
||||
#include <vnet/vxlan/vxlan_packet.h>
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <vnet/ip/ip4_packet.h>
|
||||
#include <vnet/ip/ip6_packet.h>
|
||||
#include <vnet/ip/ip6_hop_by_hop_packet.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
#include <vppinfra/lb_hash_hash.h>
|
||||
#include <vnet/hash/hash.h>
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
#define __INTERFACE_INLINES_H__
|
||||
|
||||
#include <vnet/vnet.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
|
||||
static_always_inline void
|
||||
vnet_calc_ip4_checksums (vlib_main_t *vm, vlib_buffer_t *b, ip4_header_t *ip4,
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
|
||||
#include <vnet/ip/ip_flow_hash.h>
|
||||
#include <vnet/ip/ip4_packet.h>
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
|
||||
#define IP_DF 0x4000 /* don't fragment */
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
#define included_ip4_packet_h
|
||||
|
||||
#include <vnet/ip/ip_packet.h> /* for ip_csum_t */
|
||||
#include <vnet/tcp/tcp_packet.h> /* for tcp_header_t */
|
||||
#include <vppinfra/byte_order.h> /* for clib_net_to_host_u16 */
|
||||
#include <vppinfra/warnings.h> /* for WARN_OFF/WARN_ON macro */
|
||||
|
||||
@@ -476,47 +475,6 @@ ip4_multicast_ethernet_address (u8 * ethernet_address,
|
||||
ethernet_address[5] = d[3];
|
||||
}
|
||||
|
||||
always_inline void
|
||||
ip4_tcp_reply_x1 (ip4_header_t * ip0, tcp_header_t * tcp0)
|
||||
{
|
||||
u32 src0, dst0;
|
||||
|
||||
src0 = ip0->src_address.data_u32;
|
||||
dst0 = ip0->dst_address.data_u32;
|
||||
ip0->src_address.data_u32 = dst0;
|
||||
ip0->dst_address.data_u32 = src0;
|
||||
|
||||
src0 = tcp0->src;
|
||||
dst0 = tcp0->dst;
|
||||
tcp0->src = dst0;
|
||||
tcp0->dst = src0;
|
||||
}
|
||||
|
||||
always_inline void
|
||||
ip4_tcp_reply_x2 (ip4_header_t * ip0, ip4_header_t * ip1,
|
||||
tcp_header_t * tcp0, tcp_header_t * tcp1)
|
||||
{
|
||||
u32 src0, dst0, src1, dst1;
|
||||
|
||||
src0 = ip0->src_address.data_u32;
|
||||
src1 = ip1->src_address.data_u32;
|
||||
dst0 = ip0->dst_address.data_u32;
|
||||
dst1 = ip1->dst_address.data_u32;
|
||||
ip0->src_address.data_u32 = dst0;
|
||||
ip1->src_address.data_u32 = dst1;
|
||||
ip0->dst_address.data_u32 = src0;
|
||||
ip1->dst_address.data_u32 = src1;
|
||||
|
||||
src0 = tcp0->src;
|
||||
src1 = tcp1->src;
|
||||
dst0 = tcp0->dst;
|
||||
dst1 = tcp1->dst;
|
||||
tcp0->src = dst0;
|
||||
tcp1->src = dst1;
|
||||
tcp0->dst = src0;
|
||||
tcp1->dst = src1;
|
||||
}
|
||||
|
||||
#endif /* included_ip4_packet_h */
|
||||
|
||||
/*
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#ifndef included_ip6_packet_h
|
||||
#define included_ip6_packet_h
|
||||
|
||||
#include <vnet/tcp/tcp_packet.h>
|
||||
#include <vlib/vlib.h>
|
||||
#include <vnet/ip/ip4_packet.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
@@ -423,59 +423,6 @@ ip6_copy_header (ip6_header_t * dst, const ip6_header_t * src)
|
||||
dst->dst_address.as_uword[1] = src->dst_address.as_uword[1];
|
||||
}
|
||||
|
||||
always_inline void
|
||||
ip6_tcp_reply_x1 (ip6_header_t * ip0, tcp_header_t * tcp0)
|
||||
{
|
||||
{
|
||||
ip6_address_t src0, dst0;
|
||||
|
||||
src0 = ip0->src_address;
|
||||
dst0 = ip0->dst_address;
|
||||
ip0->src_address = dst0;
|
||||
ip0->dst_address = src0;
|
||||
}
|
||||
|
||||
{
|
||||
u16 src0, dst0;
|
||||
|
||||
src0 = tcp0->src;
|
||||
dst0 = tcp0->dst;
|
||||
tcp0->src = dst0;
|
||||
tcp0->dst = src0;
|
||||
}
|
||||
}
|
||||
|
||||
always_inline void
|
||||
ip6_tcp_reply_x2 (ip6_header_t * ip0, ip6_header_t * ip1,
|
||||
tcp_header_t * tcp0, tcp_header_t * tcp1)
|
||||
{
|
||||
{
|
||||
ip6_address_t src0, dst0, src1, dst1;
|
||||
|
||||
src0 = ip0->src_address;
|
||||
src1 = ip1->src_address;
|
||||
dst0 = ip0->dst_address;
|
||||
dst1 = ip1->dst_address;
|
||||
ip0->src_address = dst0;
|
||||
ip1->src_address = dst1;
|
||||
ip0->dst_address = src0;
|
||||
ip1->dst_address = src1;
|
||||
}
|
||||
|
||||
{
|
||||
u16 src0, dst0, src1, dst1;
|
||||
|
||||
src0 = tcp0->src;
|
||||
src1 = tcp1->src;
|
||||
dst0 = tcp0->dst;
|
||||
dst1 = tcp1->dst;
|
||||
tcp0->src = dst0;
|
||||
tcp1->src = dst1;
|
||||
tcp0->dst = src0;
|
||||
tcp1->dst = src1;
|
||||
}
|
||||
}
|
||||
|
||||
typedef CLIB_PACKED (struct {
|
||||
u8 data;
|
||||
}) ip6_pad1_option_t;
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <vnet/vnet.h>
|
||||
#include <vnet/ip6-nd/rd_cp.h>
|
||||
|
||||
#include <vlibapi/api.h>
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
#ifndef included_tcp_packet_h
|
||||
#define included_tcp_packet_h
|
||||
|
||||
#include <vnet/vnet.h>
|
||||
#include <vnet/ip/ip4_packet.h>
|
||||
#include <vnet/ip/ip6_packet.h>
|
||||
|
||||
/* TCP flags bit 0 first. */
|
||||
#define foreach_tcp_flag \
|
||||
@@ -185,6 +186,100 @@ typedef struct
|
||||
#define timestamp_lt(_t1, _t2) ((i32)((_t1)-(_t2)) < 0)
|
||||
#define timestamp_leq(_t1, _t2) ((i32)((_t1)-(_t2)) <= 0)
|
||||
|
||||
always_inline void
|
||||
ip4_tcp_reply_x1 (ip4_header_t *ip0, tcp_header_t *tcp0)
|
||||
{
|
||||
u32 src0, dst0;
|
||||
|
||||
src0 = ip0->src_address.data_u32;
|
||||
dst0 = ip0->dst_address.data_u32;
|
||||
ip0->src_address.data_u32 = dst0;
|
||||
ip0->dst_address.data_u32 = src0;
|
||||
|
||||
src0 = tcp0->src;
|
||||
dst0 = tcp0->dst;
|
||||
tcp0->src = dst0;
|
||||
tcp0->dst = src0;
|
||||
}
|
||||
|
||||
always_inline void
|
||||
ip4_tcp_reply_x2 (ip4_header_t *ip0, ip4_header_t *ip1, tcp_header_t *tcp0,
|
||||
tcp_header_t *tcp1)
|
||||
{
|
||||
u32 src0, dst0, src1, dst1;
|
||||
|
||||
src0 = ip0->src_address.data_u32;
|
||||
src1 = ip1->src_address.data_u32;
|
||||
dst0 = ip0->dst_address.data_u32;
|
||||
dst1 = ip1->dst_address.data_u32;
|
||||
ip0->src_address.data_u32 = dst0;
|
||||
ip1->src_address.data_u32 = dst1;
|
||||
ip0->dst_address.data_u32 = src0;
|
||||
ip1->dst_address.data_u32 = src1;
|
||||
|
||||
src0 = tcp0->src;
|
||||
src1 = tcp1->src;
|
||||
dst0 = tcp0->dst;
|
||||
dst1 = tcp1->dst;
|
||||
tcp0->src = dst0;
|
||||
tcp1->src = dst1;
|
||||
tcp0->dst = src0;
|
||||
tcp1->dst = src1;
|
||||
}
|
||||
|
||||
always_inline void
|
||||
ip6_tcp_reply_x1 (ip6_header_t *ip0, tcp_header_t *tcp0)
|
||||
{
|
||||
{
|
||||
ip6_address_t src0, dst0;
|
||||
|
||||
src0 = ip0->src_address;
|
||||
dst0 = ip0->dst_address;
|
||||
ip0->src_address = dst0;
|
||||
ip0->dst_address = src0;
|
||||
}
|
||||
|
||||
{
|
||||
u16 src0, dst0;
|
||||
|
||||
src0 = tcp0->src;
|
||||
dst0 = tcp0->dst;
|
||||
tcp0->src = dst0;
|
||||
tcp0->dst = src0;
|
||||
}
|
||||
}
|
||||
|
||||
always_inline void
|
||||
ip6_tcp_reply_x2 (ip6_header_t *ip0, ip6_header_t *ip1, tcp_header_t *tcp0,
|
||||
tcp_header_t *tcp1)
|
||||
{
|
||||
{
|
||||
ip6_address_t src0, dst0, src1, dst1;
|
||||
|
||||
src0 = ip0->src_address;
|
||||
src1 = ip1->src_address;
|
||||
dst0 = ip0->dst_address;
|
||||
dst1 = ip1->dst_address;
|
||||
ip0->src_address = dst0;
|
||||
ip1->src_address = dst1;
|
||||
ip0->dst_address = src0;
|
||||
ip1->dst_address = src1;
|
||||
}
|
||||
|
||||
{
|
||||
u16 src0, dst0, src1, dst1;
|
||||
|
||||
src0 = tcp0->src;
|
||||
src1 = tcp1->src;
|
||||
dst0 = tcp0->dst;
|
||||
dst1 = tcp1->dst;
|
||||
tcp0->src = dst0;
|
||||
tcp1->src = dst1;
|
||||
tcp0->dst = src0;
|
||||
tcp1->dst = src1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse TCP header options.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user