on data to the vendor-specific device model. Switch-a case statement that allows decisions in the DG to be handled by different logic depending on either service or network data model variable. SendMessage-to reply to the event using the service model defined output (or error). Test-to execute a command and/or test against the network. This is similar to the config- ure function but is not a permanent state change. A test node could be used after the call to a configure node to test that a configuration succeeded. UserDefined Node-an important attribute is to allow service and network designers to create new nodes. This node allows the designer to define a new node as a Java class and to pass in the attributes in advance of the engine having optimized implementation of the node. Over time, UserDefined Nodes will be pulled into the SLI Engine for efficiency <service-logic module="vpn" rpc="attach-site"> <block atomic="false"> <allocate type="route-target-any" saveAs="$resource-route-target-any" 1> <allocate type="route-target-hub" saveAs="$resource-route-target-hub" 1> <allocate type="route-target-spoke" aveAs="$resource-route-target-spoke" 1> <allocate type="vrf-id" saveAs="$resource-vrf-id" 1> Building the Network of the Future <allocate type="route-distinguisher" saveAs="$resource-route-distinguisher" <allocate type="import-route-target" site-type="$site-type" aveAs="$resource-import-route-target" /> <allocate type="export-route-target" site-type="$site-type" saveAs="$resource-export-route-target" 1> </block> <block atomic="true"> <configure adaptor="PE" deviceid="$reserve-equipment-clli" />; </block> </service-logic module="vpn" rpc="attach-site"> Creating DGs directly in xml is tedious and error prone. A graphical tool called the DGBuilder, based on Node-RED [3], has been built SO that the DGs can be created by a drag drop graphical environment that permits fast creation and editing of the DGs. Actions to validate, upload, and download the DGs in either the graphical or xml format have been developed to permi