示例#1
0
文件: udp_tunnel.c 项目: 0day-ci/ovs
void rpl_setup_udp_tunnel_sock(struct net *net, struct socket *sock,
			       struct udp_tunnel_sock_cfg *cfg)
{
	struct sock *sk = sock->sk;

	/* Disable multicast loopback */
	inet_sk(sk)->mc_loop = 0;

	rcu_assign_sk_user_data(sk, cfg->sk_user_data);

	udp_sk(sk)->encap_type = cfg->encap_type;
	udp_sk(sk)->encap_rcv = cfg->encap_rcv;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)
	udp_sk(sk)->encap_destroy = cfg->encap_destroy;
#endif

	udp_tunnel_encap_enable(sock);
}
示例#2
0
void setup_udp_tunnel_sock(struct net *net, struct socket *sock,
                           struct udp_tunnel_sock_cfg *cfg)
{
    struct sock *sk = sock->sk;

    /* Disable multicast loopback */
    inet_sk(sk)->mc_loop = 0;

    /* Enable CHECKSUM_UNNECESSARY to CHECKSUM_COMPLETE conversion */
    udp_set_convert_csum(sk, true);

    rcu_assign_sk_user_data(sk, cfg->sk_user_data);

    udp_sk(sk)->encap_type = cfg->encap_type;
    udp_sk(sk)->encap_rcv = cfg->encap_rcv;
    udp_sk(sk)->encap_destroy = cfg->encap_destroy;

    udp_tunnel_encap_enable(sock);
}