{% if filetype_loop == 0 %}VRF,Address Family,Instance,Area,Interface,Name,BFD,Cost,Dead Interval,Enabled,Hello Interval,Hello Timer,Index,Interface Type,IP Address,Line Protocol,Passive,Retransmit Interval,State,LSA Checksums,LSA Count,Neighbor Adjacencies,Neighbor Flooding,Total Neighbors,Transmit Delay,Wait Interval{% for vrf in to_parse_ip_ospf_interface %}{% for address_family in to_parse_ip_ospf_interface[vrf].address_family %}{% for instance in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance %}{% for area in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas %}{% for interface in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces %}
{{ vrf }},{{ address_family }},{{ instance }},{{ area }},{{ interface }},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].name }},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].bfd.enable }},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].cost }},{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].dead_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].dead_interval }}{% else %}N/A{% endif %},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].enable }},{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_interval }}{% else %}N/A{% endif %},{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_timer is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_timer }}{% else %}N/A{% endif %},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].index }},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].interface_type }},{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].ip_address is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].ip_address }}{% else %}N/A{% endif %},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].line_protocol }},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].passive }},{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].retransmit_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].retransmit_interval }}{% else %}N/A{% endif %},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].state }},{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.link_scope_lsa_cksum_sum }},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.link_scope_lsa_count }},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.num_nbrs_adjacent }},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.num_nbrs_flooding }},{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.total_neighbors }},{% else %}N/A,N/A,N/A,N/A,N/A,{% endif %},{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].transmit_delay is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].transmit_delay }}{% else %}N/A{% endif %},{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].wait_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].wait_interval }}{% else %}N/A{% endif %}{% endfor %}{% endfor %}{% endfor %}{% endfor %}{% endfor %}
{% else %}{% if filetype_loop == 1 %}
# Show IP OSPF Interface VRF
| VRF | Address Family | Instance | Area | Interface | Name | BFD | Cost | Dead Interval | Enabled | Hello Interval | Hello Timer | Index | Interface Type | IP Address | Line Protocol | Passive | Retransmit Interval | State | LSA Checksums | LSA Count | Neighbor Adjacencies | Neighbor Flooding | Total Neighbors | Transmit Delay | Wait Interval |
| --- | -------------- | -------- | ---- | --------- | ---- | --- | ---- | ------------- | ------- | -------------- | ----------- | ----- | -------------- | ---------- | ------------- | ------- | ------------------- | ----- | ------------- | --------- | -------------------- | ----------------- | --------------- | -------------- | ------------- |{% for vrf in to_parse_ip_ospf_interface %}{% for address_family in to_parse_ip_ospf_interface[vrf].address_family %}{% for instance in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance %}{% for area in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas %}{% for interface in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces %}
| {{ vrf }} | {{ address_family }} | {{ instance }} | {{ area }} | {{ interface }} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].name }} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].bfd.enable }} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].cost }} | {% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].dead_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].dead_interval }}{% else %}N/A{% endif %} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].enable }} | {% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_interval }}{% else %}N/A{% endif %} | {% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_timer is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_timer }}{% else %}N/A{% endif %} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].index }} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].interface_type }} | {% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].ip_address is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].ip_address }}{% else %}N/A{% endif %} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].line_protocol }} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].passive }} | {% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].retransmit_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].retransmit_interval }}{% else %}N/A{% endif %} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].state }} | {% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.link_scope_lsa_cksum_sum }} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.link_scope_lsa_count }} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.num_nbrs_adjacent }} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.num_nbrs_flooding }} | {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.total_neighbors }} | {% else %}N/A | N/A | N/A | N/A | N/A | {% endif %} | {% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].transmit_delay is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].transmit_delay }}{% else %}N/A{% endif %} | {% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].wait_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].wait_interval }}{% else %}N/A{% endif %} |{% endfor %}{% endfor %}{% endfor %}{% endfor %}{% endfor %}
{% else %}{% if filetype_loop == 2 %}
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdn.datatables.net/1.11.4/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/buttons/2.0.0/js/dataTables.buttons.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
    <script src="https://cdn.datatables.net/buttons/2.0.0/js/buttons.html5.min.js"></script>
    <script src="https://cdn.datatables.net/buttons/2.0.0/js/buttons.print.min.js"></script>
    <script src="https://cdn.datatables.net/colreorder/1.5.4/js/dataTables.colReorder.min.js"></script>
    <script src="https://cdn.datatables.net/buttons/2.0.0/js/buttons.colVis.min.js"></script>
    <script src="https://cdn.datatables.net/keytable/2.6.4/js/dataTables.keyTable.min.js"></script>
    <script src="https://cdn.datatables.net/select/1.3.3/js/dataTables.select.min.js"></script>
    <script src="https://cdn.datatables.net/fixedheader/3.1.9/js/dataTables.fixedHeader.min.js"></script>
    <link rel="stylesheet" href="https://cdn.datatables.net/fixedheader/3.1.9/css/fixedHeader.dataTables.min.css">
    <link rel="stylesheet" href="https://cdn.datatables.net/select/1.3.3/css/select.dataTables.min.css">
    <link rel="stylesheet" href="https://cdn.datatables.net/keytable/2.6.4/css/keyTable.dataTables.min.css">
    <link rel="stylesheet" href="https://cdn.datatables.net/1.11.4/css/jquery.dataTables.min.css">
