Add device field to indicate airflow #3115

Closed
opened 2025-12-29 18:25:48 +01:00 by adam · 19 comments
Owner

Originally created by @ryanmerolle on GitHub (Jan 3, 2020).

Originally assigned to: @jeremystretch on GitHub.

Environment

  • Python version: 3.6.3
  • NetBox version: 2.6.9

Proposed Functionality

Though we can model airflow / FAN model numbers in the inventory of a device, not everyone is going to do this. It just might be more ideal to signify in an optional field of the device. Additionally, one could also add the type to the deviceType model, for platforms that do not have swappable fans. At the very least, adding it to device model should be enough.

Relates to #3825

Use Case

There is no standard way the industry signifies airflow direction. Some platforms hardcode the airflow in the model number, some dynamically adjust show version model number with a -F or -R, some just indicate the airflow direction in a bundle SKU not seen in the device's OS, and some combine all of the above methods.

Database Changes

Add a new data model type with the fields mentioned in the proposed functionality.

External Dependencies

N/A

Originally created by @ryanmerolle on GitHub (Jan 3, 2020). Originally assigned to: @jeremystretch on GitHub. ### Environment * Python version: 3.6.3 * NetBox version: 2.6.9 ### Proposed Functionality Though we can model airflow / FAN model numbers in the inventory of a device, not everyone is going to do this. It just might be more ideal to signify in an optional field of the device. Additionally, one could also add the type to the deviceType model, for platforms that do not have swappable fans. At the very least, adding it to device model should be enough. Relates to #3825 ### Use Case There is no standard way the industry signifies airflow direction. Some platforms hardcode the airflow in the model number, some dynamically adjust `show version` model number with a -F or -R, some just indicate the airflow direction in a bundle SKU not seen in the device's OS, and some combine all of the above methods. ### Database Changes Add a new data model type with the fields mentioned in the proposed functionality. ### External Dependencies N/A
adam added the status: acceptedtype: feature labels 2025-12-29 18:25:48 +01:00
adam closed this issue 2025-12-29 18:25:48 +01:00
Author
Owner

@tb-killa commented on GitHub (Jan 8, 2020):

After some consideration and the insight in other DCIM tools, this FR should also be extended to the rack model, because ultimately the rack represents the actual airflow in a data center (front to back / back to front). In order to push things to the absolute limit, a default setting should be possible (e.g. Front to Back), but if more than 50% of the devices set up in the rack have an airflow (for eg. Back to Front), this direction is automatically preferred.

As soon as airflow is available on the rack model, the issue: https://github.com/netbox-community/netbox/issues/114 can be edited.

@tb-killa commented on GitHub (Jan 8, 2020): After some consideration and the insight in other DCIM tools, this FR should also be extended to the rack model, because ultimately the rack represents the actual airflow in a data center (front to back / back to front). In order to push things to the absolute limit, a default setting should be possible (e.g. Front to Back), but if more than 50% of the devices set up in the rack have an airflow (for eg. Back to Front), this direction is automatically preferred. As soon as airflow is available on the rack model, the issue: https://github.com/netbox-community/netbox/issues/114 can be edited.
Author
Owner

@walday commented on GitHub (Jan 21, 2020):

I need.. for this field in device and rack model.. in DC happens and the option of air movement in the front-to-side.. and this requiment air organisation tool.

@walday commented on GitHub (Jan 21, 2020): I need.. for this field in device and rack model.. in DC happens and the option of air movement in the front-to-side.. and this requiment air organisation tool.
Author
Owner

@ryanmerolle commented on GitHub (Feb 24, 2020):

Rack airflow seems to make sense. @jeremystretch let me know if you need any more feedback or thought on the data model. I think to our earlier conversation on slack, a simple drop down indicator field for the device (and rack if you decide it to be needed) would work just fine. If you apply to both, people could create reports/scripts to check that all devices in a rack are facing the proper way based on the airflow of the device, the front of the device, and the airflow of the rack. Further down the road, fans in the device inventory could be tracked against these feilds.

