Lines Matching refs:cp

602 					    struct ip_vs_conn *cp)
607 if (unlikely(cp->flags & IP_VS_CONN_F_NFCT))
635 struct ip_vs_conn *cp, int local)
640 if (likely(!(cp->flags & IP_VS_CONN_F_NFCT)))
643 ip_vs_update_conntrack(skb, cp, 1);
648 if (!local || cp->vport != cp->dport ||
649 !ip_vs_addr_equal(cp->af, &cp->vaddr, &cp->daddr))
656 NF_HOOK(pf, NF_INET_LOCAL_OUT, cp->ipvs->net, NULL, skb,
666 struct ip_vs_conn *cp, int local)
671 if (likely(!(cp->flags & IP_VS_CONN_F_NFCT)))
678 NF_HOOK(pf, NF_INET_LOCAL_OUT, cp->ipvs->net, NULL, skb,
690 ip_vs_null_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
694 return ip_vs_send_or_cont(NFPROTO_IPV4, skb, cp, 1);
704 ip_vs_bypass_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
709 if (__ip_vs_get_out_rt(cp->ipvs, cp->af, skb, NULL, iph->daddr,
718 ip_vs_send_or_cont(NFPROTO_IPV4, skb, cp, 0);
729 ip_vs_bypass_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
734 if (__ip_vs_get_out_rt_v6(cp->ipvs, cp->af, skb, NULL,
742 ip_vs_send_or_cont(NFPROTO_IPV6, skb, cp, 0);
757 ip_vs_nat_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
764 if (unlikely(cp->flags & IP_VS_CONN_F_NO_CPORT)) {
770 ip_vs_conn_fill_cport(cp, *p);
775 local = __ip_vs_get_out_rt(cp->ipvs, cp->af, skb, cp->dest, cp->daddr.ip,
787 if (cp->flags & IP_VS_CONN_F_SYNC && local) {
801 if (local && ipv4_is_loopback(cp->daddr.ip) && was_input) {
816 if (pp->dnat_handler && !pp->dnat_handler(skb, pp, cp, ipvsh))
818 ip_hdr(skb)->daddr = cp->daddr.ip;
830 rc = ip_vs_nat_send_or_cont(NFPROTO_IPV4, skb, cp, local);
841 ip_vs_nat_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
848 if (unlikely(cp->flags & IP_VS_CONN_F_NO_CPORT && !ipvsh->fragoffs)) {
853 ip_vs_conn_fill_cport(cp, *p);
857 local = __ip_vs_get_out_rt_v6(cp->ipvs, cp->af, skb, cp->dest,
858 &cp->daddr.in6,
871 if (cp->flags & IP_VS_CONN_F_SYNC && local) {
886 ipv6_addr_type(&cp->daddr.in6) & IPV6_ADDR_LOOPBACK) {
901 if (pp->dnat_handler && !pp->dnat_handler(skb, pp, cp, ipvsh))
903 ipv6_hdr(skb)->daddr = cp->daddr.in6;
914 rc = ip_vs_nat_send_or_cont(NFPROTO_IPV6, skb, cp, local);
1007 struct ip_vs_conn *cp, __u8 *next_protocol)
1017 if ((cp->dest->tun_flags & IP_VS_TUNNEL_ENCAP_FLAG_REMCSUM) &&
1068 dport = cp->dest->tun_port;
1081 struct ip_vs_conn *cp, __u8 *next_protocol)
1088 if (cp->dest->tun_flags & IP_VS_TUNNEL_ENCAP_FLAG_CSUM)
1101 * destination will be set to cp->daddr. Most code of this function
1117 ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
1120 struct netns_ipvs *ipvs = cp->ipvs;
1136 local = __ip_vs_get_out_rt(ipvs, cp->af, skb, cp->dest, cp->daddr.ip,
1144 return ip_vs_send_or_cont(NFPROTO_IPV4, skb, cp, 1);
1154 tun_type = cp->dest->tun_type;
1155 tun_flags = cp->dest->tun_flags;
1180 skb = ip_vs_prepare_tunneled_skb(skb, cp->af, max_headroom,
1186 gso_type = __tun_gso_type_mask(AF_INET, cp->af);
1215 if (ipvs_gue_encap(net, skb, cp, &next_protocol))
1222 udp_set_csum(!check, skb, saddr, cp->daddr.ip, skb->len);
1224 ipvs_gre_encap(net, skb, cp, &next_protocol);
1239 iph->daddr = cp->daddr.ip;
1247 ret = ip_vs_tunnel_xmit_prepare(skb, cp);
1262 ip_vs_tunnel_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
1265 struct netns_ipvs *ipvs = cp->ipvs;
1280 local = __ip_vs_get_out_rt_v6(ipvs, cp->af, skb, cp->dest,
1281 &cp->daddr.in6,
1289 return ip_vs_send_or_cont(NFPROTO_IPV6, skb, cp, 1);
1299 tun_type = cp->dest->tun_type;
1300 tun_flags = cp->dest->tun_flags;
1323 skb = ip_vs_prepare_tunneled_skb(skb, cp->af, max_headroom,
1329 gso_type = __tun_gso_type_mask(AF_INET6, cp->af);
1358 if (ipvs_gue_encap(net, skb, cp, &next_protocol))
1365 udp6_set_csum(!check, skb, &saddr, &cp->daddr.in6, skb->len);
1367 ipvs_gre_encap(net, skb, cp, &next_protocol);
1382 iph->daddr = cp->daddr.in6;
1389 ret = ip_vs_tunnel_xmit_prepare(skb, cp);
1409 ip_vs_dr_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
1414 local = __ip_vs_get_out_rt(cp->ipvs, cp->af, skb, cp->dest, cp->daddr.ip,
1421 return ip_vs_send_or_cont(NFPROTO_IPV4, skb, cp, 1);
1428 ip_vs_send_or_cont(NFPROTO_IPV4, skb, cp, 0);
1439 ip_vs_dr_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
1444 local = __ip_vs_get_out_rt_v6(cp->ipvs, cp->af, skb, cp->dest,
1445 &cp->daddr.in6,
1453 return ip_vs_send_or_cont(NFPROTO_IPV6, skb, cp, 1);
1458 ip_vs_send_or_cont(NFPROTO_IPV6, skb, cp, 0);
1474 ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
1486 if (IP_VS_FWD_METHOD(cp) != IP_VS_CONN_F_MASQ) {
1487 if (cp->packet_xmit)
1488 rc = cp->packet_xmit(skb, cp, pp, iph);
1492 atomic_inc(&cp->in_pkts);
1505 local = __ip_vs_get_out_rt(cp->ipvs, cp->af, skb, cp->dest, cp->daddr.ip, rt_mode,
1516 if (cp->flags & IP_VS_CONN_F_SYNC && local) {
1523 __func__, &cp->daddr.ip);
1530 if (local && ipv4_is_loopback(cp->daddr.ip) && was_input) {
1533 __func__, &cp->daddr.ip);
1544 ip_vs_nat_icmp(skb, pp, cp, 0);
1549 return ip_vs_nat_send_or_cont(NFPROTO_IPV4, skb, cp, local);
1559 ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
1571 if (IP_VS_FWD_METHOD(cp) != IP_VS_CONN_F_MASQ) {
1572 if (cp->packet_xmit)
1573 rc = cp->packet_xmit(skb, cp, pp, ipvsh);
1577 atomic_inc(&cp->in_pkts);
1589 local = __ip_vs_get_out_rt_v6(cp->ipvs, cp->af, skb, cp->dest,
1590 &cp->daddr.in6, NULL, ipvsh, 0, rt_mode);
1599 if (cp->flags & IP_VS_CONN_F_SYNC && local) {
1606 __func__, &cp->daddr.in6);
1614 ipv6_addr_type(&cp->daddr.in6) & IPV6_ADDR_LOOPBACK) {
1617 __func__, &cp->daddr.in6);
1628 ip_vs_nat_icmp_v6(skb, pp, cp, 0);
1633 return ip_vs_nat_send_or_cont(NFPROTO_IPV6, skb, cp, local);