Traffic Engineering · Topic 2 of 3

RSVP, Static Paths and Dynamic Paths with CSPF

Learn how RSVP signals a TE tunnel with Path and Resv messages, and how static explicit paths differ from dynamic paths calculated by CSPF with OSPF.

  • 5 min
  • Includes a diagram
In a nutshell
  • RSVP signals TE tunnels using Path and Resv messages.
  • Path travels toward the tail end, and Resv returns toward the head end.
  • RSVP is soft state, so refreshes keep the tunnel alive.

What it is

RSVP sets up a TE tunnel hop by hop, and the path it follows is either listed by hand or calculated by CSPF.

A static path is an explicit list of routers that you write. A dynamic path is worked out by the head end using CSPF, which stands for constrained shortest path first.

Both kinds of path are then signalled in the same way, using RSVP.

Head endsends Path messagedownstreamMid routerrecords the routedownstreamTail endanswers with ResvTail endsends Resv messageupstream, labels and bandwidthMid routerassigns labelupstreamHead endtunnel is up

How it works

The head end chooses a path, then RSVP walks it forward with a Path message and back with a Resv message.

RSVP signalling

RSVP sets up a TE tunnel: Path messages travel from the head end through a mid router to the tail end, then Resv messages return carrying labels and bandwidth until the tunnel is up. RSVP for traffic engineering uses two main messages.

MessageDirectionJob
PathHead end toward tail endDescribes the tunnel and the route it should follow
ResvTail end toward head endConfirms the tunnel, reserves bandwidth and passes labels

The Path message travels along the chosen route, one router at a time. Each router remembers the previous hop.

The tail end answers with a Resv message, which returns along the same route. Each router in turn picks a label and tells the router before it.

When the Resv reaches the head end, the tunnel is up and carries labels from end to end. RSVP is a soft state protocol, so the routers keep the tunnel alive by exchanging refresh messages. If they stop, the tunnel is removed.

If a router cannot meet the request, for example because it has no spare bandwidth, it sends an error message back and the tunnel does not come up on that route.

Enabling TE on the links

Each interface that takes part is listed under the TE interface menu, which is also where the bandwidth of the link is stated.

/mpls traffic-eng interface add interface=ether1
/mpls traffic-eng interface add interface=ether2
/mpls traffic-eng interface print

Static path

A static path lists the routers the tunnel must cross. The head end does not calculate anything. It sends the Path message along exactly that route.

/mpls traffic-eng tunnel-path add name=via-r2 use-cspf=no hops=10.0.1.2,10.0.2.2
/interface traffic-eng add name=te1 to-address=10.255.255.3 primary-path=via-r2

Hops can be strict or loose in the general MPLS model. A strict hop must be the next router.

A loose hop may have other routers in between. Check the console help for the exact way RouterOS writes the hop type.

The advantage is full control. The disadvantage is that nothing adapts. If a listed link fails, the tunnel is down until the path is changed or a secondary path takes over.

Dynamic path and CSPF

With a dynamic path, the head end calculates the route. CSPF is a shortest path calculation that first removes links that do not meet the constraints, such as not enough free bandwidth.

CSPF needs to know the topology and the free bandwidth on every link. The interior protocol provides this. On RouterOS, OSPF is used, and the OSPF instance has settings for the TE area and the TE router ID.

/routing ospf instance set default mpls-te-area=backbone mpls-te-router-id=lo
/mpls traffic-eng tunnel-path add name=auto use-cspf=yes
/interface traffic-eng add name=te1 to-address=10.255.255.3 primary-path=auto
  • use-cspf=yes makes the head end calculate the route.
  • mpls-te-area and mpls-te-router-id allow OSPF to share TE information.
  • If the topology changes, the tunnel can be recalculated onto another route.
OSPFshares topology and free bandwidthinputCSPFremoves links that fail the constraintresultRoutehops to the tail endsignalled byRSVPsets up the tunnel

Comparing static and dynamic

PointStatic pathDynamic path with CSPF
Who chooses the routeThe administratorThe head end
Needs OSPF TE dataNoYes
Reacts to a failureNo, unless a secondary path existsYes, a new route can be found
Takes bandwidth into accountOnly when RSVP checks itYes, as a constraint

A tunnel can have both a primary path and one or more secondary paths. The secondary path takes over if the primary fails.

Exam tip

If a dynamic tunnel will not come up, check OSPF TE settings first. CSPF cannot calculate without link information.

What to remember for the exam

Seven facts cover most questions here.

  • RSVP signals TE tunnels using Path and Resv messages.
  • Path travels toward the tail end, and Resv returns toward the head end.
  • RSVP is soft state, so refreshes keep the tunnel alive.
  • A static path is an explicit hop list, with use-cspf=no.
  • A dynamic path is calculated by CSPF, with use-cspf=yes.
  • CSPF removes links that do not meet the constraints and then runs shortest path.
  • CSPF needs TE information from OSPF, using the MPLS TE settings on the instance.
Watch out

A static path never recalculates. If a listed hop fails, the tunnel stays down until a secondary path or an edit fixes it.

Common mistakes

These four errors are common.

Expecting CSPF to work without OSPF TE data. There is no topology for it to use.

Forgetting to list the interfaces under TE. Only enabled interfaces can carry the tunnel.

Writing a static hop list with a wrong address. The Path message cannot follow the route and the tunnel does not come up.

Assuming a static path adapts. It does not change unless you change it.

Check yourself

Work through these three questions.

  • What do the RSVP Path and Resv messages do?

    Path travels from the head end to the tail end and describes the tunnel. Resv returns the other way, reserves bandwidth and passes labels.

  • How does a dynamic path differ from a static path?

    A dynamic path is calculated by the head end with CSPF, set with use-cspf=yes. A static path is a hop list you write, with use-cspf=no.

  • What does CSPF need from OSPF?

    It needs the topology and the free bandwidth on each link. The OSPF instance shares this through its TE settings.

Topic 2 of 3 in Traffic Engineering

Test yourself on Traffic Engineering

The full MikroTik MTCINE question bank has 475 questions, with timed practice exams and an explanation for every answer.

This study guide is independent and is not affiliated with, endorsed by, or sponsored by MikroTik. Vendor names, certification names and exam codes are trademarks of their respective owners and are used for identification only.