{"id":10622,"date":"2016-09-12T15:25:52","date_gmt":"2016-09-12T13:25:52","guid":{"rendered":"https:\/\/blog.zhaw.ch\/icclab\/?p=10622"},"modified":"2016-09-12T16:56:38","modified_gmt":"2016-09-12T14:56:38","slug":"data-model-definion-in-netfloc-and-data-representation-in-netflogi","status":"publish","type":"post","link":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/","title":{"rendered":"SDN model definition in Netfloc and data representation in Netflogi"},"content":{"rendered":"<p>After the latest work on <a href=\"https:\/\/blog.zhaw.ch\/icclab\/orchestrate-your-network-service-with-netfloc-plugin-for-openstack-heat\">Heat support for Netfloc service chaining<\/a>, the SDN team used the summer&#8217;s quiet month of August to update some of the features in <a href=\"https:\/\/github.com\/icclab\/netfloc\">Netfloc<\/a> and <a href=\"https:\/\/blog.zhaw.ch\/icclab\/release-of-netflogi-a-graphical-interface-for-netfloc\">Netflogi<\/a>.<\/p>\n<p>A new extension to the API set is the\u00a0functionality\u00a0to retrieve the current service chains created in Netfloc. This has been made possible with the\u00a0improvement of the Netfloc service <a href=\"https:\/\/tools.ietf.org\/html\/rfc6020\">yang<\/a> definition\u00a0and the persistent data record from Netfloc into the\u00a0MD-SAL repository. Using this APIs the providers of a Netfloc service can now issue RPC requests to the datastore inventory and retrieve the current data and state of the service. This improves the resilience by keeping the network state and the chain aligned and\u00a0consistent in case of\u00a0Netfloc restart.<\/p>\n<p><!--more--><\/p>\n<p>The <a href=\"https:\/\/wiki.opendaylight.org\/view\/OpenDaylight_Controller:MD-SAL\">Model-Driven SAL<\/a> (MD-SAL) of the OpenDaylight controller provides generic support for developers to create applications and plugins using the API of their choice: Java generated APIs for consumers and producers, DOM APIs, REST APIs. The later is based on the <a href=\"https:\/\/datatracker.ietf.org\/doc\/draft-bierman-netconf-restconf\/?include_text=1\">IETF RESTCONF<\/a> draft, an extension to <a href=\"https:\/\/tools.ietf.org\/html\/rfc6241\">NETCONF<\/a>, that includes a mapping specification of YANG models to REST-ful interfaces. The reason for using RESTCONF in OpenDaylight\u00a0is due to YANG being the choice for a\u00a0modeling language\u00a0of the\u00a0MD-SAL.<\/p>\n<p><a href=\"https:\/\/tools.ietf.org\/html\/rfc6020\">YANG<\/a> is an IETF standard for modeling network element configuration. In OpenDaylight, YANG\u00a0describes the resource data and message patterns of the services. Moreover, there is a dedicated project for yang tools development, including a <a href=\"https:\/\/github.com\/YangModels\/yang\/tree\/master\/experimental\/odp\">repository<\/a> with a large set of yang models defined by the OpenDaylight community.\u00a0The following describes the way the MD-SAL and YANG talk to each other:<\/p>\n<ol>\n<li>The providers define an abstraction for their service by specifying the wiring configuration in the yang descriptor file. This file is parsed in the controller to provide the system dependencies and <a href=\"https:\/\/wiki.opendaylight.org\/view\/YANG_Tools:YANG_to_Java_Mapping\">YANG-to-Java<\/a> code mapping. Finally the provider object should be instantiated and the service is ready to be consumed.<\/li>\n<li>The consumers use RESTCONF to provide access to RPC and MD-SAL data stores by invoking POST operations to a RESTCONF URL.<\/li>\n<\/ol>\n<p>The data is organized in tree representation format and each subtree element can be accessed via instance identifier. The data published by the provider&#8217;s services is stored in the\u00a0<em>Operational Data Tree,<\/em>\u00a0wheres the data related to the system&#8217;s state can be found in the\u00a0<em>Configuration Data Tree.\u00a0<\/em>For further info please take a look at the<a href=\"http:\/\/slideplayer.com\/slide\/6257873\/\"> Basic Operations Guide slide deck<\/a>.<\/p>\n<p>The Netfloc&#8217;s List chains API is an RPC call to\u00a0the Operational data store. It returns the information about the Chain Owner and the Connection points of the chained Virtual Network Functions (VNFs). This call and the respective chains data is shown in Figure 1.\u00a0Following the new model definition,\u00a0Delete chain API was also modified to keep the chain data aligned to\u00a0the operational data store.<\/p>\n<p>Netfloc currently supports both, Restonf based APIs &#8211; Figure 1, and Java-from-yang generated APIs &#8211; Figure 2. These can be accessed and invoked using Postman or the OpenDaylight specific apidoc repository:<\/p>\n<pre><code>[Neftloc-URL]\/apidoc\/explorer\/index.html#!\/netfloc(2015-01-05)<\/code><\/pre>\n<p style=\"text-align: center\"><a href=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10629\" src=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest-300x200.png\" alt=\"netfloc-api-chain-list-rest\" width=\"462\" height=\"313\" \/><\/a><\/p>\n<p style=\"text-align: center\">Figure 1: Service Chains List API based on\u00a0RESTCONF RPC<\/p>\n<p style=\"text-align: center\"><a href=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-doc-chain-list-yang.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10630\" src=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-doc-chain-list-yang-300x284.png\" alt=\"netfloc-api-doc-chain-list-yang\" width=\"419\" height=\"399\" \/><\/a><\/p>\n<p style=\"text-align: center\">Figure 2: Service Chains List\u00a0API based on YANG<\/p>\n<p>Further advances are related to the <a href=\"https:\/\/wiki.opendaylight.org\/view\/OpenDaylight_OpenFlow_Plugin:Statistics\">Statistics Management module<\/a> in OpenDaylight using the Lithium version of the OpenFlow plugin. The idea is to provide a detailed information of the Netfloc&#8217;s managed network state.\u00a0RESTCONF\u00a0access to the network topology could be queried using the current set of APIs that the Statistic Management component includes, in order to provide individual and aggregate statistics for: nodes, tables, flows, meters etc. The APIs to access the topology inventory data is the following:<\/p>\n<pre><code>[<\/code><code>Neftloc-URL<\/code><code>]\/restconf\/operational\/opendaylight-inventory:nodes<\/code><\/pre>\n<p>With the objective to improve Netflogi \u2013 the GUI of Netfloc and provide a representation of the SDN topology, we implemented initial views based on: (1) the new APIs for service chain representation and (2) the statistics collection from the statistics management module.<br \/>\nWe enclose here some snapshots of the data currently included. Figure 3 depicts the openflow port mapping and address info.<\/p>\n<p><a href=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/Screen-Shot-2016-09-09-at-17.41.03.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-10625 aligncenter\" src=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/Screen-Shot-2016-09-09-at-17.41.03-300x148.png\" alt=\"Netfloc-node-info\" width=\"482\" height=\"244\" \/><\/a><\/p>\n<p style=\"text-align: center\">Figure 3: Netflogi&#8217;s Port information data for specific Netfloc node<\/p>\n<p style=\"text-align: left\">Figure 4 shows all the flows related to a port, the respective IDs (Broadcast, Network path, Chaining flow, LLDP flow etc.), and the priority info along with the Match Fields and Instructions details.<\/p>\n<p><a href=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/Screen-Shot-2016-09-09-at-17.40.00.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-10626 aligncenter\" src=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/Screen-Shot-2016-09-09-at-17.40.00-300x158.png\" alt=\"Netfloc-flow-info\" width=\"481\" height=\"259\" \/><\/a><\/p>\n<p style=\"text-align: center\">Figure 4: Netflogi&#8217;s Flow details for specific port and its match conditions<\/p>\n<p>The shown data is part of what can be currently retrieved as SDN info.\u00a0The upcoming work will focus on model definitions for more diverse data retrieval and representation in order to support\u00a0a consumer-generated monitoring service in Netfloc. Moreover Netfloc will continue improving the model definitions in order to provide more resilient and scalable services. Of course, we will also work on\u00a0the user experience in Netflogi and\u00a0extend the existing set of\u00a0features.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"pt-sm\">Schlagw\u00f6rter: <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/md-sal\/\">md-sal<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/netfloc\/\">netfloc<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/netflogi\/\">netflogi<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/opendaylight\/\">OpenDaylight<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/restconf\/\">restconf<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/sdn\/\">SDN<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/service-chain\/\">service chain<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/software-defined-networking\/\">software-defined networking<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/yang\/\">yang<\/a><br><\/div>","protected":false},"excerpt":{"rendered":"<p>After the latest work on Heat support for Netfloc service chaining, the SDN team used the summer&#8217;s quiet month of August to update some of the features in Netfloc and Netflogi. A new extension to the API set is the\u00a0functionality\u00a0to retrieve the current service chains created in Netfloc. This has been made possible with the\u00a0improvement [&hellip;]<\/p>\n","protected":false},"author":89,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[807,784,785,465,810,293,809,437,808],"features":[],"class_list":["post-10622","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-md-sal","tag-netfloc","tag-netflogi","tag-opendaylight","tag-restconf","tag-sdn","tag-service-chain","tag-software-defined-networking","tag-yang"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SDN model definition in Netfloc and data representation in Netflogi - Service Engineering (ICCLab &amp; SPLab)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SDN model definition in Netfloc and data representation in Netflogi\" \/>\n<meta property=\"og:description\" content=\"After the latest work on Heat support for Netfloc service chaining, the SDN team used the summer&#8217;s quiet month of August to update some of the features in Netfloc and Netflogi. A new extension to the API set is the\u00a0functionality\u00a0to retrieve the current service chains created in Netfloc. This has been made possible with the\u00a0improvement [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Engineering (ICCLab &amp; SPLab)\" \/>\n<meta property=\"article:published_time\" content=\"2016-09-12T13:25:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-09-12T14:56:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest-300x200.png\" \/>\n<meta name=\"author\" content=\"irenatr\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"irenatr\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/\"},\"author\":{\"name\":\"irenatr\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/da21ae5e2a240a1445465cfb1d0f1f2c\"},\"headline\":\"SDN model definition in Netfloc and data representation in Netflogi\",\"datePublished\":\"2016-09-12T13:25:52+00:00\",\"dateModified\":\"2016-09-12T14:56:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/\"},\"wordCount\":791,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest-300x200.png\",\"keywords\":[\"md-sal\",\"netfloc\",\"netflogi\",\"OpenDaylight\",\"restconf\",\"SDN\",\"service chain\",\"software-defined networking\",\"yang\"],\"articleSection\":[\"*.*\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/\",\"name\":\"SDN model definition in Netfloc and data representation in Netflogi - Service Engineering (ICCLab &amp; SPLab)\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest-300x200.png\",\"datePublished\":\"2016-09-12T13:25:52+00:00\",\"dateModified\":\"2016-09-12T14:56:38+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/da21ae5e2a240a1445465cfb1d0f1f2c\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#primaryimage\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest.png\",\"contentUrl\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest.png\",\"width\":1990,\"height\":1327},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zhaw.ch\/icclab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SDN model definition in Netfloc and data representation in Netflogi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/\",\"name\":\"Service Engineering (ICCLab &amp; SPLab)\",\"description\":\"A Blog of the ZHAW Zurich University of Applied Sciences\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/da21ae5e2a240a1445465cfb1d0f1f2c\",\"name\":\"irenatr\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/e4eade01f525f84b6d6542ababe6db35882b518534e07d5e95434edbe327bed0?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e4eade01f525f84b6d6542ababe6db35882b518534e07d5e95434edbe327bed0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e4eade01f525f84b6d6542ababe6db35882b518534e07d5e95434edbe327bed0?s=96&d=mm&r=g\",\"caption\":\"irenatr\"},\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/author\/irenatr\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SDN model definition in Netfloc and data representation in Netflogi - Service Engineering (ICCLab &amp; SPLab)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/","og_locale":"en_US","og_type":"article","og_title":"SDN model definition in Netfloc and data representation in Netflogi","og_description":"After the latest work on Heat support for Netfloc service chaining, the SDN team used the summer&#8217;s quiet month of August to update some of the features in Netfloc and Netflogi. A new extension to the API set is the\u00a0functionality\u00a0to retrieve the current service chains created in Netfloc. This has been made possible with the\u00a0improvement [&hellip;]","og_url":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/","og_site_name":"Service Engineering (ICCLab &amp; SPLab)","article_published_time":"2016-09-12T13:25:52+00:00","article_modified_time":"2016-09-12T14:56:38+00:00","og_image":[{"url":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest-300x200.png","type":"","width":"","height":""}],"author":"irenatr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"irenatr","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#article","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/"},"author":{"name":"irenatr","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/da21ae5e2a240a1445465cfb1d0f1f2c"},"headline":"SDN model definition in Netfloc and data representation in Netflogi","datePublished":"2016-09-12T13:25:52+00:00","dateModified":"2016-09-12T14:56:38+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/"},"wordCount":791,"commentCount":0,"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest-300x200.png","keywords":["md-sal","netfloc","netflogi","OpenDaylight","restconf","SDN","service chain","software-defined networking","yang"],"articleSection":["*.*"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/","url":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/","name":"SDN model definition in Netfloc and data representation in Netflogi - Service Engineering (ICCLab &amp; SPLab)","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#primaryimage"},"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest-300x200.png","datePublished":"2016-09-12T13:25:52+00:00","dateModified":"2016-09-12T14:56:38+00:00","author":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/da21ae5e2a240a1445465cfb1d0f1f2c"},"breadcrumb":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#primaryimage","url":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest.png","contentUrl":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/09\/netfloc-api-chain-list-rest.png","width":1990,"height":1327},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zhaw.ch\/icclab\/data-model-definion-in-netfloc-and-data-representation-in-netflogi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zhaw.ch\/icclab\/"},{"@type":"ListItem","position":2,"name":"SDN model definition in Netfloc and data representation in Netflogi"}]},{"@type":"WebSite","@id":"https:\/\/blog.zhaw.ch\/icclab\/#website","url":"https:\/\/blog.zhaw.ch\/icclab\/","name":"Service Engineering (ICCLab &amp; SPLab)","description":"A Blog of the ZHAW Zurich University of Applied Sciences","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/da21ae5e2a240a1445465cfb1d0f1f2c","name":"irenatr","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/e4eade01f525f84b6d6542ababe6db35882b518534e07d5e95434edbe327bed0?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e4eade01f525f84b6d6542ababe6db35882b518534e07d5e95434edbe327bed0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e4eade01f525f84b6d6542ababe6db35882b518534e07d5e95434edbe327bed0?s=96&d=mm&r=g","caption":"irenatr"},"url":"https:\/\/blog.zhaw.ch\/icclab\/author\/irenatr\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/10622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/users\/89"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/comments?post=10622"}],"version-history":[{"count":13,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/10622\/revisions"}],"predecessor-version":[{"id":10640,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/10622\/revisions\/10640"}],"wp:attachment":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/media?parent=10622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/categories?post=10622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/tags?post=10622"},{"taxonomy":"features","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/features?post=10622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}