Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modeling openflow resources and services #3

Open
xi-yang opened this issue Aug 13, 2015 · 0 comments
Open

Modeling openflow resources and services #3

xi-yang opened this issue Aug 13, 2015 · 0 comments

Comments

@xi-yang
Copy link
Collaborator

xi-yang commented Aug 13, 2015

Model OpenFlow Device (nml:Node) or Network (nml:Topology)

A clean-slate device or network with openflow capability use nml:hasService to point to a OpenflowService which is of mrs:OpenflowService type. This instance will include the ports / bidirectionalPorts that operate in openflow mode.

OpenflowService provides one or more FlowTable instances.

FlowTable provides Flows to indicate dynamically instantiated services. In clean-state status, FlowTable provides none.

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001>
a nml:Node , owl:NamedIndividual ;
nml:hasBidirectionalPort <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:port-s1-eth2> , <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:port-s1-eth1> ; nml:hasService <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service>.

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service>
a mrs:OpenflowService , owl:NamedIndividual ;
nml:hasBidirectionalPort <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:port-s1-eth2> , <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:port-s1-eth1> ;
mrs:providesFlowTable <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1> .

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1>
a mrs:FlowTable , owl:NamedIndividual .

Model Dynamic Flows

When a Flow is instantiated in a FlowTable. It should be modeled as follows.

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1>
a mrs:FlowTable , owl:NamedIndividual ;
mrs:providesFlow
<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345> ,
<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-67890> .

Each flow is modeled with match rules and action rules, both through FlowRule resources.

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345>
a mrs:Flow, owl:NamedIndividual ;
mrs:flowMatch <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-0> ;
mrs:flowMatch <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-1> ;
mrs:flowMatch <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-2> ;
mrs:flowMatch <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-3> ;
mrs:flowMatch <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-4> ;
mrs:flowAction <urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-action-0>

Each match rule is a type-value pair to match against one flow label. There are normally multiple rules.

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-0>
a mrs:FlowRule, owl:NamedIndividual ;
mrs:type "IN_PORT" ;
mrs:value "1" .

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-1>
a mrs:FlowRule, owl:NamedIndividual ;
mrs:type "ETH_SRC_MAC" ;
mrs:value "00:00:00:00:00:13" .

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-2>
a mrs:FlowRule, owl:NamedIndividual ;
mrs:type "ETH_DST_MAC" ;
mrs:value "00:00:00:00:00:01" .

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-3>
a mrs:FlowRule, owl:NamedIndividual ;
mrs:type "ETH_SRC_VLAN" ;
mrs:value "100" .

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-match-4>
a mrs:FlowRule, owl:NamedIndividual ;
mrs:type "ETH_DST_VLAN" ;
mrs:value "101" .

Each action rule is also a type-value pair to indicate a treatment action. There could be one or more action rules.

<urn:ogf:network:onos.maxgigapop.net:network:of:0000000000000001:openflow-service:flow-table-1:flow-12345:rule-action-0>
a mrs:FlowRule, owl:NamedIndividual ;
mrs:type "OUT_PORT" ;
mrs:value "2" .

References

Schema / Ontology definition is here:
https://github.com/MAX-UMD/nml-mrs-model/blob/master/schema/rdf-owl/nml-mrs-ext-v2.owl

The modified MRS Java base with Openflow resource and property types is here:
https://github.com/MAX-UMD/VersaStack/blob/CoWork-ONOS-xyang/VersaStack-ejb/src/main/java/net/maxgigapop/mrs/common/Mrs.java

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant