plugin: [ files ]

provider: clab
defaults.device: iol
defaults.devices.iol.clab.image: iol:17.12.01
defaults.devices.ioll2.clab.image: ioll2:iol-l2-17.12.01

addressing:
  mgmt:
    ipv4: 192.168.200.0/24
  p2p:
    ipv4: 172.16.1.0/24
    prefix: 30

gateway:
  protocol: vrrp

nodes: 
  - name: sender
    id: 10
    config.inline: |
      ip route 0.0.0.0 0.0.0.0 10.1.0.1
  - name: r1
    module: ['ospf']
    id: 1
    config.inline: |
      no ip pim autorp
      ip multicast-routing
      ip pim rp-address 10.0.0.3
      !
      interface Et0/1
       ip pim sparse-mode
      !
      interface Et0/2
       ip pim sparse-mode
      !
  - name: r2
    module: ['ospf']
    id: 2
    config.inline: |
      no ip pim autorp
      ip multicast-routing
      ip pim rp-address 10.0.0.3
      !
      interface Et0/1
       ip pim sparse-mode
      !
      interface Et0/2
       ip pim sparse-mode
      !
      interface Et0/3
       ip pim sparse-mode
      !
  - name: r3
    module: ['ospf']
    id: 3
    config.inline: |
      no ip pim autorp
      ip multicast-routing
      ip pim rp-address 10.0.0.3
      !
      interface Et0/1
       ip pim sparse-mode
      !
      interface Et0/2
       ip pim sparse-mode
      !
      interface Loopback0
       ip pim sparse-mode
      !
  - name: r4
    module: ['ospf']
    id: 4
    config.inline: |
      no ip pim autorp
      ip multicast-routing
      ip pim rp-address 10.0.0.3
      !
      interface Et0/1
       ip pim sparse-mode
      !
      interface Et0/2
       ip pim sparse-mode
      !
  - name: r5
    module: ['ospf']
    id: 5
    config.inline: |
      no ip pim autorp
      ip multicast-routing
      ip pim rp-address 10.0.0.3
      !
      interface Et0/1
       ip pim sparse-mode
      !
      interface Et0/2
       ip pim sparse-mode
      !
      interface Et0/3
       ip pim sparse-mode
      !
      interface Et1/0
       ip pim sparse-mode
      !
  - name: r6
    module: ['ospf', 'gateway']
    id: 6
    config.inline: |
      no ip pim autorp
      ip multicast-routing
      ip pim rp-address 10.0.0.3
      !
      interface Et0/1
       ip pim sparse-mode
      !
      interface Et0/2
       ip pim sparse-mode
      !
  - name: r7
    module: ['ospf', 'gateway']
    id: 7
    config.inline: |
      no ip pim autorp
      ip multicast-routing
      ip pim rp-address 10.0.0.3
      !
      interface Et0/1
       ip pim sparse-mode
      !
      interface Et0/2
       ip pim sparse-mode
      !
  - name: s1
    device: ioll2
    role: bridge
  - name: receiver_01
    id: 11
    config.inline: |
      ip route 0.0.0.0 0.0.0.0 10.1.1.254
  - name: receiver_02
    id: 12
    config.inline: |
      ip route 0.0.0.0 0.0.0.0 10.1.1.254

links:
  - prefix: 10.1.0.0/24
    sender:
      ipv4: 10.1.0.10
    r1:
      ipv4: 10.1.0.1
      ospf.passive: True
  - bridge: s1
    prefix: 10.1.1.0/24
    receiver_01:
    receiver_02:
    r6:
      ospf.passive: True
      gateway.vrrp.group: 1
      gateway.vrrp.priority: 100
    r7:
      ospf.passive: True
      gateway.vrrp.group: 1
      gateway.vrrp.priority: 110
  - r1-r2
  - r2-r3
  - r2-r4
  - r3-r5
  - r4-r5
  - r5-r6
  - r5-r7