mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
Netlink: move OS-specific headers and defines to sysdep
Minor changes from committer.
This commit is contained in:
parent
2300b83370
commit
ea9fa458f0
29
sysdep/bsd-netlink/netlink-sys.h
Normal file
29
sysdep/bsd-netlink/netlink-sys.h
Normal file
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Netlink FreeBSD-specific functions
|
||||
*
|
||||
* (c) 2022 Alexander Chernikov <melifaro@FreeBSD.org>
|
||||
*
|
||||
* Can be freely distributed and used under the terms of the GNU GPL.
|
||||
*/
|
||||
|
||||
#ifndef _BIRD_NETLINK_SYS_H_
|
||||
#define _BIRD_NETLINK_SYS_H_
|
||||
|
||||
#include <netlink/netlink.h>
|
||||
#include <netlink/netlink_route.h>
|
||||
|
||||
#ifndef AF_MPLS
|
||||
#define AF_MPLS 39
|
||||
#endif
|
||||
|
||||
#ifndef SO_RCVBUFFORCE
|
||||
#define SO_RCVBUFFORCE SO_RCVBUF
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
netlink_error_to_os(int error)
|
||||
{
|
||||
return (error);
|
||||
}
|
||||
|
||||
#endif
|
@ -17,16 +17,7 @@
|
||||
|
||||
#define CONFIG_INCLUDE_SYSIO_H "sysdep/bsd/sysio.h"
|
||||
#define CONFIG_INCLUDE_KRTSYS_H "sysdep/linux/krt-sys.h"
|
||||
|
||||
#define CONFIG_FREEBSD_NETLINK
|
||||
|
||||
#ifndef AF_MPLS
|
||||
#define AF_MPLS 39
|
||||
#endif
|
||||
|
||||
#ifndef SO_RCVBUFFORCE
|
||||
#define SO_RCVBUFFORCE SO_RCVBUF
|
||||
#endif
|
||||
#define CONFIG_INCLUDE_NLSYS_H "sysdep/bsd-netlink/netlink-sys.h"
|
||||
|
||||
/*
|
||||
Link: sysdep/unix
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
#define CONFIG_INCLUDE_SYSIO_H "sysdep/linux/sysio.h"
|
||||
#define CONFIG_INCLUDE_KRTSYS_H "sysdep/linux/krt-sys.h"
|
||||
#define CONFIG_INCLUDE_NLSYS_H "sysdep/linux/netlink-sys.h"
|
||||
|
||||
#define CONFIG_LINUX_NETLINK
|
||||
|
||||
|
63
sysdep/linux/netlink-sys.h
Normal file
63
sysdep/linux/netlink-sys.h
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* BIRD -- Linux Netlink Interface
|
||||
*
|
||||
* (c) 1999--2000 Martin Mares <mj@ucw.cz>
|
||||
*
|
||||
* Can be freely distributed and used under the terms of the GNU GPL.
|
||||
*/
|
||||
|
||||
#ifndef _BIRD_NETLINK_SYS_H_
|
||||
#define _BIRD_NETLINK_SYS_H_
|
||||
|
||||
#include <asm/types.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
|
||||
#ifdef HAVE_MPLS_KERNEL
|
||||
#include <linux/lwtunnel.h>
|
||||
#endif
|
||||
|
||||
#ifndef MSG_TRUNC /* Hack: Several versions of glibc miss this one :( */
|
||||
#define MSG_TRUNC 0x20
|
||||
#endif
|
||||
|
||||
#ifndef IFA_FLAGS
|
||||
#define IFA_FLAGS 8
|
||||
#endif
|
||||
|
||||
#ifndef IFF_LOWER_UP
|
||||
#define IFF_LOWER_UP 0x10000
|
||||
#endif
|
||||
|
||||
#ifndef RTA_TABLE
|
||||
#define RTA_TABLE 15
|
||||
#endif
|
||||
|
||||
#ifndef RTA_VIA
|
||||
#define RTA_VIA 18
|
||||
#endif
|
||||
|
||||
#ifndef RTA_NEWDST
|
||||
#define RTA_NEWDST 19
|
||||
#endif
|
||||
|
||||
#ifndef RTA_ENCAP_TYPE
|
||||
#define RTA_ENCAP_TYPE 21
|
||||
#endif
|
||||
|
||||
#ifndef RTA_ENCAP
|
||||
#define RTA_ENCAP 22
|
||||
#endif
|
||||
|
||||
#ifndef NETLINK_GET_STRICT_CHK
|
||||
#define NETLINK_GET_STRICT_CHK 12
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
netlink_error_to_os(int error)
|
||||
{
|
||||
return -error;
|
||||
}
|
||||
|
||||
#endif
|
@ -27,56 +27,7 @@
|
||||
#include "lib/hash.h"
|
||||
#include "conf/conf.h"
|
||||
|
||||
#ifdef CONFIG_LINUX_NETLINK
|
||||
#include <asm/types.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#endif
|
||||
#ifdef CONFIG_FREEBSD_NETLINK
|
||||
#include <netlink/netlink.h>
|
||||
#include <netlink/netlink_route.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MPLS_KERNEL
|
||||
#include <linux/lwtunnel.h>
|
||||
#endif
|
||||
|
||||
#ifndef MSG_TRUNC /* Hack: Several versions of glibc miss this one :( */
|
||||
#define MSG_TRUNC 0x20
|
||||
#endif
|
||||
|
||||
#ifndef IFA_FLAGS
|
||||
#define IFA_FLAGS 8
|
||||
#endif
|
||||
|
||||
#ifndef IFF_LOWER_UP
|
||||
#define IFF_LOWER_UP 0x10000
|
||||
#endif
|
||||
|
||||
#ifndef RTA_TABLE
|
||||
#define RTA_TABLE 15
|
||||
#endif
|
||||
|
||||
#ifndef RTA_VIA
|
||||
#define RTA_VIA 18
|
||||
#endif
|
||||
|
||||
#ifndef RTA_NEWDST
|
||||
#define RTA_NEWDST 19
|
||||
#endif
|
||||
|
||||
#ifndef RTA_ENCAP_TYPE
|
||||
#define RTA_ENCAP_TYPE 21
|
||||
#endif
|
||||
|
||||
#ifndef RTA_ENCAP
|
||||
#define RTA_ENCAP 22
|
||||
#endif
|
||||
|
||||
#ifndef NETLINK_GET_STRICT_CHK
|
||||
#define NETLINK_GET_STRICT_CHK 12
|
||||
#endif
|
||||
#include CONFIG_INCLUDE_NLSYS_H
|
||||
|
||||
#define krt_ipv4(p) ((p)->af == AF_INET)
|
||||
|
||||
@ -320,7 +271,7 @@ nl_error(struct nlmsghdr *h, int ignore_esrch)
|
||||
return ENOBUFS;
|
||||
}
|
||||
e = (struct nlmsgerr *) NLMSG_DATA(h);
|
||||
ec = -e->error;
|
||||
ec = netlink_error_to_os(e->error);
|
||||
if (ec && !(ignore_esrch && (ec == ESRCH)))
|
||||
log_rl(&rl_netlink_err, L_WARN "Netlink: %s", strerror(ec));
|
||||
return ec;
|
||||
|
Loading…
Reference in New Issue
Block a user