summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/scsi/isci/Makefile
blob: 3359e10e0d8f35d3c46ed8bdae7f718a30982c9d (plain)
1
2
3
4
5
6
7
8
obj-$(CONFIG_SCSI_ISCI) += isci.o
isci-objs := init.o phy.o request.o \
	     remote_device.o port.o \
	     host.o task.o probe_roms.o \
	     remote_node_context.o \
	     remote_node_table.o \
	     unsolicited_frame_control.o \
	     port_config.o \
.sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
:
: All rights reserved. This program and the accompanying materials
: are made available under the terms of the Apache License, Version 2.0
: which accompanies this distribution, and is available at
: http://www.apache.org/licenses/LICENSE-2.0
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
From: Michael Polenchuk <mpolenchuk@mirantis.com>
Date: Wed, 28 Feb 2018 17:54:28 +0400
Subject: [PATCH] Set ovs bridges as L3 interfaces

Change-Id: I1e83129cc184cf481bea21d7aa452bf60d9e0499

diff --git a/linux/files/ovs_bridge b/linux/files/ovs_bridge
new file mode 100644
index 0000000..c609e45
--- /dev/null
+++ b/linux/files/ovs_bridge
@@ -0,0 +1,19 @@
+auto {{ bridge_name }}
+allow-ovs {{ bridge_name }}
+iface {{ bridge_name }} inet static
+  ovs_type OVSBridge
+  address {{ bridge.address }}
+  netmask {{ bridge.netmask }}
+  mtu {{ bridge.get('mtu', '1500') }}
+  {%- if bridge.use_interfaces is defined %}
+  ovs_ports {{ bridge.use_interfaces|join(' ') }}
+  {%- endif %}
+  {%- if bridge.datapath_type is defined %}
+  ovs_extra set Bridge ${IFACE} datapath_type={{ bridge.datapath_type }}
+  {%- endif %}
+  {%- if bridge.gateway is defined %}
+  gateway {{ bridge.gateway }}
+  {%- endif %}
+  {%- if bridge.name_servers is defined %}
+  dns-nameservers {{ bridge.name_servers | join(' ') }}
+  {%- endif %}
diff --git a/linux/files/ovs_port b/linux/files/ovs_port
index 222ca8e..efb0307 100644
--- a/linux/files/ovs_port
+++ b/linux/files/ovs_port
@@ -1,6 +1,11 @@
+# With systemd, adding OVS bridges as 'auto' can cause race conditions
+# https://github.com/openvswitch/ovs/blob/master/debian/openvswitch-switch.README.Debian
+# auto {{ port_name }}
-auto {{ port_name }}
 allow-{{ port.bridge }} {{ port_name }}
 iface {{ port_name }} inet {{ port.get('proto', 'manual') }}
+{%- if '.' in port_name %}
+vlan-raw-device {{ port_name.split('.')[0] }}
+{%- endif %}
 ovs_type {{ port.get('ovs_port_type', 'OVSIntPort') }}
 mtu {{ port.get('mtu', '1500') }}
 ovs_bridge {{ port.bridge }}
diff --git a/linux/network/interface.sls b/linux/network/interface.sls
index 180f912..dcb295b 100644
--- a/linux/network/interface.sls
+++ b/linux/network/interface.sls
@@ -91,6 +91,34 @@ add_int_{{ int_name }}_to_ovs_dpdk_bridge_{{ interface_name }}:
 ovs_bridge_{{ interface_name }}:
   openvswitch_bridge.present:
   - name: {{ interface_name }}
+{%- if interface.get('proto', 'manual') == 'static' %}
+  file.managed:
+  - name: /etc/network/interfaces.u/ifcfg-{{ interface_name }}
+  - makedirs: True
+  - source: salt://linux/files/ovs_bridge
+  - defaults:
+      bridge: {{ interface|yaml }}
+      bridge_name: {{ interface_name }}
+  - template: jinja
+
+linux_interfaces_include_{{ interface_name }}:
+  file.prepend:
+  - name: /etc/network/interfaces
+  - text: |
+      source /etc/network/interfaces.d/*
+      # Workaround for Upstream-Bug: https://github.com/saltstack/salt/issues/40262
+      source /etc/network/interfaces.u/*
+
+ovs_bridge_up_{{ interface_name }}:
+  cmd.run:
+  - name: ifup {{ interface_name }}
+  - require:
+    - file: ovs_bridge_{{ interface_name }}
+    - openvswitch_bridge: ovs_bridge_{{ interface_name }}
+    - file: linux_interfaces_final_include
+  - unless:
+    - ip link show {{ interface_name }} | grep -q '\<UP\>'
+{%- endif %}

 {# add linux network interface into OVS bridge #}
 {%- for int_name, int in network.interface.items() %}