Feature List

November 2, 2020 ยท View on GitHub

Supported version

RIFT draft version: draft-ietf-rift-rift-12

Thrift data model version: 4.1

Adjacencies

FeatureSupported
Link Information Element (LIE) PacketYes
Link Information Element (LIE) Finite State Machine (FSM)Yes
Adjacencies using IPv4 Link and Multicast AddressesYes
Adjacencies using IPv6 Link and Multicast AddressesYes

Zero Touch Provisioning (ZTP)

FeatureSupported
Automatic SystemID SelectionYes
Zero Touch Provisioning (ZTP) Finite State Machine (FSM)Yes
Automatic Level Determination ProcedureYes

Flooding

FeatureSupportedGitHub Issue
Receive all types of TIE packetsYes
Store received TIE packets in TIE-DBYes
Age TIE packets in TIE-DB and remove when they expireYes
Add neighbor's newer TIEs to request queueYes
Add neighbor's older TIEs to send queueYes
Add neighbor's same TIEs to acknowledge queueYes
Re-transmit TIEs if they are not acknowledgedYes
Periodically serve all queues (TX, RTX, REQ, ACK)Yes
Propagate TIE packets without decoding and re-encodingYes
Send / Process Node TIE packetsYes
Send / Process North Prefix TIE packets (configured prefixes)Yes
Send / Process South Prefix TIE packets (default prefixes)Yes
Send / Process Positive Disaggregation TIE packetsYes
Send / Process Negative Disaggregation TIE packetsYes
Send / Process Policy Guided Prefix TIE packetsNo32
Send / Process Key Value TIE packetsNo33
Process received TIDE packetsYes
Request missing TIEs based on received TIDE packetsYes
Send newer TIEs based on received TIDE packetsYes
Detect extra TIEs based on gaps inside received TIDE packetsYes
Detect extra TIEs based on gaps between received TIDE packetsYes
Acknowledge same TIEs based on received TIDE packetsYes
Periodically originate TIDE packetsYes
Process received TIRE packetsYes
Start sending TIES requested in received TIRE packetYes
Stop sending TIES acknowledged in received TIRE packetYes
Apply flooding scope rules when sending TIE packetsYes
Apply flooding scope rules when sending TIDE packetsYes
Apply flooding scope rules when sending TIRE packetsYes
Southbound Default Route OriginationYes
Northbound TIE Flooding ReductionYes
Applying PolicyNo32
Store Policy-Guided Prefix for Route Computation and RegenerationNo32
Re-originationYes
Flood IPv4 PrefixesYes
Flood IPv6 PrefixesYes

Route Calculation

FeatureSupportedGitHub Issue
Reachability ComputationYes
Northbound SPFYes
Southbound SPFYes
Leaf-to-leaf shortcutsNo40
Equal-Cost Multi-Path (ECMP)Yes
Fabric bandwidth balancing / Non-Equal-Cost Multi-Path (NECMP)Yes
Use non-best paths (Eppstein k-shortest)No41
Route Calculation for Positive DisaggregationYes
Route Calculation for Negative DisaggregationYes
Routing Information Base (RIB)Yes
Forwarding Information Base (FIB) abstractionYes
Store FIB routes into kernel route table (on Linux only)Yes

Additional Features

FeatureSupportedGitHub Issue
Attaching PrefixesYes
Attaching Policy-Guided PrefixesNo32
Positive Disaggregation on Link & Node FailuresYes
Negative Disaggregation on Link & Node FailuresYes
Overload BitNo42
Optimized Route Computation on LeafsNo43
MobilityNo44
AnycastNo45
Overlays and SignalingYes
Key/Value StoreNo33
Interactions with BFDNo46
Fabric Bandwidth BalancingNo38
Label BindingNo47
Segment Routing Support with RIFTNo48
Leaf to Leaf ProceduresNo40
Address Family and Multi Topology ConsiderationsYes
Reachability of Internal Nodes in the FabricYes
One-Hop Healing of Levels with East-West LinksNo40
Considerations for Leaf-Only ImplementationYes
Adaptations to Other Proposed Data Center TopologiesYes
Originating Non-Default Route SouthboundNo49
Multicast RoutingNo39

Management

FeatureSupportedGitHub Issue
Telnet clientYes
SSH clientNo31
Command Line Interface (CLI)Yes
CLI Command HistoryYes
CLI Tab CompletionNo50
CLI Context-Sensitive HelpPartial51
LoggingYes
YANG supportNo52
Startup Configuration FileYes
Run-time Configuration ChangesPartial53
Multi-Node TopologiesYes

Infrastructure

Finite State Machine

FeatureSupported
Formal Finite State Machine (FSM) frameworkYes
Generate FSM documentation from codeYes
Report history of transitionsYes
Visualize history of FSM transitionsYes
Distinguish boring (verbose) vs interesting (non-verbose) transactionsYes

Continuous Integration (CI)

FeatureSupported
Travis Continuous IntegrationYes
Codecov code coverage measuring and reportingYes
Automated PylintYes
Automated Pytest Unit TestsYes
Automated System TestsYes
Automated Interoperability TestsYes, with Juniper RIFT
Automated Chaos TestsYes