rubybvc 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/controller/controller.rb +445 -0
- data/lib/controller/netconf_node.rb +55 -0
- data/lib/controller/node.rb +41 -0
- data/lib/controller/openflow_node.rb +33 -0
- data/lib/netconfdev/vrouter/dataplane_firewall.rb +53 -0
- data/lib/netconfdev/vrouter/firewall.rb +44 -0
- data/lib/netconfdev/vrouter/rule.rb +53 -0
- data/lib/netconfdev/vrouter/rules.rb +53 -0
- data/lib/netconfdev/vrouter/vrouter5600.rb +242 -0
- data/lib/openflowdev/action_output.rb +71 -0
- data/lib/openflowdev/actions/action.rb +39 -0
- data/lib/openflowdev/actions/actions.rb +63 -0
- data/lib/openflowdev/actions/copy_ttl_inwards_action.rb +39 -0
- data/lib/openflowdev/actions/copy_ttl_outwards_action.rb +39 -0
- data/lib/openflowdev/actions/dec_mpls_ttl_action.rb +39 -0
- data/lib/openflowdev/actions/dec_nw_ttl_action.rb +39 -0
- data/lib/openflowdev/actions/drop_action.rb +37 -0
- data/lib/openflowdev/actions/flood_action.rb +39 -0
- data/lib/openflowdev/actions/flood_all_action.rb +39 -0
- data/lib/openflowdev/actions/group_action.rb +44 -0
- data/lib/openflowdev/actions/hw_path_action.rb +39 -0
- data/lib/openflowdev/actions/loopback_action.rb +39 -0
- data/lib/openflowdev/actions/output_action.rb +43 -0
- data/lib/openflowdev/actions/pop_mpls_header_action.rb +41 -0
- data/lib/openflowdev/actions/pop_pbb_header_action.rb +39 -0
- data/lib/openflowdev/actions/pop_vlan_header_action.rb +39 -0
- data/lib/openflowdev/actions/push_mpls_header_action.rb +41 -0
- data/lib/openflowdev/actions/push_pbb_header_action.rb +40 -0
- data/lib/openflowdev/actions/push_vlan_header_action.rb +46 -0
- data/lib/openflowdev/actions/set_dl_dst_action.rb +41 -0
- data/lib/openflowdev/actions/set_dl_src_action.rb +41 -0
- data/lib/openflowdev/actions/set_field_action.rb +43 -0
- data/lib/openflowdev/actions/set_mpls_ttl_action.rb +41 -0
- data/lib/openflowdev/actions/set_nw_dst_action.rb +41 -0
- data/lib/openflowdev/actions/set_nw_src_action.rb +41 -0
- data/lib/openflowdev/actions/set_nw_ttl_action.rb +41 -0
- data/lib/openflowdev/actions/set_queue_action.rb +44 -0
- data/lib/openflowdev/actions/set_tp_dst_action.rb +41 -0
- data/lib/openflowdev/actions/set_tp_src_action.rb +41 -0
- data/lib/openflowdev/actions/set_vlan_cfi_action.rb +41 -0
- data/lib/openflowdev/actions/set_vlan_id_action.rb +41 -0
- data/lib/openflowdev/actions/set_vlan_pcp_action.rb +41 -0
- data/lib/openflowdev/actions/strip_vlan_action.rb +35 -0
- data/lib/openflowdev/actions/sw_path_action.rb +39 -0
- data/lib/openflowdev/flow_entry.rb +91 -0
- data/lib/openflowdev/instruction.rb +53 -0
- data/lib/openflowdev/match.rb +121 -0
- data/lib/openflowdev/of_switch.rb +374 -0
- data/lib/rubybvc.rb +52 -0
- data/lib/utils/hash_with_compact.rb +46 -0
- data/lib/utils/netconf_response.rb +67 -0
- data/lib/utils/netconf_response_status.rb +41 -0
- data/lib/utils/rest_agent.rb +103 -0
- data/lib/utils/utilities.rb +51 -0
- metadata +111 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetFieldAction < Action
|
32
|
+
def initialize(order: 0, vlan_id: nil, mpls_label: nil)
|
33
|
+
super(order: order)
|
34
|
+
@vlan_id = vlan_id
|
35
|
+
@mpls_label = mpls_label
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => @order, 'set-field' => {'vlan-match' => {'vlan-id' =>
|
40
|
+
{'vlan-id' => @vlan_id, 'vlan-id-present' => !@vlan_id.nil?}},
|
41
|
+
'protocol-match-fields' => {'mpls-label' => @mpls_label}}}
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetMplsTTLAction < Action
|
32
|
+
def initialize(order: 0, mpls_ttl: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "MPLS TTL (mpls_ttl) required" unless mpls_ttl
|
35
|
+
@mpls_ttl = mpls_ttl
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => order, 'set-mpls-ttl-action' => {'mpls-ttl' => @mpls_ttl}}
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetNwDstAction < Action
|
32
|
+
def initialize(order: nil, ip_addr: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "IP Address (ip_addr) required" unless ip_addr
|
35
|
+
@ip = ip_addr
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => @order, 'set-nw-dst-action' => {:address => @ip}}
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetNwSrcAction < Action
|
32
|
+
def initialize(order: nil, ip_addr: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "IP Address (ip_addr) required" unless ip_addr
|
35
|
+
@ip = ip_addr
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => @order, 'set-nw-src-action' => {:address => @ip}}
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetNwTTLAction < Action
|
32
|
+
def initialize(order: 0, ip_ttl: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "IP TTL (ip_ttl) required" unless ip_ttl
|
35
|
+
@ip_ttl = ip_ttl
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => @order, 'set-nw-ttl-action' => {'nw-ttl' => @ip_ttl}}
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetQueueAction < Action
|
32
|
+
def initialize(order: nil, queue: nil, queue_id: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "Queue (queue) required" unless queue
|
35
|
+
raise ArgumentError, "Queue ID (queue_id) required" unless queue_id
|
36
|
+
@queue = queue
|
37
|
+
@queue_id = queue
|
38
|
+
end
|
39
|
+
|
40
|
+
def to_hash
|
41
|
+
{:order => @order, 'queue-action' => {:queue => @queue,
|
42
|
+
'queue-id' => @queue_id}}
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetTpDstAction < Action
|
32
|
+
def initialize(order: nil, port: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "Port (port) required" unless port
|
35
|
+
@port = port
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => order, 'set-tp-dst-action' => {:port => @port}}
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetTpSrcAction < Action
|
32
|
+
def initialize(order: nil, port: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "Port (port) required" unless port
|
35
|
+
@port = port
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => order, 'set-tp-src-action' => {:port => @port}}
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetVlanCfiAction < Action
|
32
|
+
def initialize(order: nil, vlan_cfi: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "VLAN CFI (vlan_cfi) required" unless vlan_cfi
|
35
|
+
@vlan_cfi = vlan_cfi
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => @order, 'set-vlan-cfi-action' => {'vlan-cfi' => @vlan_cfi}}
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetVlanIdAction < Action
|
32
|
+
def initialize(order: nil, vlan_id: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "VLAN ID (vlan_id) required" unless vlan_id
|
35
|
+
@vlan_id = vlan_id
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => @order, 'set-vlan-id-action' => {'vlan-id' => @vlan_id}}
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SetVlanPCPAction < Action
|
32
|
+
def initialize(order: nil, vlan_pcp: nil)
|
33
|
+
super(order: order)
|
34
|
+
raise ArgumentError, "VLAN PCP (vlan_pcp) required" unless vlan_pcp
|
35
|
+
@vlan_pcp = vlan_pcp
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_hash
|
39
|
+
{:order => @order, 'set-vlan-pcp-action' => {'vlan-pcp' => @vlan_pcp}}
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class StripVlanAction < Action
|
32
|
+
def to_hash
|
33
|
+
{:order => @order, 'strip-vlan-action' => {}}
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class SwPathAction < Action
|
32
|
+
def initialize(order: 0)
|
33
|
+
super(order: order)
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_hash
|
37
|
+
{:order => @order, 'sw-path-action' => {}}
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC
|
2
|
+
#
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
6
|
+
# are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
17
|
+
# specific prior written permission.
|
18
|
+
#
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
29
|
+
# THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
class FlowEntry
|
32
|
+
require 'openflowdev/instruction'
|
33
|
+
require 'openflowdev/match'
|
34
|
+
|
35
|
+
attr_reader :table_id, :id, :priority, :idle_timeout, :hard_timeout, :strict,
|
36
|
+
:install_hw, :barrier, :cookie, :cookie_mask, :name, :instructions, :match,
|
37
|
+
:out_port, :out_group, :flags, :buffer_id
|
38
|
+
|
39
|
+
def initialize(flow_table_id: 0, flow_id: nil, flow_priority: nil, name: nil,
|
40
|
+
idle_timeout: 0, hard_timeout: 0, strict: false, install_hw: false,
|
41
|
+
barrier: false, cookie: nil, cookie_mask: nil, out_port: nil,
|
42
|
+
out_group: nil, flags: nil, buffer_id: nil)
|
43
|
+
raise ArgumentError, "Flow ID (flow_id) required" unless flow_id
|
44
|
+
raise ArgumentError, "Flow Priority (flow_priority) required" unless flow_priority
|
45
|
+
|
46
|
+
@table_id = flow_table_id
|
47
|
+
@id = flow_id
|
48
|
+
@name = name
|
49
|
+
@priority = flow_priority
|
50
|
+
@idle_timeout = idle_timeout
|
51
|
+
@hard_timeout = hard_timeout
|
52
|
+
@strict = strict
|
53
|
+
@install_hw = install_hw
|
54
|
+
@barrier = barrier
|
55
|
+
@cookie = cookie
|
56
|
+
@cookie_mask = cookie_mask
|
57
|
+
@instructions = []
|
58
|
+
@out_port = out_port
|
59
|
+
@out_group = out_group
|
60
|
+
@flags = flags
|
61
|
+
@buffer_id = buffer_id
|
62
|
+
end
|
63
|
+
|
64
|
+
def add_instruction(instruction)
|
65
|
+
raise ArgumentError, "Instruction must be of type 'Instruction'" unless instruction.is_a?(Instruction)
|
66
|
+
@instructions << instruction
|
67
|
+
end
|
68
|
+
|
69
|
+
def add_match(match)
|
70
|
+
raise ArgumentError, "Match must be of type 'Match'" unless match.is_a?(Match)
|
71
|
+
@match = match
|
72
|
+
end
|
73
|
+
|
74
|
+
def to_hash
|
75
|
+
instructions_hash = []
|
76
|
+
@instructions.each do |instruction|
|
77
|
+
instructions_hash << instruction.to_hash
|
78
|
+
end
|
79
|
+
|
80
|
+
hash = {'flow-node-inventory:flow' => {:barrier => @barrier,
|
81
|
+
'hard-timeout' => @hard_timeout, :id => @id,
|
82
|
+
'idle-timeout' => @idle_timeout, 'installHw' => @install_hw,
|
83
|
+
'out-port' => @out_port, 'out-group' => @out_group, :flags => @flags,
|
84
|
+
'buffer-id' => @buffer_id, :match => @match.to_hash, :priority => @priority,
|
85
|
+
:strict => @strict, :table_id => @table_id, :cookie => @cookie,
|
86
|
+
:cookie_mask => @cookie_mask, 'flow-name' => @name,
|
87
|
+
:instructions => {:instruction => instructions_hash}}}
|
88
|
+
hash = hash.compact
|
89
|
+
hash
|
90
|
+
end
|
91
|
+
end
|