@ryanmerolle commented on GitHub (Feb 24, 2020): Rack airflow seems to make sense. @jeremystretch let me know if you need any more feedback or thought on the data model. I think to our earlier conversation on slack, a simple drop down indicator field for the device (and rack if you decide it to be needed) would work just fine. If you apply to both, people could create reports/scripts to check that all devices in a rack are facing the proper way based on the airflow of the device, the front of the device, and the airflow of the rack. Further down the road, fans in the device inventory could be tracked against these feilds.
Author
Owner

@tiagoasousa commented on GitHub (Jun 9, 2020):

Is this something i could contribute in some way? is a field that for where i am would be very usefull because i have rows of front to back (mostly compute rows) and back to front on the same datacenter. A standard way to document this would be very useful even for capacity management (buying the correct gear for the correct place)

@tiagoasousa commented on GitHub (Jun 9, 2020): Is this something i could contribute in some way? is a field that for where i am would be very usefull because i have rows of front to back (mostly compute rows) and back to front on the same datacenter. A standard way to document this would be very useful even for capacity management (buying the correct gear for the correct place)
Author
Owner

@jeremystretch commented on GitHub (Jul 24, 2020):

This seems like it's still half-baked. There are several details that need to be nailed down before this is actionable:

  • What fields are proposed for that models?
  • How is the direction of airflow conveyed to the user? I.e. what is the "front" of the device?
  • What is the specific validation logic (if any) being proposed, and how are violations reported to the user?
@jeremystretch commented on GitHub (Jul 24, 2020): This seems like it's still half-baked. There are several details that need to be nailed down before this is actionable: * What fields are proposed for that models? * How is the direction of airflow conveyed to the user? I.e. what is the "front" of the device? * What is the specific validation logic (if any) being proposed, and how are violations reported to the user?
Author
Owner

@tb-killa commented on GitHub (Aug 6, 2020):

  • What fields are proposed for that models?
  • How is the direction of airflow conveyed to the user? I.e. what is the "front" of the device?
  • What is the specific validation logic (if any) being proposed, and how are violations reported to the user?

The Device-Model should be extended with one field called "airflow-direction" who should select two states (front-to-back / back-to-front).

If someone document devices in netbox or physical in one rack he knows about the airflow themselves (hopefully after he bring the device online and feel the flow).

i think validations are somthing wo could be great running via plugin or reporting script, the first stepp should be here to provide an direct way of documentation.

@tb-killa commented on GitHub (Aug 6, 2020): > * What fields are proposed for that models? > * How is the direction of airflow conveyed to the user? I.e. what is the "front" of the device? > * What is the specific validation logic (if any) being proposed, and how are violations reported to the user? The Device-Model should be extended with one field called "airflow-direction" who should select two states (front-to-back / back-to-front). If someone document devices in netbox or physical in one rack he knows about the airflow themselves (hopefully after he bring the device online and feel the flow). i think validations are somthing wo could be great running via plugin or reporting script, the first stepp should be here to provide an direct way of documentation.
Author
Owner

@ryanmerolle commented on GitHub (Aug 9, 2020):

You mean this? https://github.com/netbox-community/netbox/issues/3839

On Thu, Aug 6, 2020 at 5:35 AM Oliver notifications@github.com wrote:

  • What fields are proposed for that models?
  • How is the direction of airflow conveyed to the user? I.e. what is
    the "front" of the device?
  • What is the specific validation logic (if any) being proposed, and
    how are violations reported to the user?

The Device-Model should be extended with one field called
"airflow-direction" who should select two states (front-to-back /
back-to-front).

If someone document devices in netbox or physical in one rack he knows
about the airflow themselves (hopefully after he bring the device online
and feel the flow).

i think validations are somthing wo could be great running via plugin or
reporting script, the first stepp should be here to provide an direct way
of documentation.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/netbox-community/netbox/issues/3839#issuecomment-669822530,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACEXYY2CVVFU4PK7T3BAJMTR7J2NDANCNFSM4KCSG2AA
.

