|
Packit |
eace71 |
/*
|
|
Packit |
eace71 |
* uIP iSCSI Daemon/Admin Management IPC
|
|
Packit |
eace71 |
*
|
|
Packit |
eace71 |
* This program is free software; you can redistribute it and/or modify
|
|
Packit |
eace71 |
* it under the terms of the GNU General Public License as published
|
|
Packit |
eace71 |
* by the Free Software Foundation; either version 2 of the License, or
|
|
Packit |
eace71 |
* (at your option) any later version.
|
|
Packit |
eace71 |
*
|
|
Packit |
eace71 |
* This program is distributed in the hope that it will be useful, but
|
|
Packit |
eace71 |
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
eace71 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
eace71 |
* General Public License for more details.
|
|
Packit |
eace71 |
*
|
|
Packit |
eace71 |
* See the file COPYING included with this distribution for more details.
|
|
Packit |
eace71 |
*/
|
|
Packit |
eace71 |
#ifndef UIP_MGMT_IPC_H
|
|
Packit |
eace71 |
#define UIP_MGMT_IPC_H
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
#include "types.h"
|
|
Packit |
eace71 |
#include "iscsi_if.h"
|
|
Packit |
eace71 |
#include "config.h"
|
|
Packit |
eace71 |
#include "mgmt_ipc.h"
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
#include "initiator.h"
|
|
Packit |
eace71 |
#include "transport.h"
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
#define ISCSID_UIP_NAMESPACE "ISCSID_UIP_ABSTRACT_NAMESPACE"
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
typedef enum iscsid_uip_cmd {
|
|
Packit |
eace71 |
ISCSID_UIP_IPC_UNKNOWN = 0,
|
|
Packit |
eace71 |
ISCSID_UIP_IPC_GET_IFACE = 1,
|
|
Packit |
eace71 |
ISCSID_UIP_IPC_PING = 2,
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
__ISCSID_UIP_IPC_MAX_COMMAND
|
|
Packit |
eace71 |
} iscsid_uip_cmd_e;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
typedef struct iscsid_uip_broadcast_header {
|
|
Packit |
eace71 |
iscsid_uip_cmd_e command;
|
|
Packit |
eace71 |
uint32_t payload_len;
|
|
Packit |
eace71 |
} iscsid_uip_broadcast_header_t;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
/* IPC Request */
|
|
Packit |
eace71 |
typedef struct iscsid_uip_broadcast {
|
|
Packit |
eace71 |
struct iscsid_uip_broadcast_header header;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
union {
|
|
Packit |
eace71 |
/* messages */
|
|
Packit |
eace71 |
struct ipc_broadcast_iface_rec {
|
|
Packit |
eace71 |
struct iface_rec rec;
|
|
Packit |
eace71 |
} iface_rec;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
struct ipc_broadcast_ping_rec {
|
|
Packit |
eace71 |
struct iface_rec ifrec;
|
|
Packit |
eace71 |
struct sockaddr_storage ipaddr;
|
|
Packit |
eace71 |
int datalen;
|
|
Packit |
eace71 |
int *status;
|
|
Packit |
eace71 |
} ping_rec;
|
|
Packit |
eace71 |
} u;
|
|
Packit |
eace71 |
} iscsid_uip_broadcast_t;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
typedef enum iscsid_uip_mgmt_ipc_err {
|
|
Packit |
eace71 |
ISCSID_UIP_MGMT_IPC_OK = 0,
|
|
Packit |
eace71 |
ISCSID_UIP_MGMT_IPC_ERR = 1,
|
|
Packit |
eace71 |
ISCSID_UIP_MGMT_IPC_ERR_NOT_FOUND = 2,
|
|
Packit |
eace71 |
ISCSID_UIP_MGMT_IPC_ERR_NOMEM = 3,
|
|
Packit |
eace71 |
ISCSID_UIP_MGMT_IPC_DEVICE_UP = 4,
|
|
Packit |
eace71 |
ISCSID_UIP_MGMT_IPC_DEVICE_INITIALIZING = 5,
|
|
Packit |
eace71 |
} iscsid_uip_mgmt_ipc_err_e;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
/* IPC Response */
|
|
Packit |
eace71 |
typedef struct iscsid_uip_mgmt_rsp {
|
|
Packit |
eace71 |
iscsid_uip_cmd_e command;
|
|
Packit |
eace71 |
iscsid_uip_mgmt_ipc_err_e err;
|
|
Packit |
eace71 |
enum iscsi_ping_status_code ping_sc;
|
|
Packit |
eace71 |
} iscsid_uip_rsp_t;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
extern int uip_broadcast_params(struct iscsi_transport *t,
|
|
Packit |
eace71 |
struct iface_rec *iface,
|
|
Packit |
eace71 |
struct iscsi_session *session);
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
extern int uip_broadcast_ping_req(struct iscsi_transport *t,
|
|
Packit |
eace71 |
struct iface_rec *iface, int datalen,
|
|
Packit |
eace71 |
struct sockaddr_storage *dst_addr,
|
|
Packit |
eace71 |
uint32_t *status);
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
#endif /* UIP_MGMT_IPC_H */
|