<!--startmeta
custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/go/plugin/go.d/collector/snmp/npm-catalog/integrations/ospf_adjacency_topology.md"
meta_yaml: "https://github.com/netdata/netdata/edit/master/src/go/plugin/go.d/collector/snmp/npm-catalog/metadata.yaml"
sidebar_label: "OSPF Adjacency Topology"
learn_status: "Published"
learn_rel_path: "Network Performance Monitoring/Topologies/Integrations"
keywords: ['ospf', 'adjacency', 'topology', 'l3', 'routing', 'snmp', 'npm']
message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE NPM CATALOG metadata.yaml FILE"
endmeta-->

<!-- markdownlint-disable-file -->

# OSPF Adjacency Topology


<img src="https://netdata.cloud/img/SNMP.png" width="150"/>


Plugin: go.d.plugin
Module: snmp_topology

<img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />

## Overview

Map OSPF adjacencies between routers. Netdata reads the OSPF neighbor table (OSPF-MIB ospfNbrTable) and renders the L3 adjacency graph.

Netdata reads the OSPF-MIB neighbor table over SNMP and renders adjacencies in the `topology:snmp` view.

This integration is supported on all platforms.

This integration runs as a single instance per Netdata Agent.


### Default Behavior

#### Auto-Detection

Discovered automatically on routers that expose the OSPF neighbor table.

#### Limits

The default configuration for this integration does not impose any limits.

#### Performance Impact

The default configuration for this integration is not expected to impose a significant performance impact on the system.

## Setup


The **snmp_topology** collector runs as a single instance: it does not take user-defined jobs, and the
Netdata web interface offers no **+** to add one.
Adjust its settings in `go.d/snmp_topology.conf`.


### Prerequisites

#### SNMP devices configured

The devices must already be collected over SNMP (`go.d/snmp.conf`), and SNMP access must be reachable from the Netdata Agent acting as the site's SNMP hub.


### Configuration

#### Options

Topology discovery needs no per-device configuration: it walks the devices already configured as SNMP collector jobs. The only settings are the two intervals below, and `update_every` has a minimum of 10.

<details open><summary>Config options</summary>



| Option | Description | Default | Required |
|:-----|:------------|:--------|:---------:|
| update_every | How often to check for new or stale devices, in seconds. | 60 | no |
| refresh_every | How often to refresh topology data for each device. | 30m | no |


</details>



#### via File

The configuration file name for this integration is `go.d/snmp_topology.conf`.

The file format is YAML. A single-instance collector takes exactly one job, whose name is fixed:

```yaml
jobs:
  - name: snmp_topology
```

Any other job name is rejected. Set the collector's own options alongside `name`.
You can edit the configuration file using the [`edit-config`](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#edit-configuration-files) script from the
Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#locate-your-config-directory).

```bash
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/snmp_topology.conf
```

##### Examples
There are no configuration examples.



## Alerts

There are no alerts configured by default for this integration.



## Metrics
