70 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * netlink/route/rtnl.h		Routing Netlink
 | 
						|
 *
 | 
						|
 *	This library is free software; you can redistribute it and/or
 | 
						|
 *	modify it under the terms of the GNU Lesser General Public
 | 
						|
 *	License as published by the Free Software Foundation version 2.1
 | 
						|
 *	of the License.
 | 
						|
 *
 | 
						|
 * Copyright (c) 2003-2008 Thomas Graf <tgraf@suug.ch>
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef NETLINK_RTNL_H_
 | 
						|
#define NETLINK_RTNL_H_
 | 
						|
 | 
						|
#include <netlink/netlink.h>
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
/**
 | 
						|
 * @name Realms
 | 
						|
 * @{
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Mask specying the size of each realm part
 | 
						|
 * @ingroup rtnl
 | 
						|
 */
 | 
						|
#define RTNL_REALM_MASK (0xFFFF)
 | 
						|
 | 
						|
/**
 | 
						|
 * Extract FROM realm from a realms field
 | 
						|
 */
 | 
						|
#define RTNL_REALM_FROM(realm) ((realm) >> 16)
 | 
						|
 | 
						|
/**
 | 
						|
 * Extract TO realm from a realms field
 | 
						|
 */
 | 
						|
#define RTNL_REALM_TO(realm) ((realm) & RTNL_REALM_MASK)
 | 
						|
 | 
						|
/**
 | 
						|
 * Build a realms field
 | 
						|
 */
 | 
						|
#define RTNL_MAKE_REALM(from, to) \
 | 
						|
	((RTNL_REALM_TO(from) << 16) & RTNL_REALM_TO(to))
 | 
						|
 | 
						|
/** @} */
 | 
						|
 | 
						|
 | 
						|
/* General */
 | 
						|
extern int		nl_rtgen_request(struct nl_sock *, int, int, int);
 | 
						|
 | 
						|
/* Routing Type Translations */
 | 
						|
extern char *		nl_rtntype2str(int, char *, size_t);
 | 
						|
extern int		nl_str2rtntype(const char *);
 | 
						|
 | 
						|
/* Scope Translations */
 | 
						|
extern char *		rtnl_scope2str(int, char *, size_t);
 | 
						|
extern int		rtnl_str2scope(const char *);
 | 
						|
 | 
						|
/* Realms Translations */
 | 
						|
extern char *		rtnl_realms2str(uint32_t, char *, size_t);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |