[openib-general] [PATCH 6/8] [RFC] iser socket - removed !!!
Or Gerlitz
ogerlitz at voltaire.com
Thu Apr 6 05:19:44 PDT 2006
--- iser-libiscsi-canq2-ep-null/iser_socket.h 2006-04-06 15:09:28.000000000 +0300
+++ iser-libiscsi-canq2-ep/iser_socket.h 2006-04-06 15:09:41.000000000 +0300
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * $Id: iser_socket.h 5502 2006-02-27 09:09:38Z ogerlitz $
- */
-
-#ifndef __ISER_SOCKETS_H__
-#define __ISER_SOCKETS_H__
-
-#include <linux/net.h>
-
-struct iser_conn;
-
-#define AF_ISER 28 /* to be defined properly */
-
-int iser_register_sockets(void);
-void iser_unreg_sockets(void);
-
-struct iser_conn *iser_conn_from_sock(struct socket *sock);
-struct socket *iser_conn_to_sock(struct iser_conn *iser_conn);
-#endif /* __ISER_SOCKETS_H__ */
--- iser-libiscsi-canq2-ep-null/iser_socket.c 2006-04-06 15:09:24.000000000 +0300
+++ iser-libiscsi-canq2-ep/iser_socket.c 2006-04-06 15:09:38.000000000 +0300
@@ -1,215 +0,0 @@
-/*
- * Copyright (c) 2005, 2006 Voltaire, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * $Id: iser_socket.c 5505 2006-02-27 12:48:53Z ogerlitz $
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/tcp.h>
-
-#include "iscsi_iser.h"
-#include "iser_socket.h"
-
-#define PF_ISER AF_ISER
-
-static int iser_sock_create(struct socket *, int);
-static int iser_sock_release(struct socket *);
-static int iser_sock_connect(struct socket *, struct sockaddr *, int, int);
-static int iser_sock_shutdown(struct socket *,int);
-static int iser_sock_getsockopt(struct socket *,int,int,char __user *,int __user *);
-static unsigned int iser_sock_poll(struct file *,struct socket *,
- struct poll_table_struct *);
-
-struct iser_sock {
- struct sock sock;
- struct iser_conn iser_conn;
-};
-
-static struct net_proto_family iser_proto_family = {
- .family = PF_ISER,
- .create = iser_sock_create,
- .authentication = 0,
- .encryption = 0,
- .encrypt_net = 0
-};
-
-static struct proto_ops iser_proto_ops = {
- .family = AF_ISER,
- .owner = THIS_MODULE,
-
- .connect = iser_sock_connect,
- .release = iser_sock_release,
- .shutdown = iser_sock_shutdown,
-
- .bind = sock_no_bind,
- .poll = iser_sock_poll,
- .socketpair = sock_no_socketpair,
- .accept = sock_no_accept,
- .getname = sock_no_getname,
- .ioctl = sock_no_ioctl,
- .listen = sock_no_listen,
- .setsockopt = sock_setsockopt,
- .getsockopt = iser_sock_getsockopt,
- .sendmsg = sock_no_sendmsg,
- .recvmsg = sock_no_recvmsg,
- .mmap = sock_no_mmap,
- .sendpage = sock_no_sendpage
-};
-
-static struct proto iser_sock_proto = {
- .name = "ib_iser",
- .owner = THIS_MODULE,
- .obj_size = sizeof(struct iser_sock)
-};
-
-struct iser_conn *iser_conn_from_sock(struct socket *sock)
-{
- struct iser_sock *iser_sk = (struct iser_sock *)sock->sk;
-
- return &iser_sk->iser_conn;
-}
-
-struct socket *iser_conn_to_sock(struct iser_conn *iser_conn)
-{
- struct iser_sock *iser_sk;
- iser_sk = container_of(iser_conn, struct iser_sock, iser_conn);
-
- return iser_sk->sock.sk_socket;
-}
-
-int iser_register_sockets(void)
-{
- int error;
-
- error = proto_register(&iser_sock_proto, 1);
- if (error < 0) {
- iser_err("proto_register failed (%d)\n", error);
- return error;
- }
-
- error = sock_register(&iser_proto_family);
- if (error < 0) {
- iser_err("sock_register failed (%d)\n", error);
- proto_unregister(&iser_sock_proto);
- }
-
- return 0;
-}
-
-void iser_unreg_sockets(void)
-{
- sock_unregister(PF_ISER);
- proto_unregister(&iser_sock_proto);
-}
-
-static int iser_sock_create(struct socket *sock, int protocol)
-{
- struct iser_sock *iser_sk = NULL;
-
- if (sock->type != SOCK_STREAM)
- return -ESOCKTNOSUPPORT;
-
- iser_sk = (struct iser_sock *)sk_alloc(PF_INET, GFP_KERNEL,
- &iser_sock_proto, 1);
- if (iser_sk == NULL)
- return -ENOBUFS;
-
- sock_init_data(sock, &iser_sk->sock);
- iser_sk->sock.sk_destruct = NULL;
- iser_sk->sock.sk_family = PF_ISER;
- iser_sk->sock.sk_sndbuf = 64*1024;
-
- if (iser_conn_init(&iser_sk->iser_conn) != 0)
- return -ENOMEM;
-
- sock->ops = &iser_proto_ops;
- sock->state = SS_UNCONNECTED;
- sock_graft(&iser_sk->sock, sock);
-
- return 0;
-}
-
-int iser_sock_connect(struct socket *sock, struct sockaddr *uservaddr,
- int sockaddr_len, int flags)
-{
- struct sockaddr_in *dst_addr = (struct sockaddr_in *)uservaddr;
- struct iser_sock *iser_sk = (struct iser_sock *)sock->sk;
- struct iser_conn *iser_conn = &iser_sk->iser_conn;
- int err = 0;
-
- iser_err("dst_addr ip %.8x (%d.%d.%d.%d) port %.4x=%d\n",
- dst_addr->sin_addr.s_addr, NIPQUAD(dst_addr->sin_addr),
- dst_addr->sin_port, dst_addr->sin_port);
-
- err = iser_connect(iser_conn, NULL, dst_addr);
- if (err)
- iser_err("conn_establish failed: %d\n", err);
- return err;
-}
-
-static inline void iser_sock_free(struct socket *sock)
-{
- struct sock *sk = sock->sk;
- sock->sk = NULL;
- sock_orphan(sk);
- sk_free(sk);
-}
-
-int iser_sock_release(struct socket *sock)
-{
- struct iser_sock *iser_sock = (struct iser_sock *)sock->sk;
- struct iser_conn *iser_conn = &iser_sock->iser_conn;
- int iser_err = 0;
-
- if (atomic_read(&iser_conn->state) == ISER_CONN_DOWN)
- iser_sock_free(sock);
- else
- iser_err = -EPERM;
- return iser_err;
-}
-
-int iser_sock_shutdown(struct socket *sock, int how)
-{
- return 0;
-}
-
-static int iser_sock_getsockopt(struct socket *sock, int level, int optname,
- char __user *optval, int __user *optlen)
-{
- return 0;
-}
-
-static unsigned int iser_sock_poll(struct file *file, struct socket *sock,
- struct poll_table_struct *wait)
-{
- return POLLOUT;
-}
More information about the general
mailing list