Add NETCONF notification for ONU activation and Kafka client to receive events, update dependencies

Change-Id: I5f768fa8077ef7c64e00a534744ca47492344935
diff --git a/build/yang-files/notification/bbf-xpon-types.yang b/build/yang-files/notification/bbf-xpon-types.yang
new file mode 100644
index 0000000..40126f9
--- /dev/null
+++ b/build/yang-files/notification/bbf-xpon-types.yang
@@ -0,0 +1,430 @@
+module bbf-xpon-types {

+  yang-version 1.1;

+  namespace "urn:bbf:yang:bbf-xpon-types";

+  prefix bbf-xpon-types;

+

+  import ietf-inet-types {

+    prefix inet;

+  }

+

+  organization

+    "Broadband Forum <https://www.broadband-forum.org>

+     Fiber Access Networks Work Area";

+  contact

+    "Comments or questions about this Broadband Forum YANG module

+     should be directed to <mailto:help@broadband-forum.org>.

+

+     Editor:      Joey Boyd, ADTRAN

+

+     Editor:      Samuel Chen, Broadcom

+

+     Editor:      Robert Peschi, Nokia

+

+     WA Director: Marta Seda, Calix

+

+     WA Director: Lin Wei, Huawei";

+  description

+    "This module contains a collection of YANG definitions which

+     defines common types used in the xPON YANG models.

+

+     Copyright (c) 2018, Broadband Forum

+

+     Redistribution and use in source and binary forms, with or

+     without modification, are permitted provided that the following

+     conditions are met:

+

+     1. Redistributions of source code must retain the above copyright

+        notice, this list of conditions and the following disclaimer.

+

+     2. Redistributions in binary form must reproduce the above

+        copyright notice, this list of conditions and the following

+        disclaimer in the documentation and/or other materials

+        provided with the distribution.

+

+     3. Neither the name of the copyright holder nor the names of its

+        contributors may be used to endorse or promote products

+        derived from this software without specific prior written

+        permission.

+

+     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND

+     CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,

+     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

+     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

+     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR

+     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

+     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

+     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

+     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER

+     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,

+     STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)

+     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

+     ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+

+     The above license is used as a license under copyright only.

+     Please reference the Forum IPR Policy for patent licensing terms

+     <https://www.broadband-forum.org/ipr-policy>.

+

+     Any moral rights which are necessary to exercise under the above

+     license grant are also deemed granted under this license.

+

+     This version of this YANG module is part of TR-385; see

+     the TR itself for full legal notices.";

+

+  revision 2019-02-25 {

+    description

+      "Initial revision.

+       * Approval Date:    2019-02-25.

+       * Publication Date: 2019-02-25.";

+    reference

+      "TR-385: ITU-T PON YANG Modules

+               <https://www.broadband-forum.org/technical/download/

+                        TR-385.pdf>";

+  }

+

+  identity type-b-state-base {

+    description

+      "This identity is used as the base for possible

+       channel-terminations states for type B protection.";

+  }

+

+  identity active {

+    base type-b-state-base;

+    description

+      "This identity is used to denote active state in type B

+       protection.";

+  }

+

+  identity standby {

+    base type-b-state-base;

+    description

+      "This identity is used to denote standby state in type B

+       protection.";

+  }

+

+  identity not-part-of-type-b {

+    base type-b-state-base;

+    description

+      "This identity is used to denote that the object is not part

+       of a type B protection scheme. This is for instance the

+       case when a channel-termination does not (yet) refer

+       to a channel-pair.";

+  }

+

+  identity location-base {

+    description

+      "This identity is used as the possible locations of an

+       object.";

+  }

+

+  identity inside-olt {

+    base location-base;

+    description

+      "This identity is used to denote a location physically inside

+       the OLT chassis.";

+  }

+

+  identity outside-olt {

+    base location-base;

+    description

+      "This identity is used to denote a location physically outside

+       the OLT chassis.";

+  }

+

+  identity channel-pair-type-base {

+    description

+      "This identity is used to qualify the possible types of a

+       channel-pair.";

+  }

