0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _NETLABEL_CALIPSO
0018 #define _NETLABEL_CALIPSO
0019
0020 #include <net/netlabel.h>
0021 #include <net/calipso.h>
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074 enum {
0075 NLBL_CALIPSO_C_UNSPEC,
0076 NLBL_CALIPSO_C_ADD,
0077 NLBL_CALIPSO_C_REMOVE,
0078 NLBL_CALIPSO_C_LIST,
0079 NLBL_CALIPSO_C_LISTALL,
0080 __NLBL_CALIPSO_C_MAX,
0081 };
0082
0083
0084 enum {
0085 NLBL_CALIPSO_A_UNSPEC,
0086 NLBL_CALIPSO_A_DOI,
0087
0088
0089 NLBL_CALIPSO_A_MTYPE,
0090
0091
0092
0093 __NLBL_CALIPSO_A_MAX,
0094 };
0095
0096 #define NLBL_CALIPSO_A_MAX (__NLBL_CALIPSO_A_MAX - 1)
0097
0098
0099 #if IS_ENABLED(CONFIG_IPV6)
0100 int netlbl_calipso_genl_init(void);
0101 #else
0102 static inline int netlbl_calipso_genl_init(void)
0103 {
0104 return 0;
0105 }
0106 #endif
0107
0108 int calipso_doi_add(struct calipso_doi *doi_def,
0109 struct netlbl_audit *audit_info);
0110 void calipso_doi_free(struct calipso_doi *doi_def);
0111 int calipso_doi_remove(u32 doi, struct netlbl_audit *audit_info);
0112 struct calipso_doi *calipso_doi_getdef(u32 doi);
0113 void calipso_doi_putdef(struct calipso_doi *doi_def);
0114 int calipso_doi_walk(u32 *skip_cnt,
0115 int (*callback)(struct calipso_doi *doi_def, void *arg),
0116 void *cb_arg);
0117 int calipso_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr);
0118 int calipso_sock_setattr(struct sock *sk,
0119 const struct calipso_doi *doi_def,
0120 const struct netlbl_lsm_secattr *secattr);
0121 void calipso_sock_delattr(struct sock *sk);
0122 int calipso_req_setattr(struct request_sock *req,
0123 const struct calipso_doi *doi_def,
0124 const struct netlbl_lsm_secattr *secattr);
0125 void calipso_req_delattr(struct request_sock *req);
0126 unsigned char *calipso_optptr(const struct sk_buff *skb);
0127 int calipso_getattr(const unsigned char *calipso,
0128 struct netlbl_lsm_secattr *secattr);
0129 int calipso_skbuff_setattr(struct sk_buff *skb,
0130 const struct calipso_doi *doi_def,
0131 const struct netlbl_lsm_secattr *secattr);
0132 int calipso_skbuff_delattr(struct sk_buff *skb);
0133 void calipso_cache_invalidate(void);
0134 int calipso_cache_add(const unsigned char *calipso_ptr,
0135 const struct netlbl_lsm_secattr *secattr);
0136
0137 #endif