00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __RSBAC_NETWORK_H
00010 #define __RSBAC_NETWORK_H
00011
00012 #include <rsbac/types.h>
00013 #include <rsbac/network_types.h>
00014 #include <linux/net.h>
00015 #include <linux/in.h>
00016 #include <linux/un.h>
00017 #include <net/sock.h>
00018 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
00019 #include <net/inet_sock.h>
00020 #endif
00021 #include <net/af_unix.h>
00022 #include <net/route.h>
00023
00024
00025
00026 int rsbac_ta_net_list_all_netdev(rsbac_list_ta_number_t ta_number, rsbac_netdev_id_t ** id_pp);
00027
00028 static inline int rsbac_net_list_all_netdev(rsbac_netdev_id_t ** id_pp)
00029 {
00030 return rsbac_ta_net_list_all_netdev(0, id_pp);
00031 }
00032
00033 __u32 rsbac_net_make_mask_u32(__u8 valid_bits);
00034
00035 int rsbac_net_compare_data(void * data1, void * data2);
00036
00037 int rsbac_net_get_id(
00038 rsbac_list_ta_number_t ta_number,
00039 struct rsbac_net_description_t * desc_p,
00040 rsbac_net_temp_id_t * id_p);
00041
00042
00043
00044 int rsbac_ta_net_lookup_templates(
00045 rsbac_list_ta_number_t ta_number,
00046 struct rsbac_net_obj_desc_t * netobj_p,
00047 rsbac_net_temp_id_t * local_temp_p,
00048 rsbac_net_temp_id_t * remote_temp_p);
00049
00050 static inline int rsbac_net_lookup_templates(
00051 struct rsbac_net_obj_desc_t * netobj_p,
00052 rsbac_net_temp_id_t * local_temp_p,
00053 rsbac_net_temp_id_t * remote_temp_p)
00054 {
00055 return rsbac_ta_net_lookup_templates(0, netobj_p, local_temp_p, remote_temp_p);
00056 }
00057
00058 int rsbac_ta_net_template(
00059 rsbac_list_ta_number_t ta_number,
00060 enum rsbac_net_temp_syscall_t call,
00061 rsbac_net_temp_id_t id,
00062 union rsbac_net_temp_syscall_data_t * data_p);
00063
00064 static inline int rsbac_net_template(enum rsbac_net_temp_syscall_t call,
00065 rsbac_net_temp_id_t id,
00066 union rsbac_net_temp_syscall_data_t * data_p)
00067 {
00068 return rsbac_ta_net_template(0, call, id, data_p);
00069 }
00070
00071 int rsbac_ta_net_list_all_template(rsbac_list_ta_number_t ta_number,
00072 rsbac_net_temp_id_t ** id_pp);
00073
00074 static inline int rsbac_net_list_all_template(rsbac_net_temp_id_t ** id_pp)
00075 {
00076 return rsbac_ta_net_list_all_template(0, id_pp);
00077 }
00078
00079 int rsbac_ta_net_template_exist(rsbac_list_ta_number_t ta_number, rsbac_net_temp_id_t temp);
00080
00081 static inline int rsbac_net_template_exist(rsbac_net_temp_id_t temp)
00082 {
00083 return rsbac_ta_net_template_exist(0, temp);
00084 }
00085
00086
00087 int rsbac_net_remote_request(enum rsbac_adf_request_t request);
00088
00089 #endif