! {% 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 %}