</head>
<body>
<h1>Show IP OSPF Interface VRF</h1>
<table id = "ospf">
  <tr>
    <th>VRF</th>
    <th>Address Family</th>
    <th>Instance</th>
    <th>Area</th>
    <th>Interface</th>
    <th>Name</th>
    <th>BFD</th>
    <th>Cost</th>
    <th>Dead Interval</th>
    <th>Enabled</th>
    <th>Hello Interval</th>
    <th>Hello Timer</th>
    <th>Index</th>
    <th>Interface Type</th>
    <th>IP Address</th>
    <th>Line Protocol</th>
    <th>Passive</th>
    <th>Retransmit Interval</th>
    <th>State</th>
    <th>LSA Checksums</th>
    <th>LSA Count</th>
    <th>Neighbor Adjacencies</th>
    <th>Neighbor Flooding</th>
    <th>Total Neighbors</th>
    <th>Transmit Delay</th>
    <th>Wait Interval</th>
  </tr>
{%- for vrf in to_parse_ip_ospf_interface %}{% for address_family in to_parse_ip_ospf_interface[vrf].address_family %}{% for instance in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance %}{% for area in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas %}{% for interface in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces %}
  <tr>
    <td>{{ vrf }}</td>
    <td>{{ address_family }}</td>
    <td>{{ instance }}</td>
    <td>{{ area }}</td>
    <td>{{ interface }}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].name }}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].bfd.enable }}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].cost }}</td>
    <td>{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].dead_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].dead_interval }}{% else %}N/A{% endif %}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].enable }}</td>
    <td>{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_interval }}{% else %}N/A{% endif %}</td>
    <td>{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_timer is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_timer }}{% else %}N/A{% endif %}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].index }}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].interface_type }}</td>
    <td>{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].ip_address is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].ip_address }}{% else %}N/A{% endif %}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].line_protocol }}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].passive }}</td>
    <td>{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].retransmit_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].retransmit_interval }}{% else %}N/A{% endif %}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].state }}</td>{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics is defined %}
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.link_scope_lsa_cksum_sum }}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.link_scope_lsa_count }}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.num_nbrs_adjacent }}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.num_nbrs_flooding }}</td>
    <td>{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.total_neighbors }}</td>{% else %}
    <td>N/A</td>
    <td>N/A</td>
    <td>N/A</td>
    <td>N/A</td>
    <td>N/A</td>{% endif %}    
    <td>{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].transmit_delay is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].transmit_delay }}{% else %}N/A{% endif %}</td>
    <td>{% if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].wait_interval is defined %}{{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].wait_interval }}{% else %}N/A{% endif %}</td>
  </tr>{% endfor %}{% endfor %}{% endfor %}{% endfor %}{% endfor %}
