shortcut-fe: include NAT information and sync reason in sync message
Some connection manager need these information to manipulate connection,
so add them in stats sync message
Change-Id: I59ea72a44d64159aba96b78f779ab7886ee55681
Signed-off-by: Xiaoping Fan <xfan@codeaurora.org>
diff --git a/shortcut-fe/sfe_cm.h b/shortcut-fe/sfe_cm.h
index 031af98..664b1e3 100644
--- a/shortcut-fe/sfe_cm.h
+++ b/shortcut-fe/sfe_cm.h
@@ -68,6 +68,10 @@
uint32_t original_accel;
uint32_t reply_accel;
#endif
+ uint32_t src_priority;
+ uint32_t dest_priority;
+ uint32_t src_dscp;
+ uint32_t dest_dscp;
};
/*
@@ -81,6 +85,12 @@
__be16 dest_port;
};
+typedef enum sfe_sync_reason {
+ SFE_SYNC_REASON_STATS, /* Sync is to synchronize stats */
+ SFE_SYNC_REASON_FLUSH, /* Sync is to flush a entry */
+ SFE_SYNC_REASON_DESTROY /* Sync is to destroy a entry(requested by connection manager) */
+} sfe_sync_reason_t;
+
/*
* Structure used to sync connection stats/state back within the system.
*
@@ -93,9 +103,13 @@
int is_v6; /* Is it for ipv6? */
int protocol; /* IP protocol number (IPPROTO_...) */
sfe_ip_addr_t src_ip; /* Non-NAT source address, i.e. the creator of the connection */
+ sfe_ip_addr_t src_ip_xlate; /* NATed source address */
__be16 src_port; /* Non-NAT source port */
- sfe_ip_addr_t dest_ip; /* Non-NAT destination address, i.e. to whom the connection was created */
+ __be16 src_port_xlate; /* NATed source port */
+ sfe_ip_addr_t dest_ip; /* Non-NAT destination address, i.e. to whom the connection was created */
+ sfe_ip_addr_t dest_ip_xlate; /* NATed destination address */
__be16 dest_port; /* Non-NAT destination port */
+ __be16 dest_port_xlate; /* NATed destination port */
uint32_t src_td_max_window;
uint32_t src_td_end;
uint32_t src_td_max_end;
@@ -110,6 +124,7 @@
uint64_t dest_byte_count;
uint32_t dest_new_packet_count;
uint32_t dest_new_byte_count;
+ uint32_t reason; /* reason for stats sync message, i.e. destroy, flush, period sync */
uint64_t delta_jiffies; /* Time to be added to the current timeout to keep the connection alive */
};