policy_module(fcoe)

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

type fcoemon_t;
type fcoemon_exec_t;
init_daemon_domain(fcoemon_t, fcoemon_exec_t)

type fcoemon_initrc_exec_t;
init_script_file(fcoemon_initrc_exec_t)

type fcoemon_runtime_t alias fcoemon_var_run_t;
files_runtime_file(fcoemon_runtime_t)

########################################
#
# Local policy
#

allow fcoemon_t self:capability { dac_override kill net_admin };
allow fcoemon_t self:fifo_file rw_fifo_file_perms;
allow fcoemon_t self:unix_stream_socket { accept listen };
allow fcoemon_t self:netlink_socket create_socket_perms;
allow fcoemon_t self:netlink_route_socket create_netlink_socket_perms;

manage_dirs_pattern(fcoemon_t, fcoemon_runtime_t, fcoemon_runtime_t)
manage_files_pattern(fcoemon_t, fcoemon_runtime_t, fcoemon_runtime_t)
manage_sock_files_pattern(fcoemon_t, fcoemon_runtime_t, fcoemon_runtime_t)
files_runtime_filetrans(fcoemon_t, fcoemon_runtime_t, { dir file })

files_read_etc_files(fcoemon_t)

dev_read_sysfs(fcoemon_t)

logging_send_syslog_msg(fcoemon_t)

miscfiles_read_localization(fcoemon_t)

optional_policy(`
	lldpad_dgram_send(fcoemon_t)
')
