Uploaded image for project: 'honeycomb'
  1. honeycomb
  2. HONEYCOMB-3

HC agent/v3PO: need to fix the underlying issue that causes problems when an interface is present in VPP but not in V3PO’s config datastore

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • 16.09
    • None
    • None
    • None

      HC agent/v3PO: need to fix the underlying issue that causes problems when an interface is present in VPP but not in V3PO’s config datastore

      There is a workaround but need a real fix...

      On Feb 29, 2016, at 7:12 AM, Matus Fabian -X (matfabia - PANTHEON TECHNOLOGIES at Cisco) matfabia@cisco.com wrote:

      You need to add interfaces into v3po manually as write Maros before in “Need upstream HC agent tested with latest code” email thread:
      • The problem happens when an interface is present in VPP but not in V3PO’s config datastore
      • To avoid it, you have to manually add that interface into V3PO’s config datastore (how to do it over RESTCONF is outlined below)
      • This can happen because: GUI lists interfaces from operational data of VPP (which are periodically synchronized in V3PO’s operational datastore) and that list is up-to-date and gives you all interfaces from VPP. However when you assign a bridge-domain using GUI, the request goes to config datastore of V3PO under a specific interface (that was read from VPP directly). And since config datastore is not in sync with what’s in VPP, it contains 0 interfaces. Now with ensure parents the request tries to recreate the interface data in config datastore on the fly to help with missing data. However it’s not almighty and cannot fill in all interface leaves and here’s one more problem: interface contains some mandatory fields and thus config datastore rejects the write for new bridge domain while performing validation and nothing goes to VPP.

      Workaround (populating V3PO’s config DS with day0 interface configuration):
      https://www.getpostman.com/collections/dddec04083ed5f527850

      I used it as rest PUT request in firefox restclient plugin, I set request header Name: Content-Type and Value: application/json, for example into url http://10.86.22.50:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/vpp1/yang-ext:mount/ietf-interfaces:interfaces/interface/GigabitEthernet0%2F8%2F0
      {

      "interface": [
      {
      "name": "GigabitEthernet0/8/0",
      "description": "for testing purposes",
      "type": "iana-if-type:ethernetCsmacd",
      "enabled": "true",
      "link-up-down-trap-enable": "enabled",
      "ietf-ip:ipv4": {
      "enabled": "true",
      "mtu": "1500",
      "address": [

      { "ip": "1.2.3.0", "netmask": "255.255.255.0" }

      ]
      },
      "v3po:ethernet":

      { "mtu": "9216" }


      }
      ]

      }

      Matus

            Unassigned Unassigned
            qudang Quyen Dang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: