diff options
Diffstat (limited to 'net/netlabel/netlabel_domainhash.h')
| -rw-r--r-- | net/netlabel/netlabel_domainhash.h | 51 | 
1 files changed, 24 insertions, 27 deletions
diff --git a/net/netlabel/netlabel_domainhash.h b/net/netlabel/netlabel_domainhash.h index 0261dda3f2d..680caf4dff5 100644 --- a/net/netlabel/netlabel_domainhash.h +++ b/net/netlabel/netlabel_domainhash.h @@ -6,7 +6,7 @@   * system manages static and dynamic label mappings for network protocols such   * as CIPSO and RIPSO.   * - * Author: Paul Moore <paul.moore@hp.com> + * Author: Paul Moore <paul@paul-moore.com>   *   */ @@ -24,8 +24,7 @@   * the GNU General Public License for more details.   *   * You should have received a copy of the GNU General Public License - * along with this program;  if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program;  if not, see <http://www.gnu.org/licenses/>.   *   */ @@ -43,37 +42,35 @@  #define NETLBL_DOMHSH_BITSIZE       7  /* Domain mapping definition structures */ +struct netlbl_domaddr_map { +	struct list_head list4; +	struct list_head list6; +}; +struct netlbl_dommap_def { +	u32 type; +	union { +		struct netlbl_domaddr_map *addrsel; +		struct cipso_v4_doi *cipso; +	}; +};  #define netlbl_domhsh_addr4_entry(iter) \  	container_of(iter, struct netlbl_domaddr4_map, list)  struct netlbl_domaddr4_map { -	u32 type; -	union { -		struct cipso_v4_doi *cipsov4; -	} type_def; +	struct netlbl_dommap_def def;  	struct netlbl_af4list list;  };  #define netlbl_domhsh_addr6_entry(iter) \  	container_of(iter, struct netlbl_domaddr6_map, list)  struct netlbl_domaddr6_map { -	u32 type; - -	/* NOTE: no 'type_def' union needed at present since we don't currently -	 *       support any IPv6 labeling protocols */ +	struct netlbl_dommap_def def;  	struct netlbl_af6list list;  }; -struct netlbl_domaddr_map { -	struct list_head list4; -	struct list_head list6; -}; +  struct netlbl_dom_map {  	char *domain; -	u32 type; -	union { -		struct cipso_v4_doi *cipsov4; -		struct netlbl_domaddr_map *addrsel; -	} type_def; +	struct netlbl_dommap_def def;  	u32 valid;  	struct list_head list; @@ -97,16 +94,16 @@ int netlbl_domhsh_remove_af4(const char *domain,  int netlbl_domhsh_remove(const char *domain, struct netlbl_audit *audit_info);  int netlbl_domhsh_remove_default(struct netlbl_audit *audit_info);  struct netlbl_dom_map *netlbl_domhsh_getentry(const char *domain); -struct netlbl_domaddr4_map *netlbl_domhsh_getentry_af4(const char *domain, -						       __be32 addr); +struct netlbl_dommap_def *netlbl_domhsh_getentry_af4(const char *domain, +						     __be32 addr); +#if IS_ENABLED(CONFIG_IPV6) +struct netlbl_dommap_def *netlbl_domhsh_getentry_af6(const char *domain, +						   const struct in6_addr *addr); +#endif /* IPv6 */ +  int netlbl_domhsh_walk(u32 *skip_bkt,  		     u32 *skip_chain,  		     int (*callback) (struct netlbl_dom_map *entry, void *arg),  		     void *cb_arg); -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -struct netlbl_domaddr6_map *netlbl_domhsh_getentry_af6(const char *domain, -						  const struct in6_addr *addr); -#endif /* IPv6 */ -  #endif  | 
