! {% if rip_conf -%} router rip {% if old_default_distance -%} no distance {{old_default_distance}} {% endif -%} {% if default_distance -%} distance {{default_distance}} {% endif -%} {% if old_default_originate -%} no default-information originate {% endif -%} {% if default_originate -%} default-information originate {% endif -%} {% if old_rip.default_metric -%} no default-metric {{old_rip.default_metric}} {% endif -%} {% if rip.default_metric -%} default-metric {{rip.default_metric}} {% endif -%} {% for protocol in old_rip.redist -%} {% if old_rip.redist[protocol]['metric'] and old_rip.redist[protocol]['route_map'] -%} no redistribute {{protocol}} metric {{rip.redist[protocol]['metric']}} route-map {{rip.redist[protocol]['route_map']}} {% elif old_rip.redist[protocol]['metric'] -%} no redistribute {{protocol}} metric {{old_rip.redist[protocol]['metric']}} {% elif old_rip.redist[protocol]['route_map'] -%} no redistribute {{protocol}} route-map {{old_rip.redist[protocol]['route_map']}} {% else -%} no redistribute {{protocol}} {% endif -%} {% endfor -%} {% for protocol in rip.redist -%} {% if rip.redist[protocol]['metric'] and rip.redist[protocol]['route_map'] -%} redistribute {{protocol}} metric {{rip.redist[protocol]['metric']}} route-map {{rip.redist[protocol]['route_map']}} {% elif rip.redist[protocol]['metric'] -%} redistribute {{protocol}} metric {{rip.redist[protocol]['metric']}} {% elif rip.redist[protocol]['route_map'] -%} redistribute {{protocol}} route-map {{rip.redist[protocol]['route_map']}} {% else -%} redistribute {{protocol}} {% endif -%} {% endfor -%} {% for iface in old_rip.distribute -%} {% if old_rip.distribute[iface].iface_access_list_in -%} no distribute-list {{old_rip.distribute[iface].iface_access_list_in}} in {{iface}} {% endif -%} {% if old_rip.distribute[iface].iface_access_list_out -%} no distribute-list {{old_rip.distribute[iface].iface_access_list_out}} out {{iface}} {% endif -%} {% if old_rip.distribute[iface].iface_prefix_list_in -%} no distribute-list prefix {{old_rip.distribute[iface].iface_prefix_list_in}} in {{iface}} {% endif -%} {% if old_rip.distribute[iface].iface_prefix_list_out -%} no distribute-list prefix {{old_rip.distribute[iface].iface_prefix_list_out}} out {{iface}} {% endif -%} {% endfor -%} {% for iface in rip.distribute -%} {% if rip.distribute[iface].iface_access_list_in -%} distribute-list {{rip.distribute[iface].iface_access_list_in}} in {{iface}} {% endif -%} {% if rip.distribute[iface].iface_access_list_out -%} distribute-list {{rip.distribute[iface].iface_access_list_out}} out {{iface}} {% endif -%} {% if rip.distribute[iface].iface_prefix_list_in -%} distribute-list prefix {{rip.distribute[iface].iface_prefix_list_in}} in {{iface}} {% endif -%} {% if rip.distribute[iface].iface_prefix_list_out -%} distribute-list prefix {{rip.distribute[iface].iface_prefix_list_out}} out {{iface}} {% endif -%} {% endfor -%} {% if old_rip.dist_acl_in -%} no distribute-list {{old_rip.dist_acl_in}} in {% endif -%} {% if rip.dist_acl_in -%} distribute-list {{rip.dist_acl_in}} in {% endif -%} {% if old_rip.dist_acl_out -%} no distribute-list {{old_rip.dist_acl_out}} out {% endif -%} {% if rip.dist_acl_out -%} distribute-list {{rip.dist_acl_out}} out {% endif -%} {% if old_rip.dist_prfx_in -%} no distribute-list prefix {{old_rip.dist_prfx_in}} in {% endif -%} {% if rip.dist_prfx_in -%} distribute-list prefix {{rip.dist_prfx_in}} in {% endif -%} {% if old_rip.dist_prfx_out -%} no distribute-list prefix {{old_rip.dist_prfx_out}} out {% endif -%} {% if rip.dist_prfx_out -%} distribute-list prefix {{rip.dist_prfx_out}} out {% endif -%} {% for network in old_rip.networks -%} no network {{network}} {% endfor -%} {% for network in rip.networks -%} network {{network}} {% endfor -%} {% for iface in old_rip.ifaces -%} no network {{iface}} {% endfor -%} {% for iface in rip.ifaces -%} network {{iface}} {% endfor -%} {% for neighbor in old_rip.neighbors -%} no neighbor {{neighbor}} {% endfor -%} {% for neighbor in rip.neighbors -%} neighbor {{neighbor}} {% endfor -%} {% for net in rip.net_distance -%} {% if rip.net_distance[net].access_list and rip.net_distance[net].distance -%} distance {{rip.net_distance[net].distance}} {{net}} {{rip.net_distance[net].access_list}} {% else -%} distance {{rip.net_distance[net].distance}} {{net}} {% endif -%} {% endfor -%} {% for passive_iface in old_rip.passive_iface -%} no passive-interface {{passive_iface}} {% endfor -%} {% for passive_iface in rip.passive_iface -%} passive-interface {{passive_iface}} {% endfor -%} {% for route in old_rip.route -%} no route {{route}} {% endfor -%} {% for route in rip.route -%} route {{route}} {% endfor -%} {% if old_rip.timer_update or old_rip.timer_timeout or old_rip.timer_garbage -%} no timers basic {% endif -%} {% if rip.timer_update or rip.timer_timeout or rip.timer_garbage -%} timers basic {{rip.timer_update}} {{rip.timer_timeout}} {{rip.timer_garbage}} {% endif -%} ! {% else -%} no router rip ! {% endif -%}