<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-zhou-grow-monitoring-neighbor-state-00"
     ipr="trust200902">
  <front>
    <title abbrev="Monitoring Neighbor State">Real-Time Monitoring
    Link/Protocol Neighbor State</title>

    <author fullname="Tianran Zhou" initials="T. " surname="Zhou">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>zhoutianran@huawei.com</email>
      </address>
    </author>

    <author fullname="Feng Xu" initials="F. " surname="Xu">
      <organization>Tencent</organization>

      <address>
        <postal>
          <street/>

          <city>Guangzhou</city>

          <code/>

          <country>China</country>
        </postal>

        <email>oliverxu@tencent.com</email>
      </address>
    </author>

    <author fullname="Shunwan Zhuang" initials="S. " surname="Zhuang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>zhuangshunwan@huawei.com</email>
      </address>
    </author>

    <author fullname="Haibo Wang" initials="H." surname="Wang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>rainsword.wang@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="16" month="August" year="2022"/>

    <abstract>
      <t>Various protocols are deployed in today's networks, such as BGP /
      ISIS / OSPF etc. Link neighbor state changes and protocol neighbor state
      changes are the most important network events that need to be processed
      with the highest priority. In particular, the SDN controller needs to
      quickly sense the link neighbor and protocol neighbor state change
      information in the network. Thus, the various policies applied by the
      SDN controller to the network can quickly match the current state of the
      network. This document discusses some possible scenarios and the
      relevant requirements.</t>

      <t/>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>Various protocols are deployed in today's networks, such as BGP /
      ISIS / OSPF / LDP / BFD etc. When managing a network, one of the most
      important things to monitor is changes to the various protocols'
      neighbor states. Many times a protocol neighbor state change is
      indicative of a problem on the network, and it is an important basis for
      the SND controller to deploy the traffic steering policies. There are
      several ways to monitor these state changes, e.g. we can use
      command-line interface (CLI) to get them from the devices, but typically
      it's done with either SNMP based polling and/or SNMP traps. For BGP, we
      can use BMP (BGP Monitoring Protocol) <xref target="RFC7854"/> to
      collect BGP neighbor state change information.</t>

      <t>Link neighbor state changes and protocol neighbor state changes are
      the most important network events that need to be processed with the
      highest priority. In particular, the SDN controller needs to quickly
      sense the link neighbor and protocol neighbor state change information
      in the network. Thus, the various policies applied by the SDN controller
      to the network can quickly match the current state of the network.</t>

      <t>The problem of the current real-time data collection method:
      Collecting protocol neighbor state will also collect many other large
      amounts of information data associated with it and have a significant
      impact on the reception/processing of high priority protocol neighbor
      state data. E.g., the processing of the BMP Peer Up/Down message is not
      real-time, and is affected by the receiving and processing of other BMP
      messages, especially a large number of route monitoring messages.</t>

      <t>At present, the SDN controller uses a single channel to receive
      real-time data from the network, and then classifies the data and
      processes it in order, which causes the delay of the neighbor state
      information processing to grow; and the neighbor information data
      structure of different protocols are different; these cases will
      increase the delay in which the SDN controller processes neighbor state
      data.</t>

      <t/>
    </section>

    <section title="Requirements and Options">
      <t>Summary of requirements are as follows:</t>

      <t>Requirement 1: Network event prioritization, Set Link neighbor state
      changes and protocol neighbor state changes as the most important
      network events.</t>

      <t>Requirement 2: The structure of the link neighbor and protocol
      neighbor state change information needs to use a normalized format, such
      as a unified TLV.</t>

      <t>Requirement 3: Link Neighbor and Protocol Neighbor State Change
      Information requires a separate transport channel to be separated from
      other low priority data.</t>

      <t>Requirement 4: SDN controller implements the convergence mechanism of
      the existing network protocol in milliseconds/second.</t>

      <t>Some options to be discussed:</t>

      <t>1) A new Neighbor State Monitoring Protocol.</t>

      <t>2) Consider processing all neighbor states into LS information,
      flooding them through IGP, and collecting them on the controller through
      BGP-LS.</t>

      <t>3) Consider processing all neighbor states into LS information,
      imorting them to the BGP-LS Local-RIB, and collecting them on the
      controller through BMP.</t>

      <t>4) gRPC + YANG Model.</t>

      <t>5) To be added...</t>

      <t/>
    </section>

    <section title="Neighbor State Information Format">
      <t>At present, the neighbor information data structure of different
      protocols are different. In order to speed up processing in controller
      or collector, this document proposes to use a normalized format as
      following:</t>

      <t><figure align="center">
          <artwork align="center"><![CDATA[+---------------------------------------+ 
|      Protocol Type                    | 
+---------------------------------------+ 
|      Node-IP Address                  | 
+---------------------------------------+ 
|      Local-IP Address                 | 
+---------------------------------------+ 
|      Peer-IP Address                  | 
+---------------------------------------+ 
|      Neighbor State                   | 
+---------------------------------------+ 
|      Timestamp                        | 
+---------------------------------------+ 
Figure 1 Link Neighbor/Protocol Neighbor State Information Format

]]></artwork>
        </figure></t>

      <t>Where:</t>

      <t>Protocol Type: 1: ISIS / 2: OSPF / 3: BGP / 4: LDP / 5: BFD etc.</t>

      <t>Node-IP Address: The IP Address of the monitored node, usually the
      router ID.</t>

      <t>Local-IP Address: Local-IP Address of the Neighbor</t>

      <t>Peer-IP Address: Peer-IP Address of the Neighbor</t>

      <t>Neighbor State: The state of the Neighbor</t>

      <t>Timestamp: The timestamp of the moment of the event</t>

      <t/>
    </section>

    <section title="Acknowledgements">
      <t>The authors would like to thank Robin Li, Zhongjia Wang for their
      contributions to this work.</t>

      <t/>
    </section>

    <section title="Contributors">
      <t>Mach Chen <vspace blankLines="0"/>mach.chen@huawei.com</t>

      <t>Yunan Gu <vspace blankLines="1"/>guyunan@huawei.com</t>

      <t/>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>TBD.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include='reference.RFC.4271'?>

      <?rfc include='reference.RFC.5492'?>

      <?rfc include='reference.RFC.7854'?>
    </references>
  </back>
</rfc>
