Compare commits

..

9 Commits

Author SHA1 Message Date
Zoran Peričić
5815fa2a24 v9.1.0 2024-01-24 10:51:16 +01:00
Zoran Peričić
1cc9ea21ca v9.0.2 2024-01-07 13:14:33 +01:00
Zoran Peričić
e925df580e Enable LFS 2024-01-07 12:56:39 +01:00
Zoran Peričić
b1a9148fbe v9.0.1 2023-11-12 17:20:08 +01:00
Zoran Peričić
67a7261f02 v.ims.1 - Bump version 2023-07-14 12:36:27 +02:00
c9beccb761 nhrp: configure strongswan vici path 2023-07-14 12:36:27 +02:00
Michal Ruprich
a234d44204 New version 8.5.2 2023-06-30 16:09:57 +02:00
Michal Ruprich
0c167a3dfc New version 8.5.1 2023-04-26 13:24:50 +02:00
Michal Ruprich
1067766458 New version 8.5 2023-04-12 14:14:37 +02:00
13 changed files with 424 additions and 525 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.tar.gz filter=lfs diff=lfs merge=lfs -text

2
.gitignore vendored
View File

@@ -17,5 +17,3 @@
/frr-8.5.tar.gz /frr-8.5.tar.gz
/frr-8.5.1.tar.gz /frr-8.5.1.tar.gz
/frr-8.5.2.tar.gz /frr-8.5.2.tar.gz
/frr-8.5.3.tar.gz
/frr-8.5.4.tar.gz

View File

@@ -1,8 +1,18 @@
From 1adef7e973aeab4de3409ab77295bf218fc0c56c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zoran=20Peri=C4=8Di=C4=87?= <zoran.pericic@infomaas.com>
Date: Sun, 8 Oct 2023 11:22:51 +0200
Subject: [PATCH 1/5] remove babeld and ldpd
---
Makefile.am | 4 ----
tools/etc/frr/daemons | 4 ----
2 files changed, 8 deletions(-)
diff --git a/Makefile.am b/Makefile.am diff --git a/Makefile.am b/Makefile.am
index 5be3264..33abc1d 100644 index f56e1b8e0b..a42811d940 100644
--- a/Makefile.am --- a/Makefile.am
+++ b/Makefile.am +++ b/Makefile.am
@@ -130,8 +130,6 @@ include ospf6d/subdir.am @@ -196,8 +196,6 @@ include ospf6d/subdir.am
include ospfclient/subdir.am include ospfclient/subdir.am
include isisd/subdir.am include isisd/subdir.am
include nhrpd/subdir.am include nhrpd/subdir.am
@@ -11,15 +21,15 @@ index 5be3264..33abc1d 100644
include eigrpd/subdir.am include eigrpd/subdir.am
include sharpd/subdir.am include sharpd/subdir.am
include pimd/subdir.am include pimd/subdir.am
@@ -182,7 +180,6 @@ EXTRA_DIST += \ @@ -261,7 +259,6 @@ EXTRA_DIST += \
snapcraft/defaults \ snapcraft/defaults \
snapcraft/helpers \ snapcraft/helpers \
snapcraft/snap \ snapcraft/snap \
- babeld/Makefile \ - babeld/Makefile \
mgmtd/Makefile \
bgpd/Makefile \ bgpd/Makefile \
bgpd/rfp-example/librfp/Makefile \ bgpd/rfp-example/librfp/Makefile \
bgpd/rfp-example/rfptest/Makefile \ @@ -274,7 +271,6 @@ EXTRA_DIST += \
@@ -193,7 +190,6 @@ EXTRA_DIST += \
fpm/Makefile \ fpm/Makefile \
grpc/Makefile \ grpc/Makefile \
isisd/Makefile \ isisd/Makefile \
@@ -28,7 +38,7 @@ index 5be3264..33abc1d 100644
nhrpd/Makefile \ nhrpd/Makefile \
ospf6d/Makefile \ ospf6d/Makefile \
diff --git a/tools/etc/frr/daemons b/tools/etc/frr/daemons diff --git a/tools/etc/frr/daemons b/tools/etc/frr/daemons
index 8aa0887..c92dcca 100644 index c487e7e5f2..2e602901d3 100644
--- a/tools/etc/frr/daemons --- a/tools/etc/frr/daemons
+++ b/tools/etc/frr/daemons +++ b/tools/etc/frr/daemons
@@ -22,10 +22,8 @@ ripngd=no @@ -22,10 +22,8 @@ ripngd=no
@@ -42,7 +52,7 @@ index 8aa0887..c92dcca 100644
sharpd=no sharpd=no
pbrd=no pbrd=no
bfdd=no bfdd=no
@@ -48,10 +46,8 @@ ripngd_options=" -A ::1" @@ -49,10 +47,8 @@ ripngd_options=" -A ::1"
isisd_options=" -A 127.0.0.1" isisd_options=" -A 127.0.0.1"
pimd_options=" -A 127.0.0.1" pimd_options=" -A 127.0.0.1"
pim6d_options=" -A ::1" pim6d_options=" -A ::1"
@@ -53,3 +63,6 @@ index 8aa0887..c92dcca 100644
sharpd_options=" -A 127.0.0.1" sharpd_options=" -A 127.0.0.1"
pbrd_options=" -A 127.0.0.1" pbrd_options=" -A 127.0.0.1"
staticd_options="-A 127.0.0.1" staticd_options="-A 127.0.0.1"
--
2.41.0

View File

