diff options
| author | Paul Moore <paul.moore@hp.com> | 2008-02-04 22:29:47 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-05 09:44:20 -0800 | 
| commit | eda61d32e8ad1d9102872f9a0abf3344bf9c5e67 (patch) | |
| tree | d1c11a47c97b3f29d54021cd4aa9c0b8963ed0c8 /include | |
| parent | 97829955ad291acec1d8b94e9911b3ceb1118bb1 (diff) | |
| download | olio-linux-3.10-eda61d32e8ad1d9102872f9a0abf3344bf9c5e67.tar.xz olio-linux-3.10-eda61d32e8ad1d9102872f9a0abf3344bf9c5e67.zip  | |
NetLabel: introduce a new kernel configuration API for NetLabel
Add a new set of configuration functions to the NetLabel/LSM API so that
LSMs can perform their own configuration of the NetLabel subsystem without
relying on assistance from userspace.
Signed-off-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
Reviewed-by: James Morris <jmorris@namei.org>
Cc: Chris Wright <chrisw@sous-sol.org>
Cc: Stephen Smalley <sds@tycho.nsa.gov>
Cc: Casey Schaufler <casey@schaufler-ca.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/net/netlabel.h | 47 | 
1 files changed, 41 insertions, 6 deletions
diff --git a/include/net/netlabel.h b/include/net/netlabel.h index b3213c7c530..0ca67d73c7a 100644 --- a/include/net/netlabel.h +++ b/include/net/netlabel.h @@ -36,6 +36,8 @@  #include <net/netlink.h>  #include <asm/atomic.h> +struct cipso_v4_doi; +  /*   * NetLabel - A management interface for maintaining network packet label   *            mapping tables for explicit packet labling protocols. @@ -103,12 +105,6 @@ struct netlbl_audit {  	uid_t loginuid;  }; -/* Domain mapping definition struct */ -struct netlbl_dom_map; - -/* Domain mapping operations */ -int netlbl_domhsh_remove(const char *domain, struct netlbl_audit *audit_info); -  /*   * LSM security attributes   */ @@ -344,6 +340,19 @@ static inline void netlbl_secattr_free(struct netlbl_lsm_secattr *secattr)  #ifdef CONFIG_NETLABEL  /* + * LSM configuration operations + */ +int netlbl_cfg_map_del(const char *domain, struct netlbl_audit *audit_info); +int netlbl_cfg_unlbl_add_map(const char *domain, +			     struct netlbl_audit *audit_info); +int netlbl_cfg_cipsov4_add(struct cipso_v4_doi *doi_def, +			   struct netlbl_audit *audit_info); +int netlbl_cfg_cipsov4_add_map(struct cipso_v4_doi *doi_def, +			       const char *domain, +			       struct netlbl_audit *audit_info); +int netlbl_cfg_cipsov4_del(u32 doi, struct netlbl_audit *audit_info); + +/*   * LSM security attribute operations   */  int netlbl_secattr_catmap_walk(struct netlbl_lsm_secattr_catmap *catmap, @@ -378,6 +387,32 @@ void netlbl_cache_invalidate(void);  int netlbl_cache_add(const struct sk_buff *skb,  		     const struct netlbl_lsm_secattr *secattr);  #else +static inline int netlbl_cfg_map_del(const char *domain, +				     struct netlbl_audit *audit_info) +{ +	return -ENOSYS; +} +static inline int netlbl_cfg_unlbl_add_map(const char *domain, +					   struct netlbl_audit *audit_info) +{ +	return -ENOSYS; +} +static inline int netlbl_cfg_cipsov4_add(struct cipso_v4_doi *doi_def, +					 struct netlbl_audit *audit_info) +{ +	return -ENOSYS; +} +static inline int netlbl_cfg_cipsov4_add_map(struct cipso_v4_doi *doi_def, +					     const char *domain, +					     struct netlbl_audit *audit_info) +{ +	return -ENOSYS; +} +static inline int netlbl_cfg_cipsov4_del(u32 doi, +					 struct netlbl_audit *audit_info) +{ +	return -ENOSYS; +}  static inline int netlbl_secattr_catmap_walk(  	                              struct netlbl_lsm_secattr_catmap *catmap,  				      u32 offset)  |