return 0;
}
-struct tnl_ops capwap_tnl_ops = {
+static const struct tnl_ops capwap_tnl_ops = {
.tunnel_type = TNL_T_PROTO_CAPWAP,
.ipproto = IPPROTO_UDP,
.hdr_len = capwap_hdr_len,
.update_header = capwap_update_header,
};
-static struct vport *capwap_create(const char *name, const void __user *config)
+static struct vport *capwap_create(const struct vport_parms *parms)
{
- return tnl_create(name, config, &capwap_vport_ops, &capwap_tnl_ops);
+ return tnl_create(parms, &capwap_vport_ops, &capwap_tnl_ops);
}
/* Random value. Irrelevant as long as it's not 0 since we set the handler. */
goto error;
sin.sin_family = AF_INET;
- sin.sin_addr.s_addr = INADDR_ANY;
+ sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = htons(CAPWAP_DST_PORT);
err = kernel_bind(capwap_rcv_socket, (struct sockaddr *)&sin,
inet_frag_put(&fq->ifq, &frag_state);
}
-struct vport_ops capwap_vport_ops = {
+const struct vport_ops capwap_vport_ops = {
.type = "capwap",
.flags = VPORT_F_GEN_STATS,
.init = capwap_init,
.set_addr = tnl_set_addr,
.get_name = tnl_get_name,
.get_addr = tnl_get_addr,
+ .get_config = tnl_get_config,
.get_dev_flags = vport_gen_get_dev_flags,
.is_running = vport_gen_is_running,
.get_operstate = vport_gen_get_operstate,