mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-08 12:18:42 +00:00
Netlink: move OS-specific headers and defines to sysdep
Minor changes from committer.
This commit is contained in:
parent
7b6c964977
commit
176fc68aed
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_SYSIO_H "sysdep/bsd/sysio.h"
|
||||||
#define CONFIG_INCLUDE_KRTSYS_H "sysdep/linux/krt-sys.h"
|
#define CONFIG_INCLUDE_KRTSYS_H "sysdep/linux/krt-sys.h"
|
||||||
|
#define CONFIG_INCLUDE_NLSYS_H "sysdep/bsd-netlink/netlink-sys.h"
|
||||||
#define CONFIG_FREEBSD_NETLINK
|
|
||||||
|
|
||||||
#ifndef AF_MPLS
|
|
||||||
#define AF_MPLS 39
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SO_RCVBUFFORCE
|
|
||||||
#define SO_RCVBUFFORCE SO_RCVBUF
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Link: sysdep/unix
|
Link: sysdep/unix
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#define CONFIG_INCLUDE_SYSIO_H "sysdep/linux/sysio.h"
|
#define CONFIG_INCLUDE_SYSIO_H "sysdep/linux/sysio.h"
|
||||||
#define CONFIG_INCLUDE_KRTSYS_H "sysdep/linux/krt-sys.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
|
#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 "lib/hash.h"
|
||||||
#include "conf/conf.h"
|
#include "conf/conf.h"
|
||||||
|
|
||||||
#ifdef CONFIG_LINUX_NETLINK
|
#include CONFIG_INCLUDE_NLSYS_H
|
||||||
#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
|
|
||||||
|
|
||||||
#define krt_ipv4(p) ((p)->af == AF_INET)
|
#define krt_ipv4(p) ((p)->af == AF_INET)
|
||||||
|
|
||||||
@ -320,7 +271,7 @@ nl_error(struct nlmsghdr *h, int ignore_esrch)
|
|||||||
return ENOBUFS;
|
return ENOBUFS;
|
||||||
}
|
}
|
||||||
e = (struct nlmsgerr *) NLMSG_DATA(h);
|
e = (struct nlmsgerr *) NLMSG_DATA(h);
|
||||||
ec = -e->error;
|
ec = netlink_error_to_os(e->error);
|
||||||
if (ec && !(ignore_esrch && (ec == ESRCH)))
|
if (ec && !(ignore_esrch && (ec == ESRCH)))
|
||||||
log_rl(&rl_netlink_err, L_WARN "Netlink: %s", strerror(ec));
|
log_rl(&rl_netlink_err, L_WARN "Netlink: %s", strerror(ec));
|
||||||
return ec;
|
return ec;
|
||||||
|
Loading…
Reference in New Issue
Block a user