@ryanmerolle commented on GitHub (Aug 9, 2020): You mean this? https://github.com/netbox-community/netbox/issues/3839 On Thu, Aug 6, 2020 at 5:35 AM Oliver <notifications@github.com> wrote: > > - What fields are proposed for that models? > - How is the direction of airflow conveyed to the user? I.e. what is > the "front" of the device? > - What is the specific validation logic (if any) being proposed, and > how are violations reported to the user? > > The Device-Model should be extended with one field called > "airflow-direction" who should select two states (front-to-back / > back-to-front). > > If someone document devices in netbox or physical in one rack he knows > about the airflow themselves (hopefully after he bring the device online > and feel the flow). > > i think validations are somthing wo could be great running via plugin or > reporting script, the first stepp should be here to provide an direct way > of documentation. > > — > You are receiving this because you authored the thread. > Reply to this email directly, view it on GitHub > <https://github.com/netbox-community/netbox/issues/3839#issuecomment-669822530>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/ACEXYY2CVVFU4PK7T3BAJMTR7J2NDANCNFSM4KCSG2AA> > . >
Author
Owner

@jeremystretch commented on GitHub (Sep 1, 2020):

I'm going to mark this as tentatively accepted (awaiting milestone designation) with the following assumptions:

  • A new airflow field will be added to the DeviceType model. This can be front-to-back, back-to-front, or null (default).
  • The same field will be also added to the Device model. This will inherit from DeviceType upon instantiation of a new device, but can be modified by the user.
@jeremystretch commented on GitHub (Sep 1, 2020): I'm going to mark this as tentatively accepted (awaiting milestone designation) with the following assumptions: * A new `airflow` field will be added to the DeviceType model. This can be front-to-back, back-to-front, or null (default). * The same field will be also added to the Device model. This will inherit from DeviceType upon instantiation of a new device, but can be modified by the user.
Author
Owner

@BarbarossaTM commented on GitHub (Oct 15, 2020):

Hi,

I would like to propose two values for this option: left-to-right and right-to-left

There are devices like Cisco Catalyst 4900-M which sadly don't to front-to-back or back-to-front but side-to-side, which might require some magic to happen in data centers.

@BarbarossaTM commented on GitHub (Oct 15, 2020): Hi, I would like to propose two values for this option: `left-to-right` and `right-to-left` There are devices like Cisco Catalyst 4900-M which sadly don't to front-to-back or back-to-front but side-to-side, which might require some magic to happen in data centers.
Author
Owner

@hchybz commented on GitHub (Nov 3, 2020):

Working on HPC clusters .. where all cables are in front ... thus network switches have non-standard airflow (and racked at front)
Need that field !

@hchybz commented on GitHub (Nov 3, 2020): Working on HPC clusters .. where all cables are in front ... thus network switches have non-standard airflow (and racked at front) Need that field !
Author
Owner

@991jo commented on GitHub (Nov 3, 2020):

side-to-back is also a airflow direction that I have seen in the field. Usually on access switches. At least some of the (tbh rather old) 3560/3750 G/E models have that.

@991jo commented on GitHub (Nov 3, 2020): `side-to-back` is also a airflow direction that I have seen in the field. Usually on access switches. At least some of the (tbh rather old) 3560/3750 G/E models have that.
Author
Owner

@bellwood commented on GitHub (Aug 6, 2021):

I suppose if we're going to model all the various directions, could we add Passive or None for devices that have no fans or defined airflow pattern?

Just as an aside, "front" and "back" are somewhat ambiguous terms, Cisco nomenclature is, typically, Port Side Intake or Port Side Exhaust.

@bellwood commented on GitHub (Aug 6, 2021): I suppose if we're going to model all the various directions, could we add `Passive` or `None` for devices that have no fans or defined airflow pattern? Just as an aside, "front" and "back" are somewhat ambiguous terms, Cisco nomenclature is, typically, Port Side Intake or Port Side Exhaust.
Author
Owner

@tb-killa commented on GitHub (Aug 10, 2021):

If this Part is implemented we should rework the "Device Templates" also to introduce this field informations :)

@tb-killa commented on GitHub (Aug 10, 2021): If this Part is implemented we should rework the "Device Templates" also to introduce this field informations :)
Author
Owner

@jeremystretch commented on GitHub (Oct 12, 2021):

Rather than trying to capture all potential combinations of inlet and exhaust, maybe it would be sufficient to just denote the exhaust. For example:

  • Front
  • Rear
  • Left
  • Right
  • None (passive)

@ryanmerolle what are your thoughts?

@jeremystretch commented on GitHub (Oct 12, 2021): Rather than trying to capture all potential combinations of inlet and exhaust, maybe it would be sufficient to just denote the exhaust. For example: * Front * Rear * Left * Right * None (passive) @ryanmerolle what are your thoughts?
Author
Owner

