You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
conn_flags definition in ip_vs.h is in contradiction with that in conn.h. It will cause the usr.conn_flags was overwrited by conn->flags.
see follow:
for example,
DPVS_CONN_F_IN_TIMER = 0x0200,
#define IP_VS_CONN_F_OUT_SEQ 0x0200 /* must do output seq adjust */
DPVS_CONN_F_NOFASTXMIT = 0x2000,
#define IP_VS_CONN_F_ONE_PACKET 0x2000 /* forward only one packet */
ip_vs.h
/*
IPVS Connection Flags
Only flags 0..15 are sent to backup server /
#define IP_VS_CONN_F_FWD_MASK 0x0007 / mask for the fwd methods /
#define IP_VS_CONN_F_MASQ 0x0000 / masquerading/NAT /
#define IP_VS_CONN_F_LOCALNODE 0x0001 / local node /
#define IP_VS_CONN_F_TUNNEL 0x0002 / tunneling /
#define IP_VS_CONN_F_DROUTE 0x0003 / direct routing /
#define IP_VS_CONN_F_BYPASS 0x0004 / cache bypass /
#define IP_VS_CONN_F_FULLNAT 0x0005 / full nat mode /
#define IP_VS_CONN_F_SNAT 0x0006 / SNAT mode /
#define IP_VS_CONN_F_SYNC 0x0020 / entry created by sync /
#define IP_VS_CONN_F_HASHED 0x0040 / hashed entry /
#define IP_VS_CONN_F_NOOUTPUT 0x0080 / no output packets /
#define IP_VS_CONN_F_INACTIVE 0x0100 / not established /
#define IP_VS_CONN_F_OUT_SEQ 0x0200 / must do output seq adjust /
#define IP_VS_CONN_F_IN_SEQ 0x0400 / must do input seq adjust /
#define IP_VS_CONN_F_SEQ_MASK 0x0600 / in/out sequence mask /
#define IP_VS_CONN_F_NO_CPORT 0x0800 / no client port set yet /
#define IP_VS_CONN_F_TEMPLATE 0x1000 / template, not connection /
#define IP_VS_CONN_F_ONE_PACKET 0x2000 / forward only one packet */
usr conn_flags set
case 'i':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_TUNNEL;
break;
case 'g':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_DROUTE;
break;
case 'b':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_FULLNAT;
break;
case 'J':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_SNAT;
break;
case 'm':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_MASQ;
copy to conn->flags
static int dp_vs_conn_bind_dest(struct dp_vs_conn *conn,
struct dp_vs_dest dest)
{
/ ATTENTION:
* Initial state of conn should be INACTIVE, with conn->inactconns=1 and
* conn->actconns=0. We should not increase conn->actconns except in session
* sync.Generally, the INACTIVE and SYN_PROXY flags are passed down from
* the dest here. */
conn->flags |= rte_atomic16_read(&dest->conn_flags);
The text was updated successfully, but these errors were encountered:
conn_flags definition in ip_vs.h is in contradiction with that in conn.h. It will cause the usr.conn_flags was overwrited by conn->flags.
see follow:
for example,
DPVS_CONN_F_IN_TIMER = 0x0200,
#define IP_VS_CONN_F_OUT_SEQ 0x0200 /* must do output seq adjust */
DPVS_CONN_F_NOFASTXMIT = 0x2000,
#define IP_VS_CONN_F_ONE_PACKET 0x2000 /* forward only one packet */
ip_vs.h
/*
/
#define IP_VS_CONN_F_FWD_MASK 0x0007 / mask for the fwd methods /
#define IP_VS_CONN_F_MASQ 0x0000 / masquerading/NAT /
#define IP_VS_CONN_F_LOCALNODE 0x0001 / local node /
#define IP_VS_CONN_F_TUNNEL 0x0002 / tunneling /
#define IP_VS_CONN_F_DROUTE 0x0003 / direct routing /
#define IP_VS_CONN_F_BYPASS 0x0004 / cache bypass /
#define IP_VS_CONN_F_FULLNAT 0x0005 / full nat mode /
#define IP_VS_CONN_F_SNAT 0x0006 / SNAT mode /
#define IP_VS_CONN_F_SYNC 0x0020 / entry created by sync /
#define IP_VS_CONN_F_HASHED 0x0040 / hashed entry /
#define IP_VS_CONN_F_NOOUTPUT 0x0080 / no output packets /
#define IP_VS_CONN_F_INACTIVE 0x0100 / not established /
#define IP_VS_CONN_F_OUT_SEQ 0x0200 / must do output seq adjust /
#define IP_VS_CONN_F_IN_SEQ 0x0400 / must do input seq adjust /
#define IP_VS_CONN_F_SEQ_MASK 0x0600 / in/out sequence mask /
#define IP_VS_CONN_F_NO_CPORT 0x0800 / no client port set yet /
#define IP_VS_CONN_F_TEMPLATE 0x1000 / template, not connection /
#define IP_VS_CONN_F_ONE_PACKET 0x2000 / forward only one packet */
conn.h
enum {
DPVS_CONN_F_HASHED = 0x0040,
DPVS_CONN_F_REDIRECT_HASHED = 0x0080,
DPVS_CONN_F_INACTIVE = 0x0100,
DPVS_CONN_F_IN_TIMER = 0x0200,
DPVS_CONN_F_SYNPROXY = 0x8000,
DPVS_CONN_F_TEMPLATE = 0x1000,
DPVS_CONN_F_NOFASTXMIT = 0x2000,
};
usr conn_flags set
case 'i':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_TUNNEL;
break;
case 'g':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_DROUTE;
break;
case 'b':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_FULLNAT;
break;
case 'J':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_SNAT;
break;
case 'm':
set_option(options, OPT_FORWARD);
ce->dest.user.conn_flags = IP_VS_CONN_F_MASQ;
copy to conn->flags
static int dp_vs_conn_bind_dest(struct dp_vs_conn *conn,
struct dp_vs_dest dest)
{
/ ATTENTION:
* Initial state of conn should be INACTIVE, with conn->inactconns=1 and
* conn->actconns=0. We should not increase conn->actconns except in session
* sync.Generally, the INACTIVE and SYN_PROXY flags are passed down from
* the dest here. */
conn->flags |= rte_atomic16_read(&dest->conn_flags);
The text was updated successfully, but these errors were encountered: