176 lines
5 KiB
C
176 lines
5 KiB
C
/*
|
|
* This file is part of Portals, http://www.sf.net/projects/lustre/
|
|
*
|
|
* Portals is free software; you can redistribute it and/or
|
|
* modify it under the terms of version 2 of the GNU General Public
|
|
* License as published by the Free Software Foundation.
|
|
*
|
|
* Portals 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.
|
|
*
|
|
* header for lnet ioctl
|
|
*/
|
|
#ifndef _LNETCTL_H_
|
|
#define _LNETCTL_H_
|
|
|
|
#include "types.h"
|
|
|
|
/** \addtogroup lnet_fault_simulation
|
|
* @{
|
|
*/
|
|
|
|
enum {
|
|
LNET_CTL_DROP_ADD,
|
|
LNET_CTL_DROP_DEL,
|
|
LNET_CTL_DROP_RESET,
|
|
LNET_CTL_DROP_LIST,
|
|
LNET_CTL_DELAY_ADD,
|
|
LNET_CTL_DELAY_DEL,
|
|
LNET_CTL_DELAY_RESET,
|
|
LNET_CTL_DELAY_LIST,
|
|
};
|
|
|
|
#define LNET_ACK_BIT BIT(0)
|
|
#define LNET_PUT_BIT BIT(1)
|
|
#define LNET_GET_BIT BIT(2)
|
|
#define LNET_REPLY_BIT BIT(3)
|
|
|
|
/** ioctl parameter for LNet fault simulation */
|
|
struct lnet_fault_attr {
|
|
/**
|
|
* source NID of drop rule
|
|
* LNET_NID_ANY is wildcard for all sources
|
|
* 255.255.255.255@net is wildcard for all addresses from @net
|
|
*/
|
|
lnet_nid_t fa_src;
|
|
/** destination NID of drop rule, see \a dr_src for details */
|
|
lnet_nid_t fa_dst;
|
|
/**
|
|
* Portal mask to drop, -1 means all portals, for example:
|
|
* fa_ptl_mask = (1 << _LDLM_CB_REQUEST_PORTAL ) |
|
|
* (1 << LDLM_CANCEL_REQUEST_PORTAL)
|
|
*
|
|
* If it is non-zero then only PUT and GET will be filtered, otherwise
|
|
* there is no portal filter, all matched messages will be checked.
|
|
*/
|
|
__u64 fa_ptl_mask;
|
|
/**
|
|
* message types to drop, for example:
|
|
* dra_type = LNET_DROP_ACK_BIT | LNET_DROP_PUT_BIT
|
|
*
|
|
* If it is non-zero then only specified message types are filtered,
|
|
* otherwise all message types will be checked.
|
|
*/
|
|
__u32 fa_msg_mask;
|
|
union {
|
|
/** message drop simulation */
|
|
struct {
|
|
/** drop rate of this rule */
|
|
__u32 da_rate;
|
|
/**
|
|
* time interval of message drop, it is exclusive
|
|
* with da_rate
|
|
*/
|
|
__u32 da_interval;
|
|
} drop;
|
|
/** message latency simulation */
|
|
struct {
|
|
__u32 la_rate;
|
|
/**
|
|
* time interval of message delay, it is exclusive
|
|
* with la_rate
|
|
*/
|
|
__u32 la_interval;
|
|
/** latency to delay */
|
|
__u32 la_latency;
|
|
} delay;
|
|
__u64 space[8];
|
|
} u;
|
|
};
|
|
|
|
/** fault simluation stats */
|
|
struct lnet_fault_stat {
|
|
/** total # matched messages */
|
|
__u64 fs_count;
|
|
/** # dropped LNET_MSG_PUT by this rule */
|
|
__u64 fs_put;
|
|
/** # dropped LNET_MSG_ACK by this rule */
|
|
__u64 fs_ack;
|
|
/** # dropped LNET_MSG_GET by this rule */
|
|
__u64 fs_get;
|
|
/** # dropped LNET_MSG_REPLY by this rule */
|
|
__u64 fs_reply;
|
|
union {
|
|
struct {
|
|
/** total # dropped messages */
|
|
__u64 ds_dropped;
|
|
} drop;
|
|
struct {
|
|
/** total # delayed messages */
|
|
__u64 ls_delayed;
|
|
} delay;
|
|
__u64 space[8];
|
|
} u;
|
|
};
|
|
|
|
/** @} lnet_fault_simulation */
|
|
|
|
#define LNET_DEV_ID 0
|
|
#define LNET_DEV_PATH "/dev/lnet"
|
|
#define LNET_DEV_MAJOR 10
|
|
#define LNET_DEV_MINOR 240
|
|
#define OBD_DEV_ID 1
|
|
#define OBD_DEV_NAME "obd"
|
|
#define OBD_DEV_PATH "/dev/" OBD_DEV_NAME
|
|
#define OBD_DEV_MAJOR 10
|
|
#define OBD_DEV_MINOR 241
|
|
#define SMFS_DEV_ID 2
|
|
#define SMFS_DEV_PATH "/dev/snapdev"
|
|
#define SMFS_DEV_MAJOR 10
|
|
#define SMFS_DEV_MINOR 242
|
|
|
|
int ptl_initialize(int argc, char **argv);
|
|
int jt_ptl_network(int argc, char **argv);
|
|
int jt_ptl_list_nids(int argc, char **argv);
|
|
int jt_ptl_which_nid(int argc, char **argv);
|
|
int jt_ptl_print_interfaces(int argc, char **argv);
|
|
int jt_ptl_add_interface(int argc, char **argv);
|
|
int jt_ptl_del_interface(int argc, char **argv);
|
|
int jt_ptl_print_peers(int argc, char **argv);
|
|
int jt_ptl_add_peer(int argc, char **argv);
|
|
int jt_ptl_del_peer(int argc, char **argv);
|
|
int jt_ptl_print_connections(int argc, char **argv);
|
|
int jt_ptl_disconnect(int argc, char **argv);
|
|
int jt_ptl_push_connection(int argc, char **argv);
|
|
int jt_ptl_print_active_txs(int argc, char **argv);
|
|
int jt_ptl_ping(int argc, char **argv);
|
|
int jt_ptl_mynid(int argc, char **argv);
|
|
int jt_ptl_add_uuid(int argc, char **argv);
|
|
int jt_ptl_add_uuid_old(int argc, char **argv); /* backwards compatibility */
|
|
int jt_ptl_close_uuid(int argc, char **argv);
|
|
int jt_ptl_del_uuid(int argc, char **argv);
|
|
int jt_ptl_add_route(int argc, char **argv);
|
|
int jt_ptl_del_route(int argc, char **argv);
|
|
int jt_ptl_notify_router(int argc, char **argv);
|
|
int jt_ptl_print_routes(int argc, char **argv);
|
|
int jt_ptl_fail_nid(int argc, char **argv);
|
|
int jt_ptl_lwt(int argc, char **argv);
|
|
int jt_ptl_testprotocompat(int argc, char **argv);
|
|
int jt_ptl_memhog(int argc, char **argv);
|
|
|
|
int dbg_initialize(int argc, char **argv);
|
|
int jt_dbg_filter(int argc, char **argv);
|
|
int jt_dbg_show(int argc, char **argv);
|
|
int jt_dbg_list(int argc, char **argv);
|
|
int jt_dbg_debug_kernel(int argc, char **argv);
|
|
int jt_dbg_debug_daemon(int argc, char **argv);
|
|
int jt_dbg_debug_file(int argc, char **argv);
|
|
int jt_dbg_clear_debug_buf(int argc, char **argv);
|
|
int jt_dbg_mark_debug_buf(int argc, char **argv);
|
|
int jt_dbg_modules(int argc, char **argv);
|
|
int jt_dbg_panic(int argc, char **argv);
|
|
|
|
#endif
|