especially in public cloud case, statistic is related to monitorring and billing , both ingress and egress packets will go throught ipvs, even dr/tun mode. in dr/tun mode, ipvs need to do nothing except statistic, so skb->ipvs_property = 1 regards On Tue, Sep 29, 2020 at 1:04 PM longguang.yue <bigclouds@xxxxxxx> wrote: > > It's ipvs's duty to do traffic statistic if packets get hit, > no matter what mode it is. > > Signed-off-by: longguang.yue <bigclouds@xxxxxxx> > --- > net/netfilter/ipvs/ip_vs_core.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c > index e3668a6e54e4..ed523057f07f 100644 > --- a/net/netfilter/ipvs/ip_vs_core.c > +++ b/net/netfilter/ipvs/ip_vs_core.c > @@ -1413,8 +1413,11 @@ ip_vs_out(struct netns_ipvs *ipvs, unsigned int hooknum, struct sk_buff *skb, in > ipvs, af, skb, &iph); > > if (likely(cp)) { > - if (IP_VS_FWD_METHOD(cp) != IP_VS_CONN_F_MASQ) > + if (IP_VS_FWD_METHOD(cp) != IP_VS_CONN_F_MASQ){ > + ip_vs_out_stats(cp, skb); > + skb->ipvs_property = 1; > goto ignore_cp; > + } > return handle_response(af, skb, pd, cp, &iph, hooknum); > } > > -- > 2.20.1 (Apple Git-117) >