A generalized network controller (102; 200) in a software defined network, comprising: a first transceiver connected to a first Open Flow switch comprising a first OF standard version configured to receive messages from the first OF switch and to transmit messages to the first OF switch; a second transceiver connected to a second OF switch comprising a second OF standard version configured to receive messages from the second OF switch and to transmit messages to the second OF switch, wherein the first OF standard version is different from the second OF standard version, and wherein the first OF standard version is incompatible with the second OF standard version; and a processor coupled to the first and second transceivers and configured to control the first and the second OF switches, wherein the processor further comprising: a message analyzer configured to decipher a version of an incoming message received from the first OF switch; a message normalizer coupled to the message analyzer and configured to extract features from the incoming message and construct a version independent incoming message; a version independent controller module coupled to the message normalizer and configured to process the version independent incoming message to get a processed message; a message translator coupled to the version independent controller module, wherein the message translator is configured to construct a version specific outbound message from the processed message for the second OF switch. a first transceiver connected to a first Open Flow switch comprising a first OF standard version configured to receive messages from the first OF switch and to transmit messages to the first OF switch; a second transceiver connected to a second OF switch comprising a second OF standard version configured to receive messages from the second OF switch and to transmit messages to the second OF switch, wherein the first OF standard version is different from the second OF standard version, and wherein the first OF standard version is incompatible with the second OF standard version; and a processor coupled to the first and second transceivers and configured to control the first and the second OF switches, wherein the processor further comprising: a message analyzer configured to decipher a version of an incoming message received from the first OF switch; a message normalizer coupled to the message analyzer and configured to extract features from the incoming message and construct a version independent incoming message; a version independent controller module coupled to the message normalizer and configured to process the version independent incoming message to get a processed message; a message translator coupled to the version independent controller module, wherein the message translator is configured to construct a version specific outbound message from the processed message for the second OF switch. a message analyzer configured to decipher a version of an incoming message received from the first OF switch; a message normalizer coupled to the message analyzer and configured to extract features from the incoming message and construct a version independent incoming message; a version independent controller module coupled to the message normalizer and configured to process the version independent incoming message to get a processed message; a message translator coupled to the version independent controller module, wherein the message translator is configured to construct a version specific outbound message from the processed message for the second OF switch.