policy_module(opensm)

########################################
#
# Declarations
#

type opensm_t;
type opensm_exec_t;
init_daemon_domain(opensm_t, opensm_exec_t)

type opensm_conf_t;
files_config_file(opensm_conf_t)

type opensm_cache_t;
files_type(opensm_cache_t)

type opensm_log_t;
logging_log_file(opensm_log_t)

########################################
#
# opensm local policy
#

allow opensm_t self:process { getsched signal };
allow opensm_t self:unix_dgram_socket create_socket_perms;

read_files_pattern(opensm_t, opensm_conf_t, opensm_conf_t)

manage_dirs_pattern(opensm_t, opensm_cache_t, opensm_cache_t)
manage_files_pattern(opensm_t, opensm_cache_t, opensm_cache_t)
files_var_filetrans(opensm_t, opensm_cache_t, dir)

create_files_pattern(opensm_t, opensm_log_t, opensm_log_t)
append_files_pattern(opensm_t, opensm_log_t, opensm_log_t)
rw_files_pattern(opensm_t, opensm_log_t, opensm_log_t)
logging_log_filetrans(opensm_t, opensm_log_t, file)

dev_read_sysfs(opensm_t)
dev_rw_infiniband(opensm_t)

logging_send_syslog_msg(opensm_t)

miscfiles_read_localization(opensm_t)