+

+  identity ngpon2-twdm {

+    base channel-pair-type-base;

+    description

+      "This identity is used to denote a TWDM NG-PON2 channel-pair,

+       per ITU-T G.989.3.";

+  }

+

+  identity ngpon2-ptp {

+    base channel-pair-type-base;

+    description

+      "This identity is used to denote a PtP NG-PON2 channel-pair, per

+       ITU-T G.989.3.";

+  }

+

+  identity xgs {

+    base channel-pair-type-base;

+    description

+      "This identity is used to denote an XGS-PON channel-pair,

+       per ITU-T G.9807.1.";

+  }

+

+  identity xgpon {

+    base channel-pair-type-base;

+    description

+      "This identity is used to denote an XG-PON channel-pair,

+       per ITU-T G.987.3.";

+  }

+

+  identity gpon {

+    base channel-pair-type-base;

+    description

+      "This identity is used to denote an G-PON channel-pair,

+       per ITU-T G.984.3.";

+  }

+

+  identity channel-pair-line-rate-profile-base {

+    description

+      "This identity is used to define the possible combinations

+       of downstream and upstream line-rates for an NG-PON2

+       channel-pair.";

+  }

+

+  identity unplanned-cp-line-rate {

+    base channel-pair-line-rate-profile-base;

+    description

+      "This identity is used to denote an NG-PON2 channel-pair with

+       yet undefined downstream and upstream line rates.";

+  }

+

+  identity down-10-up-10 {

+    base channel-pair-line-rate-profile-base;

+    description

+      "This identity is used to denote an NG-PON2 channel-pair with

+       downstream 10Gbps and upstream 10Gbps line rates.";

+  }

+

+  identity down-10-up-2.5 {

+    base channel-pair-line-rate-profile-base;

+    description

+      "This identity is used to denote an NG-PON2 channel-pair with

+       downstream 10Gbps and upstream 2.5Gbps line rates.";

+  }

+

+  identity down-2.5-up-2.5 {

+    base channel-pair-line-rate-profile-base;

+    description

+      "This identity is used to denote an NG-PON2 channel-pair with

+       downstream 2.5Gbps and upstream 2.5Gbps line rates.";

+  }

+

+  identity tcp-connection-state-base {

+    description

+      "This identity is used to denote the possible states of

+       a TCP connection.";

+  }

+

+  identity established {

+    base tcp-connection-state-base;

+    description

+      "This identity is used to reflect that the TCP connection is

+       established.";

+  }

+

+  identity not-established {

+    base tcp-connection-state-base;

+    description

+      "This identity is used to reflect that the TCP connection is

+       not established.";

+  }

+

+  identity unknown {

+    base tcp-connection-state-base;

+    description

+      "This identity is used to reflect that the TCP connection state

+       is not known.";

+  }

+

+  identity action-request-status {

+    description

+      "This identity is used to denote the status following the

+       reception of a YANG action.";

+  }

+

+  identity request-being-processed {

+    base action-request-status;

+    description

+      "This identity is used to denote that the OLT has received

+       the action request and is handling it.";

+  }

+

+  identity request-rejected {

+    base action-request-status;

+    description

+      "This identity is used to denote that the OLT has rejected

+       the action request and will not perform anything further

+       about it.";

+  }

+

+  typedef string-hex14 {

+    type string {

+      pattern '[a-fA-F0-9]{14}';

+    }

+    description

+      "A string representing 7 hexadecimal octets expressed in

+       ASCII.";

+  }

+

+  typedef pon-id-display-type {

+    type union {

+      type uint32;

+      type string-hex14;

+    }

+    description

+      "A type meant for the different formats of the PON-ID for the

+       various channel-pair types. The 'unint' is meant for NG-PON2,

+       XGS-PON and XG-PON and the 'string7only' is meant for G-PON.";

+  }

+

