summaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
authorAnand V. Avati <avati@blackhole.gluster.com>2010-08-12 05:05:01 +0000
committerAnand V. Avati <avati@dev.gluster.com>2010-08-12 03:55:12 -0700
commitb69a4f1e31726260a07f883cefac28ed29cc6a12 (patch)
tree864d706e8f4d02d6b3296665f74e110020a03d4c /rpc
parentf862864468c9d11d646bdcc347a1121fe75a1917 (diff)
portmap functionality in glusterd
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1314 (portmapper functionality) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1314
Diffstat (limited to 'rpc')
-rw-r--r--rpc/rpc-lib/src/protocol-common.h15
-rw-r--r--rpc/xdr/src/Makefile.am6
-rw-r--r--rpc/xdr/src/portmap-xdr.c192
-rw-r--r--rpc/xdr/src/portmap-xdr.h111
-rw-r--r--rpc/xdr/src/portmap.c189
-rw-r--r--rpc/xdr/src/portmap.h95
-rw-r--r--rpc/xdr/src/portmap.x45
7 files changed, 651 insertions, 2 deletions
diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h
index 7cff79be3..95ef06aef 100644
--- a/rpc/rpc-lib/src/protocol-common.h
+++ b/rpc/rpc-lib/src/protocol-common.h
@@ -123,6 +123,18 @@ enum gf_cli_procnum {
GF1_CLI_MAXVALUE,
};
+
+enum gf_pmap_procnum {
+ GF_PMAP_NULL = 0,
+ GF_PMAP_PORTBYBRICK,
+ GF_PMAP_BRICKBYPORT,
+ GF_PMAP_SIGNUP,
+ GF_PMAP_SIGNIN,
+ GF_PMAP_SIGNOUT,
+ GF_PMAP_MAXVALUE,
+};
+
+
#define GLUSTER3_1_FOP_PROGRAM 1298437 /* Completely random */
#define GLUSTER3_1_FOP_VERSION 310 /* 3.1.0 */
#define GLUSTER3_1_FOP_PROCCNT GFS3_OP_MAXVALUE
@@ -138,4 +150,7 @@ enum gf_cli_procnum {
#define GLUSTER_HNDSK_PROGRAM 14398633 /* Completely random */
#define GLUSTER_HNDSK_VERSION 1 /* 0.0.1 */
+#define GLUSTER_PMAP_PROGRAM 34123456
+#define GLUSTER_PMAP_VERSION 1
+
#endif /* !_PROTOCOL_COMMON_H */
diff --git a/rpc/xdr/src/Makefile.am b/rpc/xdr/src/Makefile.am
index 79063cd64..981f319b3 100644
--- a/rpc/xdr/src/Makefile.am
+++ b/rpc/xdr/src/Makefile.am
@@ -12,9 +12,11 @@ libgfxdr_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
libgfxdr_la_SOURCES = xdr-generic.c \
glusterfs3-xdr.c glusterfs3.c \
cli1-xdr.c cli1.c \
- glusterd1-xdr.c glusterd1.c
+ glusterd1-xdr.c glusterd1.c \
+ portmap-xdr.c portmap.c
noinst_HEADERS = xdr-generic.h \
glusterfs3-xdr.h glusterfs3.h \
cli1-xdr.h cli1.h \
- glusterd1-xdr.h glusterd1.h
+ glusterd1-xdr.h glusterd1.h \
+ portmap-xdr.h portmap.h
diff --git a/rpc/xdr/src/portmap-xdr.c b/rpc/xdr/src/portmap-xdr.c
new file mode 100644
index 000000000..a23eef9b3
--- /dev/null
+++ b/rpc/xdr/src/portmap-xdr.c
@@ -0,0 +1,192 @@
+/*
+ * Please do not edit this file.
+ * It was generated using rpcgen.
+ */
+
+#include "portmap-xdr.h"
+
+bool_t
+xdr_pmap_port_by_brick_req (XDR *xdrs, pmap_port_by_brick_req *objp)
+{
+ if (!xdr_string (xdrs, &objp->brick, ~0))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_pmap_port_by_brick_rsp (XDR *xdrs, pmap_port_by_brick_rsp *objp)
+{
+ register int32_t *buf;
+
+
+ if (xdrs->x_op == XDR_ENCODE) {
+ buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->op_ret))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->op_errno))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->status))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->port))
+ return FALSE;
+ } else {
+ IXDR_PUT_LONG(buf, objp->op_ret);
+ IXDR_PUT_LONG(buf, objp->op_errno);
+ IXDR_PUT_LONG(buf, objp->status);
+ IXDR_PUT_LONG(buf, objp->port);
+ }
+ return TRUE;
+ } else if (xdrs->x_op == XDR_DECODE) {
+ buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->op_ret))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->op_errno))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->status))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->port))
+ return FALSE;
+ } else {
+ objp->op_ret = IXDR_GET_LONG(buf);
+ objp->op_errno = IXDR_GET_LONG(buf);
+ objp->status = IXDR_GET_LONG(buf);
+ objp->port = IXDR_GET_LONG(buf);
+ }
+ return TRUE;
+ }
+
+ if (!xdr_int (xdrs, &objp->op_ret))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->op_errno))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->status))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->port))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_pmap_brick_by_port_req (XDR *xdrs, pmap_brick_by_port_req *objp)
+{
+ if (!xdr_int (xdrs, &objp->port))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_pmap_brick_by_port_rsp (XDR *xdrs, pmap_brick_by_port_rsp *objp)
+{
+ register int32_t *buf;
+
+
+ if (xdrs->x_op == XDR_ENCODE) {
+ buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->op_ret))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->op_errno))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->status))
+ return FALSE;
+
+ } else {
+ IXDR_PUT_LONG(buf, objp->op_ret);
+ IXDR_PUT_LONG(buf, objp->op_errno);
+ IXDR_PUT_LONG(buf, objp->status);
+ }
+ if (!xdr_string (xdrs, &objp->brick, ~0))
+ return FALSE;
+ return TRUE;
+ } else if (xdrs->x_op == XDR_DECODE) {
+ buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->op_ret))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->op_errno))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->status))
+ return FALSE;
+
+ } else {
+ objp->op_ret = IXDR_GET_LONG(buf);
+ objp->op_errno = IXDR_GET_LONG(buf);
+ objp->status = IXDR_GET_LONG(buf);
+ }
+ if (!xdr_string (xdrs, &objp->brick, ~0))
+ return FALSE;
+ return TRUE;
+ }
+
+ if (!xdr_int (xdrs, &objp->op_ret))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->op_errno))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->status))
+ return FALSE;
+ if (!xdr_string (xdrs, &objp->brick, ~0))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_pmap_signup_req (XDR *xdrs, pmap_signup_req *objp)
+{
+ if (!xdr_string (xdrs, &objp->brick, ~0))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->port))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_pmap_signup_rsp (XDR *xdrs, pmap_signup_rsp *objp)
+{
+ if (!xdr_int (xdrs, &objp->op_ret))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->op_errno))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_pmap_signin_req (XDR *xdrs, pmap_signin_req *objp)
+{
+ if (!xdr_string (xdrs, &objp->brick, ~0))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->port))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_pmap_signin_rsp (XDR *xdrs, pmap_signin_rsp *objp)
+{
+ if (!xdr_int (xdrs, &objp->op_ret))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->op_errno))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_pmap_signout_req (XDR *xdrs, pmap_signout_req *objp)
+{
+ if (!xdr_string (xdrs, &objp->brick, ~0))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->port))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_pmap_signout_rsp (XDR *xdrs, pmap_signout_rsp *objp)
+{
+ if (!xdr_int (xdrs, &objp->op_ret))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->op_errno))
+ return FALSE;
+ return TRUE;
+}
diff --git a/rpc/xdr/src/portmap-xdr.h b/rpc/xdr/src/portmap-xdr.h
new file mode 100644
index 000000000..7f8141ab2
--- /dev/null
+++ b/rpc/xdr/src/portmap-xdr.h
@@ -0,0 +1,111 @@
+/*
+ * Please do not edit this file.
+ * It was generated using rpcgen.
+ */
+
+#ifndef _PORTMAP_H_RPCGEN
+#define _PORTMAP_H_RPCGEN
+
+#include <rpc/rpc.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+struct pmap_port_by_brick_req {
+ char *brick;
+};
+typedef struct pmap_port_by_brick_req pmap_port_by_brick_req;
+
+struct pmap_port_by_brick_rsp {
+ int op_ret;
+ int op_errno;
+ int status;
+ int port;
+};
+typedef struct pmap_port_by_brick_rsp pmap_port_by_brick_rsp;
+
+struct pmap_brick_by_port_req {
+ int port;
+};
+typedef struct pmap_brick_by_port_req pmap_brick_by_port_req;
+
+struct pmap_brick_by_port_rsp {
+ int op_ret;
+ int op_errno;
+ int status;
+ char *brick;
+};
+typedef struct pmap_brick_by_port_rsp pmap_brick_by_port_rsp;
+
+struct pmap_signup_req {
+ char *brick;
+ int port;
+};
+typedef struct pmap_signup_req pmap_signup_req;
+
+struct pmap_signup_rsp {
+ int op_ret;
+ int op_errno;
+};
+typedef struct pmap_signup_rsp pmap_signup_rsp;
+
+struct pmap_signin_req {
+ char *brick;
+ int port;
+};
+typedef struct pmap_signin_req pmap_signin_req;
+
+struct pmap_signin_rsp {
+ int op_ret;
+ int op_errno;
+};
+typedef struct pmap_signin_rsp pmap_signin_rsp;
+
+struct pmap_signout_req {
+ char *brick;
+ int port;
+};
+typedef struct pmap_signout_req pmap_signout_req;
+
+struct pmap_signout_rsp {
+ int op_ret;
+ int op_errno;
+};
+typedef struct pmap_signout_rsp pmap_signout_rsp;
+
+/* the xdr functions */
+
+#if defined(__STDC__) || defined(__cplusplus)
+extern bool_t xdr_pmap_port_by_brick_req (XDR *, pmap_port_by_brick_req*);
+extern bool_t xdr_pmap_port_by_brick_rsp (XDR *, pmap_port_by_brick_rsp*);
+extern bool_t xdr_pmap_brick_by_port_req (XDR *, pmap_brick_by_port_req*);
+extern bool_t xdr_pmap_brick_by_port_rsp (XDR *, pmap_brick_by_port_rsp*);
+extern bool_t xdr_pmap_signup_req (XDR *, pmap_signup_req*);
+extern bool_t xdr_pmap_signup_rsp (XDR *, pmap_signup_rsp*);
+extern bool_t xdr_pmap_signin_req (XDR *, pmap_signin_req*);
+extern bool_t xdr_pmap_signin_rsp (XDR *, pmap_signin_rsp*);
+extern bool_t xdr_pmap_signout_req (XDR *, pmap_signout_req*);
+extern bool_t xdr_pmap_signout_rsp (XDR *, pmap_signout_rsp*);
+
+#else /* K&R C */
+extern bool_t xdr_pmap_port_by_brick_req ();
+extern bool_t xdr_pmap_port_by_brick_rsp ();
+extern bool_t xdr_pmap_brick_by_port_req ();
+extern bool_t xdr_pmap_brick_by_port_rsp ();
+extern bool_t xdr_pmap_signup_req ();
+extern bool_t xdr_pmap_signup_rsp ();
+extern bool_t xdr_pmap_signin_req ();
+extern bool_t xdr_pmap_signin_rsp ();
+extern bool_t xdr_pmap_signout_req ();
+extern bool_t xdr_pmap_signout_rsp ();
+
+#endif /* K&R C */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !_PORTMAP_H_RPCGEN */
diff --git a/rpc/xdr/src/portmap.c b/rpc/xdr/src/portmap.c
new file mode 100644
index 000000000..51c44a7d6
--- /dev/null
+++ b/rpc/xdr/src/portmap.c
@@ -0,0 +1,189 @@
+/*
+ Copyright (c) 2010 Gluster, Inc. <http://www.gluster.com>
+ This file is part of GlusterFS.
+
+ GlusterFS is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3 of the License,
+ or (at your option) any later version.
+
+ GlusterFS is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
+*/
+
+
+#include "portmap.h"
+
+
+ssize_t
+xdr_to_pmap_port_by_brick_req (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_port_by_brick_req);
+}
+
+
+ssize_t
+xdr_to_pmap_port_by_brick_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_port_by_brick_rsp);
+}
+
+
+ssize_t
+xdr_from_pmap_port_by_brick_req (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_port_by_brick_req);
+}
+
+
+ssize_t
+xdr_from_pmap_port_by_brick_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_port_by_brick_rsp);
+}
+
+
+
+ssize_t
+xdr_to_pmap_brick_by_port_req (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_brick_by_port_req);
+}
+
+
+ssize_t
+xdr_to_pmap_brick_by_port_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_brick_by_port_rsp);
+}
+
+
+ssize_t
+xdr_from_pmap_brick_by_port_req (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_brick_by_port_req);
+}
+
+
+ssize_t
+xdr_from_pmap_brick_by_port_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_brick_by_port_rsp);
+}
+
+
+
+
+ssize_t
+xdr_to_pmap_signup_req (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signup_req);
+}
+
+
+ssize_t
+xdr_to_pmap_signup_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signup_rsp);
+}
+
+
+ssize_t
+xdr_from_pmap_signup_req (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signup_req);
+}
+
+
+ssize_t
+xdr_from_pmap_signup_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signup_rsp);
+}
+
+
+
+
+ssize_t
+xdr_to_pmap_signin_req (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signin_req);
+}
+
+
+ssize_t
+xdr_to_pmap_signin_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signin_rsp);
+}
+
+
+ssize_t
+xdr_from_pmap_signin_req (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signin_req);
+}
+
+
+ssize_t
+xdr_from_pmap_signin_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signin_rsp);
+}
+
+
+
+
+ssize_t
+xdr_to_pmap_signout_req (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signout_req);
+}
+
+
+ssize_t
+xdr_to_pmap_signout_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_to_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signout_rsp);
+}
+
+
+ssize_t
+xdr_from_pmap_signout_req (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signout_req);
+}
+
+
+ssize_t
+xdr_from_pmap_signout_rsp (struct iovec inmsg, void *args)
+{
+ return xdr_serialize_generic (inmsg, (void *)args,
+ (xdrproc_t)xdr_pmap_signout_rsp);
+}
+
diff --git a/rpc/xdr/src/portmap.h b/rpc/xdr/src/portmap.h
new file mode 100644
index 000000000..1cfcca3eb
--- /dev/null
+++ b/rpc/xdr/src/portmap.h
@@ -0,0 +1,95 @@
+/*
+ Copyright (c) 2010 Gluster, Inc. <http://www.gluster.com>
+ This file is part of GlusterFS.
+
+ GlusterFS is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3 of the License,
+ or (at your option) any later version.
+
+ GlusterFS is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
+*/
+
+
+#ifndef _PORTMAP_H
+#define _PORTMAP_H
+
+#include <sys/uio.h>
+
+#include "xdr-generic.h"
+#include "portmap-xdr.h"
+
+
+ssize_t
+xdr_to_pmap_port_by_brick_req (struct iovec inmsg, void *args);
+
+ssize_t
+xdr_to_pmap_port_by_brick_rsp (struct iovec inmsg, void *args);
+
+ssize_t
+xdr_from_pmap_port_by_brick_req (struct iovec outmsg, void *args);
+
+ssize_t
+xdr_from_pmap_port_by_brick_rsp (struct iovec outmsg, void *args);
+
+
+ssize_t
+xdr_to_pmap_brick_by_port_req (struct iovec inmsg, void *args);
+
+ssize_t
+xdr_to_pmap_brick_by_port_rsp (struct iovec inmsg, void *args);
+
+ssize_t
+xdr_from_pmap_brick_by_port_req (struct iovec outmsg, void *args);
+
+ssize_t
+xdr_from_pmap_brick_by_port_rsp (struct iovec outmsg, void *args);
+
+
+ssize_t
+xdr_from_pmap_signup_req (struct iovec msg, void *args);
+
+ssize_t
+xdr_from_pmap_signup_rsp (struct iovec msg, void *args);
+
+ssize_t
+xdr_to_pmap_signup_req (struct iovec msg, void *args);
+
+ssize_t
+xdr_to_pmap_signup_rsp (struct iovec msg, void *args);
+
+
+ssize_t
+xdr_from_pmap_signin_req (struct iovec msg, void *args);
+
+ssize_t
+xdr_from_pmap_signin_rsp (struct iovec msg, void *args);
+
+ssize_t
+xdr_to_pmap_signin_req (struct iovec msg, void *args);
+
+ssize_t
+xdr_to_pmap_signin_rsp (struct iovec msg, void *args);
+
+
+ssize_t
+xdr_from_pmap_signout_req (struct iovec msg, void *args);
+
+ssize_t
+xdr_from_pmap_signout_rsp (struct iovec msg, void *args);
+
+ssize_t
+xdr_to_pmap_signout_req (struct iovec msg, void *args);
+
+ssize_t
+xdr_to_pmap_signout_rsp (struct iovec msg, void *args);
+
+
+#endif /* !_PORTMAP_H */
diff --git a/rpc/xdr/src/portmap.x b/rpc/xdr/src/portmap.x
new file mode 100644
index 000000000..6e9f07c45
--- /dev/null
+++ b/rpc/xdr/src/portmap.x
@@ -0,0 +1,45 @@
+
+struct pmap_port_by_brick_req {
+ string brick<>;
+};
+
+struct pmap_port_by_brick_rsp {
+ int op_ret;
+ int op_errno;
+ int status;
+ int port;
+};
+
+
+struct pmap_brick_by_port_req {
+ int port;
+};
+
+struct pmap_brick_by_port_rsp {
+ int op_ret;
+ int op_errno;
+ int status;
+ string brick<>;
+};
+
+
+struct pmap_signup_req {
+};
+
+struct pmap_signup_rsp {
+};
+
+
+struct pmap_signon_req {
+};
+
+struct pmap_signon_rsp {
+};
+
+
+struct pmap_signoff_req {
+};
+
+struct pmap_signoff_rsp {
+};
+