]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blobdiff - include/net/ip_vs.h
perf tools: Link libperf-jvmti.so with LDFLAGS variable
[mirror_ubuntu-eoan-kernel.git] / include / net / ip_vs.h
index a0bec23c6d5e4cd6a01bcec5104e12c27c895b62..a0d2e0bb9a94b90da24b22a327253dc6e9c0e8ff 100644 (file)
@@ -335,6 +335,11 @@ enum ip_vs_sctp_states {
        IP_VS_SCTP_S_LAST
 };
 
+/* Connection templates use bits from state */
+#define IP_VS_CTPL_S_NONE              0x0000
+#define IP_VS_CTPL_S_ASSURED           0x0001
+#define IP_VS_CTPL_S_LAST              0x0002
+
 /* Delta sequence info structure
  * Each ip_vs_conn has 2 (output AND input seq. changes).
  * Only used in the VS/NAT.
@@ -1221,7 +1226,7 @@ struct ip_vs_conn *ip_vs_conn_new(const struct ip_vs_conn_param *p, int dest_af,
                                  struct ip_vs_dest *dest, __u32 fwmark);
 void ip_vs_conn_expire_now(struct ip_vs_conn *cp);
 
-const char *ip_vs_state_name(__u16 proto, int state);
+const char *ip_vs_state_name(const struct ip_vs_conn *cp);
 
 void ip_vs_tcp_conn_listen(struct ip_vs_conn *cp);
 int ip_vs_check_template(struct ip_vs_conn *ct, struct ip_vs_dest *cdest);
@@ -1289,6 +1294,17 @@ ip_vs_control_add(struct ip_vs_conn *cp, struct ip_vs_conn *ctl_cp)
        atomic_inc(&ctl_cp->n_control);
 }
 
+/* Mark our template as assured */
+static inline void
+ip_vs_control_assure_ct(struct ip_vs_conn *cp)
+{
+       struct ip_vs_conn *ct = cp->control;
+
+       if (ct && !(ct->state & IP_VS_CTPL_S_ASSURED) &&
+           (ct->flags & IP_VS_CONN_F_TEMPLATE))
+               ct->state |= IP_VS_CTPL_S_ASSURED;
+}
+
 /* IPVS netns init & cleanup functions */
 int ip_vs_estimator_net_init(struct netns_ipvs *ipvs);
 int ip_vs_control_net_init(struct netns_ipvs *ipvs);