A little history about the names. I originally named it NetworkElement because the code that supports the network service naturally is an element in the network. However, when we finalized the REST APIs, then I realized the name NetworkElement implies that it is one particular instance of a network element. However, that's not actually how CloudStack uses NetworkElement. CloudStack itself doesn't want to understand how many instances are underneath to support the network service. It wants the NetworkElement implementation itself be responsible for that. CloudStack is only responsible for pushing the virtual entities such as Network, Network rules, VMs (nics) to the NetworkElement implementations when they change.
It is up to NetworkElement to implement the number instances it has in a zone, whether it is in a HA configuration, whether instances are dedicated to an account and many other things that can help differentiate one vendor's offering from another. So when we expose the REST API, we changed the name to NetworkServiceProvider but I never went back to change the NetworkElement interface to NetworkServiceProvider to make it the same. Hence, the confusion. --Alex > -----Original Message----- > From: Alex Huang [mailto:alex.hu...@citrix.com] > Sent: Tuesday, May 08, 2012 1:44 PM > To: cloudstack-dev@incubator.apache.org > Subject: RE: How to add a PhysicalNetworkServiceProvider > > NetworkServiceProvider is not added through the UI. It's added through the > components.xml as a NetworkElement. The names are confusing. We > should change that interface name to NetworkServiceProvider. > > --Alex > > > -----Original Message----- > > From: Frank Zhang [mailto:frank.zh...@citrix.com] > > Sent: Tuesday, May 08, 2012 1:42 PM > > To: cloudstack-dev@incubator.apache.org > > Subject: How to add a PhysicalNetworkServiceProvider > > > > I went through CloudStack UI there are three default > > NetworkServiceProvider, but I didn't see any way to add a new provider. > > Do we support that? Or we only allow API to add it?