+  typedef composite-channel-id-type {

+    type union {

+      type uint8 {

+        range "0..7";

+      }

+      type enumeration {

+        enum "xgs" {

+          description

+            "To be used in case of XGS-PON, rather than 0.";

+        }

+      }

+    }

+    description

+      "A composite type strictly meant for leaves reflecting the

+       already allocated downstream or upstream channel-id on a

+       channel-group.

+       Such leaves are used to prevent conflicts when allocating

+       a channel-pair to a channel-group. For NG-PON2, the applicable

+       values are in [0..7], for XGS-PON a dedicated value 'xgs'

+       is used rather than '0' to prevent ambiguity between this and

+       the valid value '0' for NG-PON2.";

+  }

+

+  typedef composite-downstream-wavelength-type {

+    type union {

+      type uint32 {

+        range "0 | 156000..161000";

+      }

+      type enumeration {

+        enum "xgs" {

+          description

+            "To be used in case of XGS-PON.";

+        }

+        enum "xgpon" {

+          description

+            "To be used in case of XG-PON.";

+        }

+        enum "gpon" {

+          description

+            "To be used in case of G-PON.";

+        }

+      }

+    }

+    description

+      "A composite type strictly meant for leaves reflecting the

+       already allocated downstream or upstream channel-id on a

+       channel-group.

+       Such leaves are used to prevent conflicts when allocating a

+       channel-pair to a channel-group. For NG-PON2, the applicable

+       values are in [0..8], for XGS-PON a dedicated value 'xgs'

+       is applicable rather than value '0': this is not to a priori

+       forbid in yang model the coexistence of XGS-PON with NG-PON2

+       using channel-id=0.";

+  }

+

+  typedef auth-method-type {

+    type enumeration {

+      enum "serial-number" {

+        description

+          "Authentication based on ONU serial number.";

+        reference

+          "ITU-T G.984.3 clause VI.1";

+      }

+      enum "loid" {

+        description

+          "Authentication based on the Logical ONU ID (LOID).";

+        reference

+          "ITU-T G.988 clause 9.1.1";

+      }

+      enum "registration-id" {

+        description

+          "Authentication based on ONU registration ID.";

+        reference

+          "ITU-T G.984.3 clause VI.2";

+      }

+      enum "omci" {

+        description

+          "Authentication by use of the enhanced security control

+           managed entity (ME) over OMCI.";

+        reference

+          "ITU-T G.987.3 Annex C";

+      }

+      enum "dot1x" {

+        description

+          "Authentication according to IEEE 802.1x.";

+        reference

+          "ITU-T G.987.3 Annex D";

+      }

+    }

+    description

+      "Method for authenticating an ONU.";

+  }

+

+  typedef raman-mitigation-type {

+    type enumeration {

+      enum "raman-none" {

+        description

+          "No Raman mitigation is performed.";

+      }

+      enum "raman-8b10b" {

+        description

+          "For Raman mitigation, the 8B10B sublayer is introduced

+           between the downstream NG-PON2 physical interface (PHY)

+           adaptation interface and the optical interface.";

+        reference

+          "ITU-T G.989.2 clause IX.1";

+      }

+      enum "raman-miller" {

+        description

+          "For Raman mitigation, Miller code is used.";

+        reference

+          "ITU-T G.989.2 clause IX.2";

+      }

+    }

+    description

+      "NG-PON2 Raman mitigation coding schemes when using RF video

+       overlay.";

+    reference

+      "ITU-T G.989.2 Appendix IX";

+  }

+

+  typedef ip-address-or-unresolved {

+    type union {

+      type inet:ip-address;

+      type enumeration {

+        enum "unresolved" {

+          description

+            "To be used when the URL cannot be resolved into an

+             IP address.";

+        }

+      }

+    }

+    description

+      "A type meant for a leaf which is either an IP address or

+       reflects that no IP address is available.";

+  }

+

+  typedef onu-id {

+    type uint32 {

+      range "0..1020";

+    }

+    description

+      "A type meant for ONU-IDs.";

+  }

+

+  typedef onu-serial-number {

+    type string {

+      pattern '[a-zA-Z]{4}[0-9a-fA-F]{8}';

+    }

+    description

+      "A type meant for the serial number of an ONU.";

+  }

+

+}