Is SDN a buzzword or is it a protocol, standard, or recommendation?
What differentiates SDN from VMware NSX, for example?
I am assuming you are talking about Software Defined Networking. Currently state of the art networks make forwarding decisions within your networking infrastructure. Example - bridge tables are built dynamically from source MAC packets - routing decisions are made off of route tables built from dynamic routing protocol (eigrp/ospf/etc.). In SDN the network infrastructure is simply viewed as a control plane and takes forwarding direction from a central controller (an application running on a server somewhere). So each networking device layer2/layer3 would query the controller for forwarding decisions.
This is a decent article on the subject: SDN
The Wikipedia page goes into a more in-depth discussion of the history and motives: Wikipedia
I think SDN has lost it's meaning a bit (i.e. it can mean several different things now) because a lot of vendors have entered this market with several solutions that implement "SDN" in different ways.
I've blogged about SDN and it's origins here: http://filipv.net/2014/03/17/on-sdn-nfv-and-openflow/
Since you specifically mention VMware NSX in your question and how it contrasts with SDN, I'd say the main difference is that SDN typically also "programs state" in the data plane of the network, by using OpenFlow for example, and also configures physical network devices by using OVSDB for example. Whereas VMware NSX is a network virtualisation solution that does not configure or program forwarding state in physical devices but threats the physical network purely as an underlay to carry the overlay network which it does "program".
Note: in the next version of NSX-v, there will be OVSDB support so the lines will become more blurry. NSX-MH (the old Nicira NVP product) already had OVSDB support.
Separating a network's control logic from the underlying physical routers and switches that forward traffic allows network operators to write high-level control programs that specify the behavior of an entire network, in contrast to conventional networks, whereby network operators must codify functionality in terms of low-level device configuration.
Logically centralized network control makes it possible for operators to specify more complex tasks that involve integrating many disjoint network functions (e.g., security, resource control, prioritization) into a single control framework, allowing network operators to create more sophisticated policies, and making network configurations easier to configure, manage, troubleshoot, and debug
Simply put, Software-defined networking (SDN) is an approach to networking in which control is decoupled from the physical infrastructure
It is separating the network's control logic from the underlying routers and switches, promoting (logical) centralization of network control, and introducing the ability to program the network
Wikipedia: Software-defined networking (SDN) is an approach to computer networking that allows network administrators to manage network services through abstraction of lower-level functionality. This is done by decoupling the system that makes decisions about where traffic is sent (the control plane) from the underlying systems that forward traffic to the selected destination (the data plane). The inventors and vendors of these systems claim that this simplifies networking.
SDN, software defined networking, is defined by the Open Networking Foundation (ONF) as
The physical separation of the network control plane from the forwarding plane, and where a control plane controls several devices. [...and...] the OpenFlow® protocol is a foundational element for building SDN solutions.
Where Open SDN favors OpenFlow®, commercial networking incumbents market their own flavors of SDN fashioned programmable network systems, e.g. Cisco ACI™ and VMware NSX® (the Software-Defined Data Center, SDDC). Cisco's Meraki cloud managed devices utilize, but make no mention of, an underlying SDN architecture. Lastly, the Term SDN was first mentioned in an MIT Academic Article on OpenFlow Greene, K. 2009. TR10: software-defined networking.
Whereas SDN is an architecture for a programmable network; OpenStack, Eucalyptus, vCloud Air™, and Apache CloudStack™ are architectures for programmable clouds (i.e. network, memory, i/o, and storage). Programmable cloud compute systems may or may not use SDN. For example, OpenStack's Neutron element
can be viewed as orthogonal to SDN since it can integrate with traditional networks with existing protocols [What is OpenStack Networking?].
Automated distributed smart ports. Today, you link to a wired or wireless LAN which may include networking control features such as routing, firewall, optimizing, VLAN's etc. With SDN, these control features are available at the NIC/vNIC and are programmable via the SDN controller.
SDN architectures are being adopted and driven by the deployment of private clouds such as OpenStack, Eucalyptus, vCloud Air™, and Apache CloudStack™.
OpenStack's Neutron project, providing networking as a service between interface devices (e.g., vNICs), recognizes SDN as a possible networking solution for OpenStack Clouds [OpenDaylight: An Open Source SDN for Your OpenStack Cloud].
Eucalyptus Virtual Private Cloud (VPC) support is implemented with a Software-Defined Networking (SDN) technology [Understanding VPC and MidoNet].