</table>
<script type = "text/javascript">
  $(document).ready(function(){
    $('#ospf thead tr')
    .clone(true)
    .addClass('filters')
    .appendTo('#ospf thead');

    var table = $('#ospf').DataTable({
        keys: true,
        dom: 'Bfrtip',
        lengthMenu: [
            [ 10, 25, 50, -1 ],
            [ '10 rows', '25 rows', '50 rows', 'Show all' ]
        ],
        buttons: [
        'pageLength','colvis','copy', 'csv', 'excel', 'pdf', 'print'
        ],
        colReorder: true,
        select: true,            
        orderCellsTop: true,
        fixedHeader: true,
        initComplete: function () {
        var api = this.api();

        // For each column
        api
            .columns()
            .eq(0)
            .each(function (colIdx) {
                // Set the header cell to contain the input element
                var cell = $('.filters th').eq(
                    $(api.column(colIdx).header()).index()
                );
                var title = $(cell).text();
                $(cell).html('<input type="text" placeholder="' + title + '" />');

                // On every keypress in this input
                $(
                    'input',
                    $('.filters th').eq($(api.column(colIdx).header()).index())
                )
                    .off('keyup change')
                    .on('keyup change', function (e) {
                        e.stopPropagation();

                        // Get the search value
                        $(this).attr('title', $(this).val());
                        var regexr = '({search})'; //$(this).parents('th').find('select').val();

                        var cursorPosition = this.selectionStart;
                        // Search the column for that value
                        api
                            .column(colIdx)
                            .search(
                                this.value != ''
                                    ? regexr.replace('{search}', '(((' + this.value + ')))')
                                    : '',
                                this.value != '',
                                this.value == ''
                            )
                            .draw();

                        $(this)
                            .focus()[0]
                            .setSelectionRange(cursorPosition, cursorPosition);
                    });
            });
    },
});
});        
</script>
</body></html>
{%- else %}
# Show IP OSPF Interface VRF
{%- for vrf in to_parse_ip_ospf_interface %}
{%-     for address_family in to_parse_ip_ospf_interface[vrf].address_family %}
{%-         for instance in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance %}
## {{ vrf }} Address Family - {{ address_family }} Instance - {{ instance }}
{%-             for area in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas %}
### {{ area }}
{%-                 for interface in to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces %}  
#### {{ interface }}
##### Name: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].name }}
##### BFD Enabled: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].bfd.enable }}
##### Cost: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].cost }}
##### Intervals
{%- if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].dead_interval is defined %}
###### Dead: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].dead_interval }}{% endif %}
{%- if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_interval is defined %}
###### Hello: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_interval }}{% endif %}
{%- if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_timer is defined %}
##### Enabled: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].enable }}
##### Hello Timer: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].hello_timer }}{% endif %}
##### Index: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].index }}
##### Type: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].interface_type }}
{%- if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].ip_address is defined %}
##### IP Address: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].ip_address }}{% endif %}
##### Line Protocol: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].line_protocol }}
##### Passive: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].passive }}
{%- if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].retransmit_interval is defined %}
##### Retransmit Interval: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].retransmit_interval }}{% endif %}
##### State: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].state }}
{%- if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics is defined %}
##### Statistics
###### LSA Checksums: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.link_scope_lsa_cksum_sum }}
###### LSA Count: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.link_scope_lsa_count }}
###### Neighbor Adjacencies: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.num_nbrs_adjacent }}
###### Neighbors Flooding: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.num_nbrs_flooding }}
###### Total Neighbors: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].statistics.total_neighbors }}{% endif %}
{%- if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].transmit_delay is defined %}
##### Transmit Delay: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].transmit_delay }}{% endif %}
{%- if to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].wait_interval is defined %}
##### Wait Interval: {{ to_parse_ip_ospf_interface[vrf].address_family[address_family].instance[instance].areas[area].interfaces[interface].wait_interval }}{% endif %}
{%- endfor %}{% endfor %}{% endfor %}{% endfor %}{% endfor %}
{%- endif %}{% endif %}{% endif %}