@@ -1,44 +1,20 @@
diff --git a/lib/subdir.am b/lib/subdir.am From f2afebcbbd27c834b5d5727b561e588348503c15 Mon Sep 17 00:00:00 2001
index 0b7af18..0533e24 100644 From: =?UTF-8?q?Zoran=20Peri=C4=8Di=C4=87?= <zoran.pericic@infomaas.com>
--- a/lib/subdir.am Date: Sun, 8 Oct 2023 11:19:44 +0200
+++ b/lib/subdir.am Subject: [PATCH 2/5] enable openssl
@@ -41,7 +41,6 @@ lib_libfrr_la_SOURCES = \
lib/log.c \ ---
lib/log_filter.c \ isisd/isis_lsp.c | 2 ++
lib/log_vty.c \ isisd/isis_pdu.c | 2 ++
- lib/md5.c \ isisd/isis_te.c | 2 ++
lib/memory.c \ lib/subdir.am | 4 ----
lib/mlag.c \ 4 files changed, 6 insertions(+), 4 deletions(-)
lib/module.c \
@@ -64,7 +64,6 @@ lib_libfrr_la_SOURCES = \
lib/routemap_northbound.c \
lib/sbuf.c \
lib/seqlock.c \
- lib/sha256.c \
lib/sigevent.c \
lib/skiplist.c \
lib/sockopt.c \
@@ -170,7 +170,6 @@ pkginclude_HEADERS += \
lib/link_state.h \
lib/log.h \
lib/log_vty.h \
- lib/md5.h \
lib/memory.h \
lib/module.h \
lib/monotime.h \
@@ -191,7 +190,6 @@ pkginclude_HEADERS += \
lib/route_opaque.h \
lib/sbuf.h \
lib/seqlock.h \
- lib/sha256.h \
lib/sigevent.h \
lib/skiplist.h \
lib/smux.h \
diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index 1991666..2e4fe55 100644 index 77573cdfac..df8508fa17 100644
--- a/isisd/isis_lsp.c --- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c +++ b/isisd/isis_lsp.c
@@ -35,7 +35,9 @@ @@ -22,7 +22,9 @@
#include "hash.h" #include "hash.h"
#include "if.h" #include "if.h"
#include "checksum.h" #include "checksum.h"
@@ -49,10 +25,10 @@ index 1991666..2e4fe55 100644
#include "srcdest_table.h" #include "srcdest_table.h"
#include "lib_errors.h" #include "lib_errors.h"
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index 9c63311..7cf594c 100644 index 0cd43a7abc..b2e114d734 100644
--- a/isisd/isis_pdu.c --- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c +++ b/isisd/isis_pdu.c
@@ -33,7 +33,9 @@ @@ -20,7 +20,9 @@
#include "prefix.h" #include "prefix.h"
#include "if.h" #include "if.h"
#include "checksum.h" #include "checksum.h"
@@ -63,10 +39,10 @@ index 9c63311..7cf594c 100644
#include "isisd/isis_constants.h" #include "isisd/isis_constants.h"
diff --git a/isisd/isis_te.c b/isisd/isis_te.c diff --git a/isisd/isis_te.c b/isisd/isis_te.c
index 4ea6c2c..72ff0d2 100644 index 90b53c540e..9d98c16e78 100644
--- a/isisd/isis_te.c --- a/isisd/isis_te.c
+++ b/isisd/isis_te.c +++ b/isisd/isis_te.c
@@ -38,7 +38,9 @@ @@ -24,7 +24,9 @@
#include "if.h" #include "if.h"
#include "vrf.h" #include "vrf.h"
#include "checksum.h" #include "checksum.h"
@@ -76,3 +52,42 @@ index 4ea6c2c..72ff0d2 100644
#include "sockunion.h" #include "sockunion.h"
#include "network.h" #include "network.h"
#include "sbuf.h" #include "sbuf.h"
diff --git a/lib/subdir.am b/lib/subdir.am
index d7b28ffbd5..b2ee32168b 100644
--- a/lib/subdir.am
+++ b/lib/subdir.am
@@ -63,7 +63,6 @@ lib_libfrr_la_SOURCES = \
lib/log.c \
lib/log_filter.c \
lib/log_vty.c \
- lib/md5.c \
lib/memory.c \
lib/mgmt_be_client.c \
lib/mgmt_fe_client.c \
@@ -95,7 +94,6 @@ lib_libfrr_la_SOURCES = \
lib/routemap_northbound.c \
lib/sbuf.c \
lib/seqlock.c \
- lib/sha256.c \
lib/sigevent.c \
lib/skiplist.c \
lib/sockopt.c \
@@ -248,7 +246,6 @@ pkginclude_HEADERS += \
lib/link_state.h \
lib/log.h \
lib/log_vty.h \
- lib/md5.h \
lib/memory.h \
lib/mgmt.pb-c.h \
lib/mgmt_be_client.h \
@@ -283,7 +280,6 @@ pkginclude_HEADERS += \
lib/route_opaque.h \
lib/sbuf.h \
lib/seqlock.h \
- lib/sha256.h \
lib/sigevent.h \
lib/skiplist.h \
lib/smux.h \
--
2.41.0

View File

