mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
Relase Overview:
* BFD the ability to listen for specific VRFs only
- Configure which VRFs the BFD daemon will listen to. By default, BFD listens to all VRFs
present in the system, including the default VRF. Default VRF must be specified as `default`.
* BGP SRv6/MPLS coexistence
- Allow MPLS and SRv6 to coexist on the same L3VRF, even for a given prefix. This feature is
important in brown fields where some operators want to migrate from MPLS to SRv6 backbone.
* BGP SRv6 locator per VRF support
- Ability to choose SRv6 locator per VRF.
* BGP Error handling (RFC 7606) for iBGP peers
- Before 10.5.0, once we received a malformed packet between iBGP peers, we always reset the
session, and with this release, we handle malformed packets the same way as for eBGP
(by withdrawing or discarding the malformed packets).
* BGP IPv6 Link-Local Capability is disabled by default
- In 10.4.0, this capability was enabled by default for a “datacenter” profile, but it’s disabled
for 10.5.0 and will be backported to 10.4.2 as well. The problem arises when the receiver has
configured a route-map with `set ipv6 next-hop prefer-global` and we send only an IPv6 Link-Local
address; therefore, it was decided to revert it to be disabled by default.
* BGP BGPID Next-Hop Characteristic
- In some cases, the BGP speaker sending a route might encode only a link-local address and no
global address. To provide uniqueness in this case, it is sufficient to associate the BGP
Identifier and AS Number of the route's sender. The BGP Identifier Characteristic
(BGPID) provides a way to convey this information if required.
* BGP EVPN flooding per VNI support
- Add an ability to adjust BUM flooding per VNI, instead of just globally. E.g., disable flooding
only for an arbitrary VNI.
* BGP RPKI strict mode
- RPKI strict mode prevents BGP from establishing a session if no RPKI cache server
is connected.
* BGP rejects AS_SET by default**
- Until 10.5.0, it was disabled by default, and since RFC 9774 was published, we switched this on
by default (to reject).
* BGP has lots of improvements for Graceful-Restart**
* PIM/PIMv6 route-map support to allow users to filter IGMP/MLD joins using source, group, and
interface combinations
* Support for multiple SRv6 locators
- This extends the SRv6 SID Manager to add support for multiple locators.
* Zebra 16-bit next hop weights support
- The weights used in ECMP’s consistent hashing have been widened from 8 bits to 16 bits since
the 6.12 Linux kernel.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
135 lines
5.3 KiB
BlitzBasic
135 lines
5.3 KiB
BlitzBasic
SUMMARY = "BGP/OSPF/RIP routing daemon"
|
|
DESCRIPTION = "FRRouting is a free and open source Internet routing protocol suite for Linux \
|
|
and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric \
|
|
and VRRP, with alpha support for EIGRP and NHRP."
|
|
HOMEPAGE = "https://frrouting.org/"
|
|
SECTION = "net"
|
|
|
|
LICENSE = "GPL-2.0-only & LGPL-2.1-only"
|
|
LIC_FILES_CHKSUM = "file://doc/licenses/GPL-2.0;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
|
file://doc/licenses/LGPL-2.1;md5=4fbd65380cdd255951079008b364516c"
|
|
|
|
|
|
SRC_URI = "git://github.com/FRRouting/frr.git;protocol=https;branch=stable/10.5;tag=frr-${PV} \
|
|
file://frr.pam \
|
|
"
|
|
SRCREV = "c41ba202c3f821a43091781181c73772501034ae"
|
|
|
|
UPSTREAM_CHECK_GITTAGREGEX = "frr-(?P<pver>\d+(\.\d+)+)$"
|
|
|
|
CVE_PRODUCT = "frrouting"
|
|
|
|
|
|
inherit autotools-brokensep python3native pkgconfig useradd systemd
|
|
|
|
DEPENDS:class-native = "bison-native elfutils-native"
|
|
DEPENDS:class-target = "bison-native json-c readline c-ares libyang frr-native protobuf-c-native protobuf-c"
|
|
|
|
RDEPENDS:${PN}:class-target = "iproute2 python3-core bash"
|
|
|
|
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
|
|
PACKAGECONFIG:class-native = ""
|
|
|
|
PACKAGECONFIG[fpm] = "--enable-fpm,--disable-fpm"
|
|
PACKAGECONFIG[pam] = "--with-libpam,--without-libpam,libpam"
|
|
PACKAGECONFIG[grpc] = "--enable-grpc,--disable-grpc,grpc-native grpc"
|
|
PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
|
|
PACKAGECONFIG[zeromq] = "--enable-zeromq,--disable-zeromq,zeromq"
|
|
PACKAGECONFIG[protobuf] = "--enable-protobuf,--disable-protobuf,protobuf-c-native protobuf-c"
|
|
PACKAGECONFIG[capabilities] = "--enable-capabilities,--disable-capabilities,libcap"
|
|
PACKAGECONFIG[cumulus] = "--enable-cumulus,--disable-cumulus"
|
|
PACKAGECONFIG[ospfclient] = "--enable-ospfapi --enable-ospfclient,--disable-ospfapi --disable-ospfclient"
|
|
|
|
EXTRA_OECONF:class-native = "--enable-clippy-only"
|
|
|
|
EXTRA_OECONF:class-target = "--sbindir=${libexecdir}/frr \
|
|
--sysconfdir=${sysconfdir}/frr \
|
|
--localstatedir=${localstatedir}/run/frr \
|
|
--enable-vtysh \
|
|
--enable-multipath=64 \
|
|
--enable-user=frr \
|
|
--enable-group=frr \
|
|
--enable-vty-group=frrvty \
|
|
--enable-configfile-mask=0640 \
|
|
--enable-logfile-mask=0640 \
|
|
--disable-doc \
|
|
--with-clippy=${RECIPE_SYSROOT_NATIVE}/usr/lib/clippy \
|
|
"
|
|
|
|
CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
|
|
|
|
# https://github.com/FRRouting/frr/issues/14469
|
|
DEBUG_PREFIX_MAP:remove = "-fcanon-prefix-map"
|
|
|
|
LDFLAGS:append:mips = " -latomic"
|
|
LDFLAGS:append:mipsel = " -latomic"
|
|
LDFLAGS:append:powerpc = " -latomic"
|
|
LDFLAGS:append:riscv32 = " -latomic"
|
|
|
|
SYSTEMD_PACKAGES = "${PN}"
|
|
SYSTEMD_SERVICE:${PN} = "frr.service"
|
|
SYSTEMD_AUTO_ENABLE = "disable"
|
|
|
|
inherit update-alternatives multilib_script multilib_header
|
|
|
|
ALTERNATIVE_PRIORITY = "100"
|
|
ALTERNATIVE:${PN} = " ietf-interfaces ietf-netconf-acm ietf-netconf-with-defaults ietf-netconf"
|
|
ALTERNATIVE_LINK_NAME[ietf-interfaces] = "${datadir}/yang/ietf-interfaces.yang"
|
|
ALTERNATIVE_LINK_NAME[ietf-netconf-acm] = "${datadir}/yang/ietf-netconf-acm.yang"
|
|
ALTERNATIVE_LINK_NAME[ietf-netconf-with-defaults] = "${datadir}/yang/ietf-netconf-with-defaults.yang"
|
|
ALTERNATIVE_LINK_NAME[ietf-netconf] = "${datadir}/yang/ietf-netconf.yang"
|
|
do_compile:prepend () {
|
|
sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' \
|
|
-e 's#${RECIPE_SYSROOT}##g' ${S}/lib/version.h
|
|
}
|
|
|
|
do_compile:class-native () {
|
|
oe_runmake clippy-only
|
|
}
|
|
|
|
do_install:class-native () {
|
|
install -d ${D}${libdir}
|
|
install -m 755 ${S}/lib/clippy ${D}${libdir}/clippy
|
|
}
|
|
|
|
do_install:append:class-target () {
|
|
install -m 0755 -d ${D}${sysconfdir}/frr
|
|
install -m 0755 -d ${D}${libexecdir}/frr
|
|
install -m 0640 ${S}/tools/etc/frr/* ${D}${sysconfdir}/frr/
|
|
chown frr:frrvty ${D}${sysconfdir}/frr
|
|
chown frr:frr ${D}${sysconfdir}/frr/*
|
|
chown frr:frrvty ${D}${sysconfdir}/frr/vtysh.conf
|
|
chmod 640 ${D}${sysconfdir}/frr/*
|
|
|
|
if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
|
|
install -d ${D}/${sysconfdir}/pam.d
|
|
install -m 644 ${UNPACKDIR}/frr.pam ${D}/${sysconfdir}/pam.d/frr
|
|
fi
|
|
|
|
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
|
|
install -d ${D}${sysconfdir}/init.d
|
|
install -m 0755 ${B}/tools/frrinit.sh ${D}${sysconfdir}/init.d/frr
|
|
|
|
install -d ${D}${sysconfdir}/default/volatiles
|
|
echo "d frr frr 0755 ${localstatedir}/run/frr none" \
|
|
> ${D}${sysconfdir}/default/volatiles/99_frr
|
|
fi
|
|
|
|
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
|
install -d ${D}${systemd_system_unitdir}
|
|
install -m 0644 ${B}/tools/frr*.service ${D}${systemd_system_unitdir}
|
|
|
|
install -d ${D}${sysconfdir}/tmpfiles.d
|
|
echo "d /run/frr 0755 frr frr -" \
|
|
> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
|
|
fi
|
|
}
|
|
|
|
USERADD_PACKAGES = "${PN}"
|
|
GROUPADD_PARAM:${PN} = "--system frr ; --system frrvty"
|
|
USERADD_PARAM:${PN} = "--system --home ${localstatedir}/run/frr/ -M -g frr -G frrvty --shell /bin/false frr"
|
|
|
|
FILES:${PN} += "${datadir}/yang"
|
|
|
|
BBCLASSEXTEND = "native"
|