| Internet-Draft | Enhanced SLURM Filters | February 2026 |
| Fu & Geng | Expires 28 August 2026 | [Page] |
Simplified Local Internet Number Resource Management with the RPKI (SLURM) helps operators create a local view of the global RPKI by generating sets of filters and assertions. This document proposes to filter out RPKI data by type based on enhanced SLURM filters. Only the RPKI data types that the network or routers are interested in will appear in the Relying Party's output.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 28 August 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Relying Party (RP) collects signed RPKI objects from global RPKI publication points. The RPKI data passing RP's validation will appear in RP's output. Then, the RPKI-to-Router (RTR) protocol [RFC6810][RFC8210][I-D.ietf-sidrops-8210bis] will synchronize the validated RPKI data from RP to routers. Currently, four types of RPKI data including IPv4 Prefix, IPv6 Prefix, Router Key, and ASPA are supported in the RTR protocol.¶
However, in some cases, routers may be interested in a part of RPKI data types, instead of all. In such cases, synchronizing all types of data to routers is unreasonable.¶
Furthermore, there may be more types of RPKI data in the RPKI repositories and RPs in the future. Ignoring the router's requirements and directly synchronizing all types of data to the router may induce unnecessary and non-negligible transmission and storage overheads. The followings are example types, and some of them may be possibly supported in the RPKI system in the future:¶
Secured Routing Policy Specification Language (RPSL) [RFC7909]¶
Signed Prefix Lists [I-D.ietf-sidrops-rpki-prefixlist]¶
Autonomous Systems Cones [I-D.ietf-grow-rpki-as-cones]¶
Mapping Origin Authorizations (MOAs) [I-D.ietf-sidrops-moa-profile]¶
Signed SAVNET-Peering Information (SiSPI) [I-D.chen-sidrops-sispi]¶
Path validation with RPKI [I-D.van-beijnum-sidrops-pathrpki]¶
Signed Groupings of Autonomous System Numbers [I-D.spaghetti-sidrops-rpki-asgroup]¶
SLURM provides a simple way to enable an RP to establish a local and customized view of the RPKI ([RFC8416], [I-D.ietf-sidrops-aspa-slurm]). It defines Validation Output Filters to filter out specific RPKI data items and Locally Added Assertions to add RPKI data items. Although SLURM supports filtering out all IPv4 or IPv6 prefixes through the all-zero address prefixes, it does not support filtering out all RPKI data of other specified types.¶
This document proposes enhanced SLURM filters which can filter out RPKI data by type. With enhanced SLURM filters, operators can efficiently select which type of RPKI data need to be synchronized to routers.¶
The proposed method requires some modifications on the SLURM-related process of RP software. Upgrades of the RTR protocol implementations and router software implementations are not involved.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
One of use cases is IPv6-only network. Suppose a IPv6-only network wants to enable ROV on BGP border routers. The routers are only interested in IPv6-related BGP validation because the routers can only receive IPv6 routes from neighbor ASes. Therefore, IPv4 Prefix data, Router Key data, and any other data except IPv6 prefix data are not useful for the network. An example of IPv6-only network is New China Education and Research Network (named Future Internet Technology Infrastructure, FITI).¶
+------------+
| Rely Party |
+------------+
/ \
/ Sync RPKI \
/ data by RTR \
+---------/----------------\---------+
IPv6 | / \ |IPv6
routes| +----------+ +----------+ |routes
------->|BGP router| |BGP router| |------>
| +----------+ +----------+ |
| IPv6-only |
+------------------------------------+
¶
As described in Section Section 1, there may be more types of RPKI data in the RPKI repositories and RPs. Thus, there will be more use cases where a network does not need all types of RPKI data in the future.¶
This section proposes two optional designs.¶
A SLURM file consists of a single JSON [RFC8259] object which has the same structure as [I-D.ietf-sidrops-aspa-slurm], except that the "slurmVersion" member MUST be set to 3 (TBD). A new member called "matchAll" is defined for the ROA Prefix filters, BGPsec filters, ASPA filters, and possibly new types of filters defined in the future. The value of the "matchAll" member MUST be "true".¶
To filter out a specific type of RPKI data, the RP can configure exactly one filter of the specific type which includes the "matchAll" member. If a filter includes the "matchAll" member, it may only optionally contain the "comment" member and SHOULD NOT include any other members besides "comment". When a filter containing the "matchAll" member exists, no other filters of the same type should exist—regardless of whether those other filters contain the "matchAll" member or not.¶
Example 1:Filter out all the VRPs with IPv4 and IPv6 Prefixes¶
"prefixFilters": [
{
"matchAll": true,
"comment": "Filter out all the VRPs with IPv4 and IPv6 Prefixes"
}
]
¶
If one want to filter either IPv4 or IPv6 prefixes, just reuse the existing SLURM mechanism, that is, filtering by using all-zero address prefixes.¶
Example 1.1:Filter out all the VRPs with IPv4 Prefixes¶
"prefixFilters": [
{
"prefix": 0.0.0.0/0,
"comment": "Filter out all the VRPs with IPv4 Prefixes"
}
]
¶
Example 1.2:Filter out all the VRPs with IPv6 Prefixes¶
"prefixFilters": [
{
"prefix": ::/0,
"comment": "Filter out all the VRPs with IPv6 Prefixes"
}
]
¶
Example 2:Filter out all the Router Keys¶
"bgpsecFilters": [
{
"matchAll": true,
"comment": "Filter out all the Router Keys"
}
]
¶
A SLURM file consists of a single JSON [RFC8259] object containing the following members:¶
A "slurmVersion" member that MUST be set to 3 (TBD), encoded as a number¶
A "validationOutputFilters" member whose value is an object. The object MUST contain exactly four members:¶
A "locallyAddedAssertions" member whose value is an object. The object MUST contain exactly three members:¶
The following JSON structure with JSON members represents a SLURM file that has no filters or assertions:¶
{
"slurmVersion": 3,
"validationOutputFilters": {
"aspaFilters": [],
"bgpsecFilters": [],
"prefixFilters": [],
"typeFilters": []
},
"locallyAddedAssertions": {
"aspaAssertions": [],
"bgpsecAssertions": [],
"prefixAssertions": []
}
}
¶
There are currently four types of RPKI data. More types may be defined in the future.¶
The RP can configure zero or at most four RPKI Data Type Filters ("Type Filter" for short). Each Type Filter contains a single 'rpkiDataType' and optionally a single 'comment'.¶
The 'rpkiDataType' member MUST be one of the values, i.e., "IPv4 Prefix", "IPv6 Prefix", "Router Key", and "ASPA".¶
It is RECOMMENDED that an explanatory comment is included with each Type Filter so that it can be shown to users of the RP software.¶
Any RPKI data item that matches any configured Type Filter MUST be removed from the RP's output.¶
A RPKI data item is considered to match with a Type Filter if the following condition applies: The item is considered to match if the RPKI data type of the item is equal to the "rpkiDataType" value of Type Filter.¶
The following example JSON structure represents a "typeFilter" member with one object as described above:¶
"typeFilter": [
{
"rpkiDataType": "Router Key",
"comment": "Filter out all Router Keys"
}
]
¶
In the example, all the Router Keys will be filtered out by SLURM.¶
This document has no IANA actions.¶
The security considerations in Section 6 of [RFC8416] are also applied to this document.¶
Much thanks for the valuable comments or feedback from Job Snijders, Jeff Haas, Ying Wang, and Randy Bush.¶