@@ -1,227 +1,26 @@
diff --git a/eigrpd/eigrp_packet.c b/eigrpd/eigrp_packet.c From 138dff00b047a92b0616d53742b83b13cca8981c Mon Sep 17 00:00:00 2001
index bedaf15..8dc09bf 100644 From: =?UTF-8?q?Zoran=20Peri=C4=8Di=C4=87?= <zoran.pericic@infomaas.com>
--- a/eigrpd/eigrp_packet.c Date: Sun, 8 Oct 2023 11:23:48 +0200
+++ b/eigrpd/eigrp_packet.c Subject: [PATCH 3/5] disable eigrp crypto
@@ -40,8 +40,10 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
#include "sha256.h"
+#endif
#include "lib_errors.h"
#include "eigrpd/eigrp_structs.h" ---
@@ -95,8 +97,12 @@ int eigrp_make_md5_digest(struct eigrp_interface *ei, struct stream *s, eigrpd/eigrp_cli.c | 15 +++++++++++++++
struct key *key = NULL; eigrpd/eigrp_filter.c | 2 ++
struct keychain *keychain; eigrpd/eigrp_hello.c | 2 ++
eigrpd/eigrp_packet.c | 27 +++++++++++++++++++++++++--
eigrpd/eigrp_query.c | 2 ++
eigrpd/eigrp_reply.c | 2 ++
eigrpd/eigrp_siaquery.c | 2 ++
eigrpd/eigrp_siareply.c | 2 ++
eigrpd/eigrp_snmp.c | 2 ++
eigrpd/eigrp_update.c | 2 ++
10 files changed, 56 insertions(+), 2 deletions(-)
+
unsigned char digest[EIGRP_AUTH_TYPE_MD5_LEN];
+#ifdef CRYPTO_OPENSSL
+#elif CRYPTO_INTERNAL
MD5_CTX ctx;
+#endif
uint8_t *ibuf;
size_t backup_get, backup_end;
struct TLV_MD5_Authentication_Type *auth_TLV;
@@ -119,6 +125,9 @@ int eigrp_make_md5_digest(struct eigrp_interface *ei, struct stream *s,
return EIGRP_AUTH_TYPE_NONE;
}
+#ifdef CRYPTO_OPENSSL
+//TBD when this is fixed in upstream
+#elif CRYPTO_INTERNAL
memset(&ctx, 0, sizeof(ctx));
MD5Init(&ctx);
@@ -146,7 +155,7 @@ int eigrp_make_md5_digest(struct eigrp_interface *ei, struct stream *s,
}
MD5Final(digest, &ctx);
-
+#endif
/* Append md5 digest to the end of the stream. */
memcpy(auth_TLV->digest, digest, EIGRP_AUTH_TYPE_MD5_LEN);
@@ -162,7 +171,10 @@ int eigrp_check_md5_digest(struct stream *s,
struct TLV_MD5_Authentication_Type *authTLV,
struct eigrp_neighbor *nbr, uint8_t flags)
{
+#ifdef CRYPTO_OPENSSL
+#elif CRYPTO_INTERNAL
MD5_CTX ctx;
+#endif
unsigned char digest[EIGRP_AUTH_TYPE_MD5_LEN];
unsigned char orig[EIGRP_AUTH_TYPE_MD5_LEN];
struct key *key = NULL;
@@ -203,6 +215,9 @@ int eigrp_check_md5_digest(struct stream *s,
return 0;
}
+#ifdef CRYPTO_OPENSSL
+ //TBD when eigrpd crypto is fixed in upstream
+#elif CRYPTO_INTERNAL
memset(&ctx, 0, sizeof(ctx));
MD5Init(&ctx);
@@ -230,6 +245,7 @@ int eigrp_check_md5_digest(struct stream *s,
}
MD5Final(digest, &ctx);
+#endif
/* compare the two */
if (memcmp(orig, digest, EIGRP_AUTH_TYPE_MD5_LEN) != 0) {
@@ -254,7 +270,11 @@ int eigrp_make_sha256_digest(struct eigrp_interface *ei, struct stream *s,
unsigned char digest[EIGRP_AUTH_TYPE_SHA256_LEN];
unsigned char buffer[1 + PLAINTEXT_LENGTH + 45 + 1] = {0};
+#ifdef CRYPTO_OPENSSL
+ //TBD when eigrpd crypto is fixed in upstream
+#elif CRYPTO_INTERNAL
HMAC_SHA256_CTX ctx;
+#endif
void *ibuf;
size_t backup_get, backup_end;
struct TLV_SHA256_Authentication_Type *auth_TLV;
@@ -283,6 +303,9 @@ int eigrp_make_sha256_digest(struct eigrp_interface *ei, struct stream *s,
inet_ntop(AF_INET, &ei->address.u.prefix4, source_ip, PREFIX_STRLEN);
+#ifdef CRYPTO_OPENSSL
+ //TBD when eigrpd crypto is fixed in upstream
+#elif CRYPTO_INTERNAL
memset(&ctx, 0, sizeof(ctx));
buffer[0] = '\n';
memcpy(buffer + 1, key, strlen(key->string));
@@ -291,7 +314,7 @@ int eigrp_make_sha256_digest(struct eigrp_interface *ei, struct stream *s,
1 + strlen(key->string) + strlen(source_ip));
HMAC__SHA256_Update(&ctx, ibuf, strlen(ibuf));
HMAC__SHA256_Final(digest, &ctx);
-
+#endif
/* Put hmac-sha256 digest to it's place */
memcpy(auth_TLV->digest, digest, EIGRP_AUTH_TYPE_SHA256_LEN);
diff --git a/eigrpd/eigrp_filter.c b/eigrpd/eigrp_filter.c
index 93eed94..f1c7347 100644
--- a/eigrpd/eigrp_filter.c
+++ b/eigrpd/eigrp_filter.c
@@ -47,7 +47,9 @@
#include "if_rmap.h"
#include "plist.h"
#include "distribute.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "keychain.h"
#include "privs.h"
#include "vrf.h"
diff --git a/eigrpd/eigrp_hello.c b/eigrpd/eigrp_hello.c
index dacd5ca..b232cc5 100644
--- a/eigrpd/eigrp_hello.c
+++ b/eigrpd/eigrp_hello.c
@@ -43,7 +43,9 @@
#include "sockopt.h"
#include "checksum.h"
#include "vty.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "eigrpd/eigrp_structs.h"
#include "eigrpd/eigrpd.h"
diff --git a/eigrpd/eigrp_query.c b/eigrpd/eigrp_query.c
index 84dcf5e..a2575e3 100644
--- a/eigrpd/eigrp_query.c
+++ b/eigrpd/eigrp_query.c
@@ -38,7 +38,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "eigrpd/eigrp_structs.h"
diff --git a/eigrpd/eigrp_reply.c b/eigrpd/eigrp_reply.c
index ccf0496..2902365 100644
--- a/eigrpd/eigrp_reply.c
+++ b/eigrpd/eigrp_reply.c
@@ -42,7 +42,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "keychain.h"
#include "plist.h"
diff --git a/eigrpd/eigrp_siaquery.c b/eigrpd/eigrp_siaquery.c
index ff38325..09b9369 100644
--- a/eigrpd/eigrp_siaquery.c
+++ b/eigrpd/eigrp_siaquery.c
@@ -38,7 +38,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "eigrpd/eigrp_structs.h"
diff --git a/eigrpd/eigrp_siareply.c b/eigrpd/eigrp_siareply.c
index d3dd123..f6a2bd6 100644
--- a/eigrpd/eigrp_siareply.c
+++ b/eigrpd/eigrp_siareply.c
@@ -37,7 +37,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "eigrpd/eigrp_structs.h"
diff --git a/eigrpd/eigrp_snmp.c b/eigrpd/eigrp_snmp.c
index 21c9238..cfb8890 100644
--- a/eigrpd/eigrp_snmp.c
+++ b/eigrpd/eigrp_snmp.c
@@ -42,7 +42,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "keychain.h"
#include "smux.h"
diff --git a/eigrpd/eigrp_update.c b/eigrpd/eigrp_update.c
index 8db4903..2a4f0bb 100644
--- a/eigrpd/eigrp_update.c
+++ b/eigrpd/eigrp_update.c
@@ -42,7 +42,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "plist.h"
#include "plist_int.h"
diff --git a/eigrpd/eigrp_cli.c b/eigrpd/eigrp_cli.c diff --git a/eigrpd/eigrp_cli.c b/eigrpd/eigrp_cli.c
index a93d4c8..b01e121 100644 index 213834afc8..73647937db 100644
--- a/eigrpd/eigrp_cli.c --- a/eigrpd/eigrp_cli.c
+++ b/eigrpd/eigrp_cli.c +++ b/eigrpd/eigrp_cli.c
@@ -25,6 +25,7 @@ @@ -11,6 +11,7 @@
#include "lib/command.h" #include "lib/command.h"
#include "lib/log.h" #include "lib/log.h"
#include "lib/northbound_cli.h" #include "lib/northbound_cli.h"
@@ -229,7 +28,7 @@ index a93d4c8..b01e121 100644
#include "eigrp_structs.h" #include "eigrp_structs.h"
#include "eigrpd.h" #include "eigrpd.h"
@@ -726,6 +726,20 @@ DEFPY( @@ -716,6 +717,20 @@ DEFPY_YANG(
"Keyed message digest\n" "Keyed message digest\n"
"HMAC SHA256 algorithm \n") "HMAC SHA256 algorithm \n")
{ {
@@ -250,3 +49,225 @@ index a93d4c8..b01e121 100644
char xpath[XPATH_MAXLEN], xpath_auth[XPATH_MAXLEN + 64]; char xpath[XPATH_MAXLEN], xpath_auth[XPATH_MAXLEN + 64];
snprintf(xpath, sizeof(xpath), "./frr-eigrpd:eigrp/instance[asn='%s']", snprintf(xpath, sizeof(xpath), "./frr-eigrpd:eigrp/instance[asn='%s']",
diff --git a/eigrpd/eigrp_filter.c b/eigrpd/eigrp_filter.c
index eceef6b8a7..1d194be143 100644
--- a/eigrpd/eigrp_filter.c
+++ b/eigrpd/eigrp_filter.c
@@ -32,7 +32,9 @@
#include "if_rmap.h"
#include "plist.h"
#include "distribute.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "keychain.h"
#include "privs.h"
#include "vrf.h"
diff --git a/eigrpd/eigrp_hello.c b/eigrpd/eigrp_hello.c
index ee0e2451a2..d3b8414b81 100644
--- a/eigrpd/eigrp_hello.c
+++ b/eigrpd/eigrp_hello.c
@@ -28,7 +28,9 @@
#include "sockopt.h"
#include "checksum.h"
#include "vty.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "eigrpd/eigrp_structs.h"
#include "eigrpd/eigrpd.h"
diff --git a/eigrpd/eigrp_packet.c b/eigrpd/eigrp_packet.c
index 963d229bc1..587eb422ea 100644
--- a/eigrpd/eigrp_packet.c
+++ b/eigrpd/eigrp_packet.c
@@ -25,8 +25,10 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
#include "sha256.h"
+#endif
#include "lib_errors.h"
#include "eigrpd/eigrp_structs.h"
@@ -88,8 +90,12 @@ int eigrp_make_md5_digest(struct eigrp_interface *ei, struct stream *s,
struct key *key = NULL;
struct keychain *keychain;
+
unsigned char digest[EIGRP_AUTH_TYPE_MD5_LEN];
+#ifdef CRYPTO_OPENSSL
+#elif CRYPTO_INTERNAL
MD5_CTX ctx;
+#endif
uint8_t *ibuf;
size_t backup_get, backup_end;
struct TLV_MD5_Authentication_Type *auth_TLV;
@@ -112,6 +118,9 @@ int eigrp_make_md5_digest(struct eigrp_interface *ei, struct stream *s,
return EIGRP_AUTH_TYPE_NONE;
}
+#ifdef CRYPTO_OPENSSL
+//TBD when this is fixed in upstream
+#elif CRYPTO_INTERNAL
memset(&ctx, 0, sizeof(ctx));
MD5Init(&ctx);
@@ -139,7 +148,7 @@ int eigrp_make_md5_digest(struct eigrp_interface *ei, struct stream *s,
}
MD5Final(digest, &ctx);
-
+#endif
/* Append md5 digest to the end of the stream. */
memcpy(auth_TLV->digest, digest, EIGRP_AUTH_TYPE_MD5_LEN);
@@ -155,7 +164,10 @@ int eigrp_check_md5_digest(struct stream *s,
struct TLV_MD5_Authentication_Type *authTLV,
struct eigrp_neighbor *nbr, uint8_t flags)
{
+#ifdef CRYPTO_OPENSSL
+#elif CRYPTO_INTERNAL
MD5_CTX ctx;
+#endif
unsigned char digest[EIGRP_AUTH_TYPE_MD5_LEN];
unsigned char orig[EIGRP_AUTH_TYPE_MD5_LEN];
struct key *key = NULL;
@@ -196,6 +208,9 @@ int eigrp_check_md5_digest(struct stream *s,
return 0;
}
+#ifdef CRYPTO_OPENSSL
+ //TBD when eigrpd crypto is fixed in upstream
+#elif CRYPTO_INTERNAL
memset(&ctx, 0, sizeof(ctx));
MD5Init(&ctx);
@@ -223,6 +238,7 @@ int eigrp_check_md5_digest(struct stream *s,
}
MD5Final(digest, &ctx);
+#endif
/* compare the two */
if (memcmp(orig, digest, EIGRP_AUTH_TYPE_MD5_LEN) != 0) {
@@ -247,7 +263,11 @@ int eigrp_make_sha256_digest(struct eigrp_interface *ei, struct stream *s,
unsigned char digest[EIGRP_AUTH_TYPE_SHA256_LEN];
unsigned char buffer[1 + PLAINTEXT_LENGTH + 45 + 1] = {0};
+#ifdef CRYPTO_OPENSSL
+ //TBD when eigrpd crypto is fixed in upstream
+#elif CRYPTO_INTERNAL
HMAC_SHA256_CTX ctx;
+#endif
void *ibuf;
size_t backup_get, backup_end;
struct TLV_SHA256_Authentication_Type *auth_TLV;
@@ -276,6 +296,9 @@ int eigrp_make_sha256_digest(struct eigrp_interface *ei, struct stream *s,
inet_ntop(AF_INET, &ei->address.u.prefix4, source_ip, PREFIX_STRLEN);
+#ifdef CRYPTO_OPENSSL
+ //TBD when eigrpd crypto is fixed in upstream
+#elif CRYPTO_INTERNAL
memset(&ctx, 0, sizeof(ctx));
buffer[0] = '\n';
memcpy(buffer + 1, key, strlen(key->string));
@@ -284,7 +307,7 @@ int eigrp_make_sha256_digest(struct eigrp_interface *ei, struct stream *s,
1 + strlen(key->string) + strlen(source_ip));
HMAC__SHA256_Update(&ctx, ibuf, strlen(ibuf));
HMAC__SHA256_Final(digest, &ctx);
-
+#endif
/* Put hmac-sha256 digest to it's place */
memcpy(auth_TLV->digest, digest, EIGRP_AUTH_TYPE_SHA256_LEN);
diff --git a/eigrpd/eigrp_query.c b/eigrpd/eigrp_query.c
index 0e206cded6..4b3f4e0821 100644
--- a/eigrpd/eigrp_query.c
+++ b/eigrpd/eigrp_query.c
@@ -23,7 +23,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "eigrpd/eigrp_structs.h"
diff --git a/eigrpd/eigrp_reply.c b/eigrpd/eigrp_reply.c
index aae89e832b..1fb1f404d2 100644
--- a/eigrpd/eigrp_reply.c
+++ b/eigrpd/eigrp_reply.c
@@ -27,7 +27,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "keychain.h"
#include "plist.h"
diff --git a/eigrpd/eigrp_siaquery.c b/eigrpd/eigrp_siaquery.c
index 71486a1f6f..430e8ce719 100644
--- a/eigrpd/eigrp_siaquery.c
+++ b/eigrpd/eigrp_siaquery.c
@@ -23,7 +23,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "eigrpd/eigrp_structs.h"
diff --git a/eigrpd/eigrp_siareply.c b/eigrpd/eigrp_siareply.c
index 6c8c1ef58d..b16e0fcfc8 100644
--- a/eigrpd/eigrp_siareply.c
+++ b/eigrpd/eigrp_siareply.c
@@ -22,7 +22,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "eigrpd/eigrp_structs.h"
diff --git a/eigrpd/eigrp_snmp.c b/eigrpd/eigrp_snmp.c
index 492ef3e713..5618c3f2b5 100644
--- a/eigrpd/eigrp_snmp.c
+++ b/eigrpd/eigrp_snmp.c
@@ -27,7 +27,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "keychain.h"
#include "smux.h"
diff --git a/eigrpd/eigrp_update.c b/eigrpd/eigrp_update.c
index 74f573d9d8..39f4dcfc39 100644
--- a/eigrpd/eigrp_update.c
+++ b/eigrpd/eigrp_update.c
@@ -27,7 +27,9 @@
#include "log.h"
#include "sockopt.h"
#include "checksum.h"
+#ifdef CRYPTO_INTERNAL
#include "md5.h"
+#endif
#include "vty.h"
#include "plist.h"
#include "plist_int.h"
--
2.41.0

View File

@@ -1,10 +1,65 @@
From 90d09b061feae5e39a88c0ae51f880e82d82bb18 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zoran=20Peri=C4=8Di=C4=87?= <zoran.pericic@infomaas.com>
Date: Sun, 8 Oct 2023 11:24:43 +0200
Subject: [PATCH 4/5] fips mode
---
isisd/isis_circuit.c | 4 ++++
isisd/isisd.c | 4 ++++
lib/zebra.h | 1 +
ospfd/ospf_vty.c | 24 ++++++++++++++++++++++++
ripd/rip_cli.c | 6 ++++++
5 files changed, 39 insertions(+)
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index ffa6ad3e40..8c28b17eb2 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -1543,6 +1543,10 @@ ferr_r isis_circuit_passwd_set(struct isis_circuit *circuit,
return ferr_code_bug(
"circuit password too long (max 254 chars)");
+ //When in FIPS mode, the password never gets set in MD5
+ if((passwd_type == ISIS_PASSWD_TYPE_HMAC_MD5) && FIPS_mode())
+ return ferr_cfg_invalid("FIPS mode is enabled, md5 authentication is disabled");
+
circuit->passwd.len = len;
strlcpy((char *)circuit->passwd.passwd, passwd,
sizeof(circuit->passwd.passwd));
diff --git a/isisd/isisd.c b/isisd/isisd.c
index b1064d8941..fbcd097f72 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -3040,6 +3040,10 @@ static int isis_area_passwd_set(struct isis_area *area, int level,
if (len > 254)
return -1;
+ //When in FIPS mode, the password never get set in MD5
+ if ((passwd_type == ISIS_PASSWD_TYPE_HMAC_MD5) && (FIPS_mode()))
+ return ferr_cfg_invalid("FIPS mode is enabled, md5 authentication is disabled");
+
modified.len = len;
strlcpy((char *)modified.passwd, passwd,
sizeof(modified.passwd));
diff --git a/lib/zebra.h b/lib/zebra.h
index ecc87f58f1..5cb7167598 100644
--- a/lib/zebra.h
+++ b/lib/zebra.h
@@ -90,6 +90,7 @@
#ifdef CRYPTO_OPENSSL
#include <openssl/evp.h>
#include <openssl/hmac.h>
+#include <openssl/fips.h>
#endif
#include "openbsd-tree.h"
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 631465f..e084ff3 100644 index 740ecb518b..d094b205b3 100644
--- a/ospfd/ospf_vty.c --- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c
@@ -1136,6 +1136,11 @@ DEFUN (ospf_area_vlink, @@ -1085,6 +1085,11 @@ DEFUN (ospf_area_vlink,
vl_config.keychain = argv[idx+1]->arg;
if (argv_find(argv, argc, "message-digest", &idx)) { } else if (argv_find(argv, argc, "message-digest", &idx)) {
/* authentication message-digest */ /* authentication message-digest */
+ if(FIPS_mode()) + if(FIPS_mode())
+ { + {
@@ -14,7 +69,7 @@ index 631465f..e084ff3 100644
vl_config.auth_type = OSPF_AUTH_CRYPTOGRAPHIC; vl_config.auth_type = OSPF_AUTH_CRYPTOGRAPHIC;
} else if (argv_find(argv, argc, "null", &idx)) { } else if (argv_find(argv, argc, "null", &idx)) {
/* "authentication null" */ /* "authentication null" */
@@ -1993,6 +1998,15 @@ DEFUN (ospf_area_authentication_message_digest, @@ -1997,6 +2002,15 @@ DEFUN (ospf_area_authentication_message_digest,
? OSPF_AUTH_NULL ? OSPF_AUTH_NULL
: OSPF_AUTH_CRYPTOGRAPHIC; : OSPF_AUTH_CRYPTOGRAPHIC;
@@ -30,7 +85,7 @@ index 631465f..e084ff3 100644
return CMD_SUCCESS; return CMD_SUCCESS;
} }
@@ -6665,6 +6679,11 @@ DEFUN (ip_ospf_authentication_args, @@ -7621,6 +7635,11 @@ DEFUN (ip_ospf_authentication_args,
/* Handle message-digest authentication */ /* Handle message-digest authentication */
if (argv[idx_encryption]->arg[0] == 'm') { if (argv[idx_encryption]->arg[0] == 'm') {
@@ -41,8 +96,8 @@ index 631465f..e084ff3 100644
+ } + }
SET_IF_PARAM(params, auth_type); SET_IF_PARAM(params, auth_type);
params->auth_type = OSPF_AUTH_CRYPTOGRAPHIC; params->auth_type = OSPF_AUTH_CRYPTOGRAPHIC;
return CMD_SUCCESS; UNSET_IF_PARAM(params, keychain_name);
@@ -6971,6 +6990,11 @@ DEFUN (ip_ospf_message_digest_key, @@ -7949,6 +7968,11 @@ DEFUN (ip_ospf_message_digest_key,
"The OSPF password (key)\n" "The OSPF password (key)\n"
"Address of interface\n") "Address of interface\n")
{ {
@@ -54,41 +109,11 @@ index 631465f..e084ff3 100644
VTY_DECLVAR_CONTEXT(interface, ifp); VTY_DECLVAR_CONTEXT(interface, ifp);
struct crypt_key *ck; struct crypt_key *ck;
uint8_t key_id; uint8_t key_id;
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 81b4b39..cce33d9 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -1318,6 +1318,10 @@ static int isis_circuit_passwd_set(struct isis_circuit *circuit,
return ferr_code_bug(
"circuit password too long (max 254 chars)");
+ //When in FIPS mode, the password never gets set in MD5
+ if((passwd_type == ISIS_PASSWD_TYPE_HMAC_MD5) && FIPS_mode())
+ return ferr_cfg_invalid("FIPS mode is enabled, md5 authentication is disabled");
+
circuit->passwd.len = len;
strlcpy((char *)circuit->passwd.passwd, passwd,
sizeof(circuit->passwd.passwd));
diff --git a/isisd/isisd.c b/isisd/isisd.c
index 419127c..a6c36af 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -1638,6 +1638,10 @@ static int isis_area_passwd_set(struct isis_area *area, int level,
if (len > 254)
return -1;
+ //When in FIPS mode, the password never get set in MD5
+ if ((passwd_type == ISIS_PASSWD_TYPE_HMAC_MD5) && (FIPS_mode()))
+ return ferr_cfg_invalid("FIPS mode is enabled, md5 authentication is disabled");
+
modified.len = len;
strlcpy((char *)modified.passwd, passwd,
sizeof(modified.passwd));
diff --git a/ripd/rip_cli.c b/ripd/rip_cli.c diff --git a/ripd/rip_cli.c b/ripd/rip_cli.c
index 5bb81ef..02a09ef 100644 index 097c708ab1..854a16e4e0 100644
--- a/ripd/rip_cli.c --- a/ripd/rip_cli.c
+++ b/ripd/rip_cli.c +++ b/ripd/rip_cli.c
@@ -796,6 +796,12 @@ DEFPY (ip_rip_authentication_mode, @@ -876,6 +876,12 @@ DEFPY_YANG (ip_rip_authentication_mode,
value = "20"; value = "20";
} }
@@ -101,15 +126,6 @@ index 5bb81ef..02a09ef 100644
nb_cli_enqueue_change(vty, "./authentication-scheme/mode", NB_OP_MODIFY, nb_cli_enqueue_change(vty, "./authentication-scheme/mode", NB_OP_MODIFY,
strmatch(mode, "md5") ? "md5" : "plain-text"); strmatch(mode, "md5") ? "md5" : "plain-text");
if (strmatch(mode, "md5")) if (strmatch(mode, "md5"))
diff --git a/lib/zebra.h b/lib/zebra.h --
index 53ae5b4..930307f 100644 2.41.0
--- a/lib/zebra.h
+++ b/lib/zebra.h
@@ -114,6 +114,7 @@
#ifdef CRYPTO_OPENSSL
#include <openssl/evp.h>
#include <openssl/hmac.h>
+#include <openssl/fips.h>
#endif
#include "openbsd-tree.h"

View File

@@ -1,10 +1,19 @@
From e89eb677ad94cd39379e254215e3ec91e571da73 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zoran=20Peri=C4=8Di=C4=87?= <zoran.pericic@infomaas.com>
Date: Sun, 8 Oct 2023 11:26:25 +0200
Subject: [PATCH 5/5] remove grpc test
---
tests/lib/subdir.am | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/tests/lib/subdir.am b/tests/lib/subdir.am diff --git a/tests/lib/subdir.am b/tests/lib/subdir.am
index 7b5eaa4..5c82f69 100644 index 6c1be50201..2ac3d508e9 100644
--- a/tests/lib/subdir.am --- a/tests/lib/subdir.am
+++ b/tests/lib/subdir.am +++ b/tests/lib/subdir.am
@@ -18,18 +18,6 @@ tests_lib_test_frrscript_SOURCES = tests/lib/test_frrscript.c @@ -24,17 +24,6 @@ copy_script: tests/lib/script1.lua
EXTRA_DIST += tests/lib/test_frrscript.py test -e tests/lib/script1.lua || \
$(INSTALL_SCRIPT) $< tests/lib/script1.lua
-############################################################################## -##############################################################################
-GRPC_TESTS_LDADD = staticd/libstatic.a grpc/libfrrgrpc_pb.la -lgrpc++ -lprotobuf $(ALL_TESTS_LDADD) $(LIBYANG_LIBS) -lm -GRPC_TESTS_LDADD = staticd/libstatic.a grpc/libfrrgrpc_pb.la -lgrpc++ -lprotobuf $(ALL_TESTS_LDADD) $(LIBYANG_LIBS) -lm
@@ -17,7 +26,9 @@ index 7b5eaa4..5c82f69 100644
-tests_lib_test_grpc_LDADD = $(GRPC_TESTS_LDADD) -tests_lib_test_grpc_LDADD = $(GRPC_TESTS_LDADD)
-tests_lib_test_grpc_SOURCES = tests/lib/test_grpc.cpp -tests_lib_test_grpc_SOURCES = tests/lib/test_grpc.cpp
- -
-
############################################################################## ##############################################################################
if ZEROMQ if ZEROMQ
check_PROGRAMS += tests/lib/test_zmq --
2.41.0

View File

@@ -1,49 +0,0 @@
From 114bd532ac0c3b6d819f516eb41021eb250b65bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zoran=20Peri=C4=8Di=C4=87?= <zpericic@netst.org>
Date: Wed, 15 Sep 2021 19:44:56 +0200
Subject: [PATCH 10/11] nhrpd, zebra: Read GRE addresses only if sent
GRE addresses are not send if interface is missing in kernel. We
should first check if they have been sent.
---
nhrpd/nhrp_route.c | 7 ++++---
zebra/zapi_msg.c | 2 --
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/nhrpd/nhrp_route.c b/nhrpd/nhrp_route.c
index 698c6d0cdf..2e7923bf33 100644
--- a/nhrpd/nhrp_route.c
+++ b/nhrpd/nhrp_route.c
@@ -493,12 +493,13 @@ int nhrp_gre_update(ZAPI_CALLBACK_ARGS)
STREAM_GETL(s, gre_info.okey);
STREAM_GETL(s, gre_info.ifindex_link);
STREAM_GETL(s, gre_info.vrfid_link);
- STREAM_GETL(s, gre_info.vtep_ip.s_addr);
- STREAM_GETL(s, gre_info.vtep_ip_remote.s_addr);
if (gre_info.ifindex == IFINDEX_INTERNAL)
val = NULL;
- else
+ else {
val = hash_lookup(nhrp_gre_list, &gre_info);
+ STREAM_GETL(s, gre_info.vtep_ip.s_addr);
+ STREAM_GETL(s, gre_info.vtep_ip_remote.s_addr);
+ }
if (val) {
if (gre_info.vtep_ip.s_addr != val->vtep_ip.s_addr ||
gre_info.vrfid_link != val->vrfid_link ||
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index 68bb9783f8..72d06d71ea 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -3618,8 +3618,6 @@ static inline void zebra_gre_get(ZAPI_HANDLER_ARGS)
stream_putl(s, 0);
stream_putl(s, IFINDEX_INTERNAL);
stream_putl(s, VRF_UNKNOWN);
- stream_putl(s, 0);
- stream_putl(s, 0);
}
/* Write packet size. */
stream_putw_at(s, 0, stream_get_endp(s));
--
2.41.0

View File

@@ -1,92 +0,0 @@
From f9876d6106263632287fcef2912ba4223b145672 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zoran=20Peri=C4=8Di=C4=87?= <zpericic@netst.org>
Date: Mon, 20 Sep 2021 23:51:06 +0200
Subject: [PATCH 11/11] nhrp: Peer should not be connected if interface is
active
---
nhrpd/nhrp_interface.c | 1 +
nhrpd/nhrp_nhs.c | 21 +++++++++++++++++++--
nhrpd/nhrp_peer.c | 2 ++
nhrpd/nhrpd.h | 1 +
4 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/nhrpd/nhrp_interface.c b/nhrpd/nhrp_interface.c
index 4ac30a7d75..6a8b6e6997 100644
--- a/nhrpd/nhrp_interface.c
+++ b/nhrpd/nhrp_interface.c
@@ -461,6 +461,7 @@ int nhrp_ifp_up(struct interface *ifp)
{
debugf(NHRP_DEBUG_IF, "if-up: %s", ifp->name);
nhrp_interface_update_nbma(ifp, NULL);
+ nhrp_nhs_interface_add(ifp);
return 0;
}
diff --git a/nhrpd/nhrp_nhs.c b/nhrpd/nhrp_nhs.c
index 03b4b533bb..bd05813d28 100644
--- a/nhrpd/nhrp_nhs.c
+++ b/nhrpd/nhrp_nhs.c
@@ -351,8 +351,9 @@ int nhrp_nhs_add(struct interface *ifp, afi_t afi, union sockunion *proto_addr,
.reglist_head = INIT_DLIST(nhs->reglist_head),
};
nhrp_nhslist_add_tail(&nifp->afi[afi].nhslist_head, nhs);
- thread_add_timer_msec(master, nhrp_nhs_resolve, nhs, 1000,
- &nhs->t_resolve);
+ if (CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_ACTIVE))
+ thread_add_timer_msec(master, nhrp_nhs_resolve, nhs, 1000,
+ &nhs->t_resolve);
return NHRP_OK;
}
@@ -394,6 +395,22 @@ int nhrp_nhs_free(struct nhrp_interface *nifp, afi_t afi, struct nhrp_nhs *nhs)
return 0;
}
+void nhrp_nhs_interface_add(struct interface *ifp)
+{
+ struct nhrp_interface *nifp = ifp->info;
+ struct nhrp_nhs *nhs;
+ afi_t afi;
+
+ for (afi = 0; afi < AFI_MAX; afi++) {
+ debugf(NHRP_DEBUG_COMMON, "Adding nhs entries (%zu)",
+ nhrp_nhslist_count(&nifp->afi[afi].nhslist_head));
+ frr_each (nhrp_nhslist, &nifp->afi[afi].nhslist_head, nhs) {
+ thread_add_timer_msec(master, nhrp_nhs_resolve, nhs, 1000,
+ &nhs->t_resolve);
+ }
+ }
+}
+
void nhrp_nhs_interface_del(struct interface *ifp)
{
struct nhrp_interface *nifp = ifp->info;
diff --git a/nhrpd/nhrp_peer.c b/nhrpd/nhrp_peer.c
index e7f2eaf5a7..9e76d16db3 100644
--- a/nhrpd/nhrp_peer.c
+++ b/nhrpd/nhrp_peer.c
@@ -309,6 +309,8 @@ int nhrp_peer_check(struct nhrp_peer *p, int establish)
struct interface *ifp = p->ifp;
struct nhrp_interface *nifp = ifp->info;
+ if (!CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_ACTIVE))
+ return 0;
if (p->online)
return 1;
if (!establish)
diff --git a/nhrpd/nhrpd.h b/nhrpd/nhrpd.h
index 753c6e9b22..4850c12b49 100644
--- a/nhrpd/nhrpd.h
+++ b/nhrpd/nhrpd.h
@@ -400,6 +400,7 @@ void nhrp_nhs_foreach(struct interface *ifp, afi_t afi,
void (*cb)(struct nhrp_nhs *, struct nhrp_registration *,
void *),
void *ctx);
+void nhrp_nhs_interface_add(struct interface *ifp);
void nhrp_nhs_interface_del(struct interface *ifp);
int nhrp_multicast_add(struct interface *ifp, afi_t afi,
--
2.41.0

BIN
frr-9.0.2.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -1,19 +1,18 @@
%global dist .ims.2%{?dist} %global dist .ims.1%{?dist}
%global frr_libdir %{_libexecdir}/frr %global frr_libdir %{_libexecdir}/frr
%global _hardened_build 1 %global _hardened_build 1
%global selinuxtype targeted %global selinuxtype targeted
%define _legacy_common_support 1 %define _legacy_common_support 1
%bcond grpc %{undefined rhel} %bcond grpc %{undefined rhel}
%bcond selinux 1 %bcond selinux 1
Name: frr Name: frr
Version: 8.5.4 Version: 9.1.0
Release: 1%{?dist} Release: 1%{?dist}
Summary: Routing daemon Summary: Routing daemon
License: GPL-2.0-or-later AND ISC AND LGPL-2.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND (GPL-2.0-or-later OR ISC) AND MIT License: GPLv2+
URL: http://www.frrouting.org URL: http://www.frrouting.org
Source0: https://github.com/FRRouting/frr/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/FRRouting/frr/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
Source1: %{name}-tmpfiles.conf Source1: %{name}-tmpfiles.conf
@@ -23,13 +22,12 @@ Source3: frr.fc
Source4: frr.te Source4: frr.te
Source5: frr.if Source5: frr.if
Patch0000: 0000-remove-babeld-and-ldpd.patch Patch0000: 0001-remove-babeld-and-ldpd.patch
Patch0002: 0002-enable-openssl.patch Patch0002: 0002-enable-openssl.patch
Patch0003: 0003-disable-eigrp-crypto.patch Patch0003: 0003-disable-eigrp-crypto.patch
Patch0004: 0004-fips-mode.patch Patch0004: 0004-fips-mode.patch
Patch0005: 0005-remove-grpc-test.patch Patch0005: 0005-remove-grpc-test.patch
Patch0010: 0010-nhrpd-zebra-Read-GRE-addresses-only-if-sent.patch
Patch0011: 0011-nhrp-Peer-should-not-be-connected-if-interface-is-ac.patch
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake BuildRequires: automake
BuildRequires: bison >= 2.7 BuildRequires: bison >= 2.7
@@ -62,6 +60,7 @@ BuildRequires: readline-devel
BuildRequires: systemd-devel BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
BuildRequires: texinfo BuildRequires: texinfo
BuildRequires: protobuf-c-devel
Requires: ncurses Requires: ncurses
Requires: net-snmp Requires: net-snmp
@@ -83,18 +82,17 @@ FRRouting is free software that manages TCP/IP based routing protocols. It takes
a multi-server and multi-threaded approach to resolve the current complexity a multi-server and multi-threaded approach to resolve the current complexity
of the Internet. of the Internet.
FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, NHRP, PBR, FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, NHRP, PBR, EIGRP and BFD.
EIGRP and BFD.
FRRouting is a fork of Quagga. FRRouting is a fork of Quagga.
%if 0%{?with_selinux} %if 0%{?with_selinux}
%package selinux %package selinux
Summary: Selinux policy for FRR Summary: Selinux policy for FRR
BuildArch: noarch BuildArch: noarch
Requires: selinux-policy-%{selinuxtype} Requires: selinux-policy-%{selinuxtype}
Requires(post): selinux-policy-%{selinuxtype} Requires(post): selinux-policy-%{selinuxtype}
BuildRequires: selinux-policy-devel BuildRequires: selinux-policy-devel
%{?selinux_requires} %{?selinux_requires}
%description selinux %description selinux
@@ -178,7 +176,7 @@ install -d -m 775 %{buildroot}/run/frr
%if 0%{?with_selinux} %if 0%{?with_selinux}
install -D -m 644 selinux/%{name}.pp.bz2 \ install -D -m 644 selinux/%{name}.pp.bz2 \
%{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2 %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
install -D -m 644 selinux/%{name}.if %{buildroot}%{_datadir}/selinux/devel/include/distributed/%{name}.if install -D -m 644 selinux/%{name}.if %{buildroot}%{_datadir}/selinux/devel/include/distributed/%{name}.if
%endif %endif
@@ -278,33 +276,9 @@ rm tests/lib/*grpc*
%endif %endif
%changelog %changelog
* Wed Jan 03 2024 Michal Ruprich <mruprich@redhat.com> - 8.5.4-1
- New version 8.5.4
* Tue Oct 10 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.3-1
- New version 8.5.3
* Fri Sep 01 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.2-4
- Adding a couple of SELinux rules, includes fix for rhbz#2149299
* Wed Aug 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 8.5.2-3
- Rebuilt for abseil-cpp 20230802.0
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.5.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jun 30 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.2-1 * Fri Jun 30 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.2-1
- New version 8.5.2 - New version 8.5.2
- Fixing some rpmlint warnings - Fixing a couple of SELinux issues
* Mon Jun 26 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.1-4
- Resolves: #2216073 - SELinux is preventing FRR-Zebra to access to network namespaces.
* Mon Jun 05 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 8.5.1-3
- Disable grpc in RHEL builds
* Fri May 19 2023 Petr Pisar <ppisar@redhat.com> - 8.5.1-2
- Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19)
* Wed Apr 26 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.1-1 * Wed Apr 26 2023 Michal Ruprich <mruprich@redhat.com> - 8.5.1-1
- New version 8.5.1 - New version 8.5.1
@@ -312,15 +286,6 @@ rm tests/lib/*grpc*
* Wed Apr 12 2023 Michal Ruprich <mruprich@redhat.com> - 8.5-1 * Wed Apr 12 2023 Michal Ruprich <mruprich@redhat.com> - 8.5-1
- New version 8.5 - New version 8.5
* Thu Mar 23 2023 Michal Ruprich <mruprich@redhat.com> - 8.4.2-5
- Rebuilding for new abseil-cpp version
* Wed Mar 22 2023 Michal Ruprich <mruprich@redhat.com> - 8.4.2-4
- SPDX migration
* Wed Mar 08 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 8.4.2-3
- Build as C++17, required by abseil-cpp 20230125
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.4.2-2 * Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.4.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

5
frr.te
View File

@@ -33,7 +33,7 @@ files_pid_file(frr_var_run_t)
# #
allow frr_t self:capability { chown dac_override dac_read_search kill net_bind_service net_raw setgid setuid net_admin sys_admin }; allow frr_t self:capability { chown dac_override dac_read_search kill net_bind_service net_raw setgid setuid net_admin sys_admin };
allow frr_t self:netlink_route_socket rw_netlink_socket_perms; allow frr_t self:netlink_route_socket rw_netlink_socket_perms;
allow frr_t self:packet_socket create_socket_perms; allow frr_t self:packet_socket { create setopt };
allow frr_t self:process { setcap setpgid }; allow frr_t self:process { setcap setpgid };
allow frr_t self:rawip_socket create_socket_perms; allow frr_t self:rawip_socket create_socket_perms;
allow frr_t self:tcp_socket { connect connected_stream_socket_perms }; allow frr_t self:tcp_socket { connect connected_stream_socket_perms };
@@ -70,7 +70,6 @@ can_exec(frr_t, frr_exec_t)
kernel_read_network_state(frr_t) kernel_read_network_state(frr_t)
kernel_rw_net_sysctls(frr_t) kernel_rw_net_sysctls(frr_t)
kernel_read_system_state(frr_t) kernel_read_system_state(frr_t)
kernel_request_load_module(frr_t)
auth_use_nsswitch(frr_t) auth_use_nsswitch(frr_t)
@@ -101,8 +100,6 @@ sysnet_exec_ifconfig(frr_t)
sysnet_read_ifconfig_run(frr_t) sysnet_read_ifconfig_run(frr_t)
sysnet_watch_ifconfig_run(frr_t) sysnet_watch_ifconfig_run(frr_t)
ipsec_domtrans_mgmt(frr_t)
userdom_read_admin_home_files(frr_t) userdom_read_admin_home_files(frr_t)
optional_policy(` optional_policy(`

View File

@@ -1,2 +1,2 @@
SHA512 (frr-8.5.4.tar.gz) = f234fe73a019db2188e56988dc5cb3807c83d16c6f8723c68cb8f6154e8e63140f3cf8c3adec64a7661dd988089a8253fc3f910b31a1e6505ea1a6fec3df2e14 SHA512 (frr-8.5.2.tar.gz) = a5eadd8c88966b58ebc0e7b92311bda16b391abe727861eed772ded678f5a84d84421fbfd4b23c4a2b18ab3d2dcd5b2c9099491dab6958b63c39a9c67c4508d2
SHA512 (remove-babeld-ldpd.sh) = a5bf67a3722cb20d43cef1dac28f839db68df73a1b7d34d8438e4f9366da3b67d85c1f44281f93434e8dd8ebcb2d3dc258b77eaa5627475b7395d207f020839d SHA512 (remove-babeld-ldpd.sh) = a5bf67a3722cb20d43cef1dac28f839db68df73a1b7d34d8438e4f9366da3b67d85c1f44281f93434e8dd8ebcb2d3dc258b77eaa5627475b7395d207f020839d