Write out NM_CONTROLLED=no for NICs used for FCoE, note that unlike with iSCSI we do not blindly write out NM_CONTROLLED=no for all NICs, but just for the NIC which is used for FCoE.
The iSCSI behaviour is undesirable, but the whole writing of NM_CONTROLLED=no for iSCSI will go away as soon as NetworkManager is fixed to not down devices when it takes over control, which should be fixed soon. --- network.py | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/network.py b/network.py index e3ce2c1..b4a8c89 100644 --- a/network.py +++ b/network.py @@ -587,8 +587,9 @@ class Network: # FIXME: use device.host_address to only add "NM_CONTROLLED=no" # for interfaces actually used enroute to the device for d in anaconda.id.storage.devices: - if rootdev.dependsOn(d) and isinstance(d, - storage.devices.NetworkStorageDevice): + if rootdev.dependsOn(d) and \ + isinstance(d, storage.devices.NetworkStorageDevice) and\ + (not d.nic or d.nic == device): f.write("NM_CONTROLLED=no\n") break
Add an command to activate FCoE attached SAN's from kickstart --- kickstart.py | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/kickstart.py b/kickstart.py index 474ecec..64eed2a 100644 --- a/kickstart.py +++ b/kickstart.py @@ -259,6 +259,15 @@ class ClearPart(commands.clearpart.FC3_ClearPart):
return retval
+class Fcoe(commands.fcoe.F12_Fcoe): + def parse(self, args): + retval = commands.fcoe.F12_Fcoe.parse(self, args) + + for fc in self.fcoe: + self.handler.id.fcoe.addSan(nic=self.nic) + + return retval + class Firewall(commands.firewall.F10_Firewall): def parse(self, args): retval = commands.firewall.F10_Firewall.parse(self, args) @@ -984,6 +993,7 @@ commandMap = { "deviceprobe": commands.deviceprobe.FC3_DeviceProbe, "dmraid": DmRaid, "driverdisk": commands.driverdisk.FC3_DriverDisk, + "fcoe": Fcoe, "firewall": Firewall, "firstboot": Firstboot, "graphical": commands.displaymode.FC3_DisplayMode,
diff --git a/kickstart.py b/kickstart.py index 474ecec..64eed2a 100644 --- a/kickstart.py +++ b/kickstart.py @@ -259,6 +259,15 @@ class ClearPart(commands.clearpart.FC3_ClearPart):
return retval
+class Fcoe(commands.fcoe.F12_Fcoe):
- def parse(self, args):
retval = commands.fcoe.F12_Fcoe.parse(self, args)
for fc in self.fcoe:
self.handler.id.fcoe.addSan(nic=self.nic)
return retval
class Firewall(commands.firewall.F10_Firewall): def parse(self, args): retval = commands.firewall.F10_Firewall.parse(self, args) @@ -984,6 +993,7 @@ commandMap = { "deviceprobe": commands.deviceprobe.FC3_DeviceProbe, "dmraid": DmRaid, "driverdisk": commands.driverdisk.FC3_DriverDisk,
"fcoe": Fcoe, "firewall": Firewall, "firstboot": Firstboot, "graphical": commands.displaymode.FC3_DisplayMode,
This looks fine. I also like to increase the version of pykickstart that's required when I change kickstart.py in this way, too. In this case you can just bump the minor version by one.
- Chris
Hi
On 07/06/2009 04:21 PM, Chris Lumens wrote:
diff --git a/kickstart.py b/kickstart.py index 474ecec..64eed2a 100644 --- a/kickstart.py +++ b/kickstart.py @@ -259,6 +259,15 @@ class ClearPart(commands.clearpart.FC3_ClearPart):
return retval
+class Fcoe(commands.fcoe.F12_Fcoe):
- def parse(self, args):
retval = commands.fcoe.F12_Fcoe.parse(self, args)
for fc in self.fcoe:
self.handler.id.fcoe.addSan(nic=self.nic)
return retval
- class Firewall(commands.firewall.F10_Firewall): def parse(self, args): retval = commands.firewall.F10_Firewall.parse(self, args)
@@ -984,6 +993,7 @@ commandMap = { "deviceprobe": commands.deviceprobe.FC3_DeviceProbe, "dmraid": DmRaid, "driverdisk": commands.driverdisk.FC3_DriverDisk,
"fcoe": Fcoe, "firewall": Firewall, "firstboot": Firstboot, "graphical": commands.displaymode.FC3_DisplayMode,
This looks fine. I also like to increase the version of pykickstart that's required when I change kickstart.py in this way, too. In this case you can just bump the minor version by one.
Thanks, I'll do that when I commit this.
Regards,
Hans
Hans de Goede (hdegoede@redhat.com) said:
Write out NM_CONTROLLED=no for NICs used for FCoE, note that unlike with iSCSI we do not blindly write out NM_CONTROLLED=no for all NICs, but just for the NIC which is used for FCoE.
The iSCSI behaviour is undesirable, but the whole writing of NM_CONTROLLED=no for iSCSI will go away as soon as NetworkManager is fixed to not down devices when it takes over control, which should be fixed soon.
If that's fixed soon, shouldn't we not need the hack for FCoE either?
Bill
Hi,
On 07/03/2009 11:30 PM, Bill Nottingham wrote:
Hans de Goede (hdegoede@redhat.com) said:
Write out NM_CONTROLLED=no for NICs used for FCoE, note that unlike with iSCSI we do not blindly write out NM_CONTROLLED=no for all NICs, but just for the NIC which is used for FCoE.
The iSCSI behaviour is undesirable, but the whole writing of NM_CONTROLLED=no for iSCSI will go away as soon as NetworkManager is fixed to not down devices when it takes over control, which should be fixed soon.
If that's fixed soon, shouldn't we not need the hack for FCoE either?
No, because as I've explained before (and I really wish people would start understanding this) FcOE is not a network based storage protocol.
FcOE does raw, direct encapsulation of FC frames (which is a storage protocol like sata) in ethernet frames (The MTU even changes to 2300 to make things fit), so in essence the NIC becomes a storage controller. So NetworkManager should not try to touch the NIC in any way and this is not a hack.
FCoE basically is: use the NIC as an FC storage controller as its cheaper then a real one.
Regards,
Hans
Hans de Goede (hdegoede@redhat.com) said:
No, because as I've explained before (and I really wish people would start understanding this) FcOE is not a network based storage protocol.
The one thing I haven't heard clearly answered - is it a valid configuration to have a FCoE-enabled NIC that *also* has an IP for other outgoing traffic?
If so, we *do* need more than NM_CONTROLLED=no. If not... we don't.
Bill
Hi,
On 07/06/2009 05:34 PM, Bill Nottingham wrote:
Hans de Goede (hdegoede@redhat.com) said:
No, because as I've explained before (and I really wish people would start understanding this) FcOE is not a network based storage protocol.
The one thing I haven't heard clearly answered - is it a valid configuration to have a FCoE-enabled NIC that *also* has an IP for other outgoing traffic?
If so, we *do* need more than NM_CONTROLLED=no. If not... we don't.
Ok, so I had to go ask some more knowledgeable people. Yes this is possible, but only in combination with DCB which we currently do not support (as it isn't working yet according to upstream).
Also this is a very unlikely (as in don't do that you silly) configuration. So for now I'm just going to submit my patch which writes NM_CONTROLLED=no for ifcfg files for NIC's used for FCoE and then if this ever becomes an issue, we can revisit this.
Regards,
Hans
anaconda-devel@lists.fedoraproject.org