diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/INvxNetworkPortInformation.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/INvxNetworkPortInformation.cs
new file mode 100644
index 00000000..3fcb7e26
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/INvxNetworkPortInformation.cs
@@ -0,0 +1,89 @@
+using Crestron.SimplSharpPro.DM.Streaming;
+using System;
+using System.Collections.Generic;
+
+namespace PepperDash.Essentials.Core
+{
+ ///
+ /// Represents a collection of network port information and provides notifications when the information changes.
+ ///
+ /// This interface is designed to provide access to a list of network port details and to notify
+ /// subscribers when the port information is updated. Implementations of this interface should ensure that the event is raised whenever the collection
+ /// changes.
+ public interface INvxNetworkPortInformation
+ {
+ ///
+ /// Occurs when the port information changes.
+ ///
+ /// This event is triggered whenever there is a change in the port information, such as
+ /// updates to port settings or status. Subscribers can handle this event to respond to such changes.
+ event EventHandler PortInformationChanged;
+
+ ///
+ /// Gets the collection of network port information associated with the current instance.
+ ///
+ /// The collection provides information about the network ports, such as their status,
+ /// configuration, or other relevant details. The returned list is read-only and cannot be modified
+ /// directly.
+ List NetworkPorts { get; }
+ }
+
+ ///
+ /// Represents information about a network port, including its configuration and associated system details.
+ ///
+ /// This class provides properties to describe various attributes of a network port, such as its
+ /// name, description, VLAN configuration, and management IP address. It is typically used to store and retrieve
+ /// metadata about network ports in a managed environment.
+ public class NvxNetworkPortInformation
+ {
+ private readonly DmNvxBaseClass.DmNvx35xNetwork.DmNvxNetworkLldpPort port;
+
+ ///
+ /// Gets or sets the index of the device port.
+ ///
+ public uint DevicePortIndex { get; }
+
+ ///
+ /// Gets or sets the name of the port used for communication.
+ ///
+ public string PortName => port.PortNameFeedback.StringValue;
+
+ ///
+ /// Gets or sets the description of the port.
+ ///
+ public string PortDescription => port.PortNameDescriptionFeedback.StringValue;
+
+ ///
+ /// Gets or sets the name of the VLAN (Virtual Local Area Network).
+ ///
+ public string VlanName => port.VlanNameFeedback.StringValue;
+
+ ///
+ /// Gets the IP management address associated with the port.
+ ///
+ public string IpManagementAddress => port.IpManagementAddressFeedback.StringValue;
+
+ ///
+ /// Gets the name of the system as reported by the associated port.
+ ///
+ public string SystemName => port.SystemNameFeedback.StringValue;
+
+ ///
+ /// Gets the description of the system name.
+ ///
+ public string SystemNameDescription => port.SystemNameDescriptionFeedback.StringValue;
+
+ ///
+ /// Initializes a new instance of the class with the specified network port
+ /// and device port index.
+ ///
+ /// The network port associated with the device. Cannot be .
+ /// The index of the device port.
+ /// Thrown if is .
+ public NvxNetworkPortInformation(DmNvxBaseClass.DmNvx35xNetwork.DmNvxNetworkLldpPort port, uint devicePortIndex)
+ {
+ this.port = port ?? throw new ArgumentNullException(nameof(port), "Port cannot be null");
+ DevicePortIndex = devicePortIndex;
+ }
+}