<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hello,
      <br>
      Thank you for your reply!
      <br>
      We have spent some time looking into the Skydive project to become
      more familiar with its functionalities and  architecture and
      believe that there is a great opportunity for integrating with
      Symnet.
      <br>
      <br>
      Symnet performs static analysis based on data plane configuration
      of network boxes and doesn't rely on packet injection to perform
      verification.
      <br>
      <br>
      As you mentioned, the two tools are complementary and may validate
      the "real" packet behavior through the network - i.e. Skydive's
      inject/capture mechanism - vs that of the "symbolic" one - i.e.
      Symnet outputs -.
      <br>
      <br>
      However, in order to run symbolic analysis against a network
      topology, we also require some extra information:
      <br>
      1) OpenFlow tables per each OVS switch
      <br>
      2) Iptables rules per each namespace
      <br>
      3) Routing tables per each namespace
      <br>
      <br>
      We are thinking to either add these functionalities as agent
      probes directly in Skydive and then have Symnet consume Skydive's
      graph events (from Scala via the WebSocket or REST interfaces) or
      to directly integrate them in our Scala project.
      <br>
      <br>
      Which approach do you think is better suited?
      <br>
      Would you consider integrating the aforementioned configuration
      parameters in the official Skydive project?
      <br>
      <br>
      Regards,
      <br>
      Dragos
      <br>
      <br>
    </p>
    <blockquote type="cite" style="color: #000000;">Date: Mon, 17 Jul
      2017 09:46:16 +0200
      <br>
      From: Sylvain Afchain <a class="moz-txt-link-rfc2396E"
        href="mailto:safchain@redhat.com"><safchain@redhat.com></a>
      <br>
      To: Costin Raiciu <a class="moz-txt-link-rfc2396E"
        href="mailto:costin.raiciu@cs.pub.ro"><costin.raiciu@cs.pub.ro></a>
      <br>
      Cc: Radu Stoenescu <a class="moz-txt-link-rfc2396E"
        href="mailto:radu.stoe@gmail.com"><radu.stoe@gmail.com></a>,
      Matei Popovici
      <br>
          <a class="moz-txt-link-rfc2396E"
        href="mailto:pdmatei@gmail.com"><pdmatei@gmail.com></a>,   
      <a class="moz-txt-link-abbreviated"
        href="mailto:skydive-dev@redhat.com">skydive-dev@redhat.com</a>
      <br>
      Subject: Re: [Skydive-dev] Integrating formal verification with
      Symnet
      <br>
          into    Skydive
      <br>
      Content-Type: text/plain; charset="utf-8"
      <br>
      <br>
      Hi,
      <br>
      <br>
      Thanks for reaching out us.
      <br>
      <br>
      I'm going to define what skydive does in the context of your
      project.
      <br>
      Skydive collects all the events of the monitored topology. It
      listens for
      <br>
      event from netlink, ovsdb, namespaces, docker and uses connectors
      to
      <br>
      external SDN controllers  (Neutron, Opencontrail) to enhance the
      captured
      <br>
      topology. As Skydive is listening the events we keep all the
      modification
      <br>
      of the topology in a data store which allows us to see any
      previous
      <br>
      version. On top of that we can start packet capture and packet
      <br>
      generation/injection. Since there is a mapping between the flows
      and the
      <br>
      topology we can track a packet along its path and see where a
      packet was
      <br>
      dropped. We do support multi-level of encapsulation useful for
      nested
      <br>
      deployment like container over OpenStack meaning that we do
      support packet
      <br>
      tracking between two containers hosted within two VMs.
      <br>
      <br>
      That where I think your project could be useful as we are
      currently working
      <br>
      on a way to write validation rules leveraging topology/packet
      <br>
      capture/packet injection, it seems to me that Symnet provides such
      <br>
      mechanism.
      <br>
      <br>
      Depending on the language used by Symnet (Scala ?) it could be
      integrated
      <br>
      within Skydive or just consuming information gathered. Internally
      the
      <br>
      topology is kept as a graph and external tools can subscribe to it
      or just
      <br>
      use the API (Gremlin language).
      <br>
      <br>
      Regards,
      <br>
      Sylvain
      <br>
      <br>
      _______________________________________________
      <br>
      Skydive-dev mailing list
      <br>
      <a class="moz-txt-link-abbreviated"
        href="mailto:Skydive-dev@redhat.com">Skydive-dev@redhat.com</a>
      <br>
      <a class="moz-txt-link-freetext"
        href="https://www.redhat.com/mailman/listinfo/skydive-dev">https://www.redhat.com/mailman/listinfo/skydive-dev</a>
      <br>
    </blockquote>
  </body>
</html>