NetworkAdapter is an Abstract class defining general networking hardware concepts (for example, PermanentAddress or Speed ...

NetworkAdapter is an Abstract class defining general networking hardware concepts (for example, PermanentAddress or Speed of operation). NetworkAdapters are Devices with the ability to support multiple, higher level protocols and provide the implementation behind the Network Model's ProtocolEndpoint class. (This information is conveyed using the DeviceSAPImplementation association, defined in the Core Model.) NetworkAdapters and their Endpoints represent the potential for connectivity among peers.
The 'potential for connectivity' is very different than the master-slave/controller-controlled by relationships of CIM_Controller. Sometimes, however, a single Device is both a kind of NetworkAdapter and a Controller - for example, when a FibreChannelAdapater is operating as a ComputerSystem's SCSIController. In this case, there are aspects of the Device that are network oriented and others that are Controller oriented - and, both the Controller and Adapter classes should be instantiated. A DeviceIdentity relationship would also be created to tie together these differing aspects/abstractions of the Device.