@BarbarossaTM commented on GitHub (Oct 12, 2021):

Depending on the architecture of the DC both inlet and exhaust might be relevant. If you have cold-aisle containment you may need to fiddle around with some metal/tape to make cold air flow to the side of a device or care about inlet, if you have hot-aisle containment it's the other way around. I think it would be best to to have te

  • front -> back
  • back -> front
  • left -> right
  • right -> left
  • side -> back
  • ..

options, so everyone can make use of them. This will come at the cost of adding options later on as we probably might miss some esoteric ones on the 1st shot :-)

@BarbarossaTM commented on GitHub (Oct 12, 2021): Depending on the architecture of the DC both inlet and exhaust might be relevant. If you have cold-aisle containment you may need to fiddle around with some metal/tape to make cold air flow to the side of a device or care about inlet, if you have hot-aisle containment it's the other way around. I think it would be best to to have te - front -> back - back -> front - left -> right - right -> left - side -> back - .. options, so everyone can make use of them. This will come at the cost of adding options later on as we probably might miss some esoteric ones on the 1st shot :-)
Author
Owner

@zombah commented on GitHub (Oct 13, 2021):

There are device's which mix multiple airflow directions in one box, f.e. Juniper MX480 which have left to right for card slots and front to back for power modules.

@zombah commented on GitHub (Oct 13, 2021): There are device's which mix multiple airflow directions in one box, f.e. Juniper MX480 which have left to right for card slots and front to back for power modules.
Author
Owner

@991jo commented on GitHub (Oct 13, 2021):

maybe we don't need an airflow direction but intake and exhaust sides of the device? (there can possibly be multiple of those)
the example from @zombah would then have an intake on the left and front and exhausts in the right and back.

@991jo commented on GitHub (Oct 13, 2021): maybe we don't need an airflow direction but intake and exhaust sides of the device? (there can possibly be multiple of those) the example from @zombah would then have an intake on the left and front and exhausts in the right and back.
Author
Owner

@jeremystretch commented on GitHub (Oct 14, 2021):

In the interest of moving forward with this, I'm going to commit to adding an optional ChoiceField named airflow to both the DeviceType and Device models, with the following options:

  • front-to-rear
  • rear-to-front
  • left-ro-right
  • right-to-left
  • side-to-rear
  • passive

If defined on a DeviceType, this value will be automatically replicated to instantiated Devices, however the user will be able to modify it independently. (This may be needed e.g. when swapping AFI/AFO power supplies and fans within the device.)

This approach seems like it will cover all the concerns raised here. There will be an opportunity to collect feedback during the v3.1 beta period as well.

@jeremystretch commented on GitHub (Oct 14, 2021): In the interest of moving forward with this, I'm going to commit to adding an optional ChoiceField named `airflow` to both the DeviceType and Device models, with the following options: * `front-to-rear` * `rear-to-front` * `left-ro-right` * `right-to-left` * `side-to-rear` * `passive` If defined on a DeviceType, this value will be automatically replicated to instantiated Devices, however the user will be able to modify it independently. (This may be needed e.g. when swapping AFI/AFO power supplies and fans within the device.) This approach seems like it will cover all the concerns raised here. There will be an opportunity to collect feedback during the v3.1 beta period as well.
Author
Owner

@ryanmerolle commented on GitHub (Oct 14, 2021):

I total agree with the approach given the comments added. Some platforms can change the airflow direction with a FAN and/or PSU swap, some platforms can change their airflow with reversible fans, and etc. Furthermore, some vendors change the full model name of the device based on the current airflow with airflow signifiers at the end of the model name.

I should have done a better job of articulating that this should be optional, and really @jeremystretch your model is exactly how I envisioned it working.

@ryanmerolle commented on GitHub (Oct 14, 2021): I total agree with the approach given the comments added. Some platforms can change the airflow direction with a FAN and/or PSU swap, some platforms can change their airflow with reversible fans, and etc. Furthermore, some vendors change the full model name of the device based on the current airflow with airflow signifiers at the end of the model name. I should have done a better job of articulating that this should be optional, and really @jeremystretch your model is exactly how I envisioned it working.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#3115