         let result = inet_pton(af, addr, &bytes)
         return ( result == 1 ) ? bytes : nil
     }
+    
+    /// `IFF_RUNNING` flag of `ifaddrs->ifa_flags`.
     public var isRunning: Bool { return running }
+    
+    /// `IFF_UP` flag of `ifaddrs->ifa_flags`.
     public var isUp: Bool { return up }
+    
+    /// `IFF_LOOPBACK` flag of `ifaddrs->ifa_flags`.
     public var isLoopback: Bool { return loopback }
+    
+    /// `IFF_MULTICAST` flag of `ifaddrs->ifa_flags`.
     public var supportsMulticast: Bool { return multicastSupported }
 
+    /// Field `ifaddrs->ifa_name`.
     public let name : String
+    
+    /// Field `ifaddrs->ifa_addr->sa_family`.
     public let family : Family
+    
+    /// Extracted from `ifaddrs->ifa_addr`, supports both IPv4 and IPv6.
     public let address : String?
+    
+    /// Extracted from `ifaddrs->ifa_netmask`, supports both IPv4 and IPv6.
     public let netmask : String?
+    
+    /// Extracted from `ifaddrs->ifa_dstaddr`. Not applicable for IPv6.
     public let broadcastAddress : String?
+    
     private let running : Bool
     private let up : Bool
     private let loopback : Bool
     private let multicastSupported : Bool
     
+    /// Returns the interface name.
     public var description: String { return name }
+    
+    /// Returns a string containing a few properties of the Interface.
     public var debugDescription: String {
         var s = "Interface name:\(name) family:\(family)"
         if let ip = address {

        }
    }
    
    public static func allInterfaces() -> [Interface] {
        var interfaces : [Interface] = []
        

    }
    
    /**
     * Returns a new Interface instance that does not represent a real network interface, but can be used for (unit) testing.
     * - Returns: An instance of Interface that does *not* represent a real network interface.
     */
    public static func createTestDummy(name:String, family:Family, address:String, multicastSupported:Bool, broadcastAddress:String?) -> Interface
    {
        return Interface(name: name, family: family, address: address, netmask: nil, running: true, up: true, loopback: false, multicastSupported: multicastSupported, broadcastAddress: broadcastAddress)
    }
    
    /**
     * Initialize a new Interface with the given properties.
     */
    public init(name:String, family:Family, address:String?, netmask:String?, running:Bool, up:Bool, loopback:Bool, multicastSupported:Bool, broadcastAddress:String?) {
        self.name = name
        self.family = family
