import pyloxi @ 56db3af912fd38fe3789e7629a823788b94f463d
diff --git a/src/python/loxi/__init__.py b/src/python/loxi/__init__.py
index 9fcc9bf..58fa3d7 100644
--- a/src/python/loxi/__init__.py
+++ b/src/python/loxi/__init__.py
@@ -1,21 +1,12 @@
-#
-# Copyright 2012, 2013, Big Switch Networks, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
+# Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+# Copyright (c) 2011, 2012 Open Networking Foundation
+# Copyright (c) 2012, 2013 Big Switch Networks, Inc.
 
 # Automatically generated by LOXI from template toplevel_init.py
 # Do not modify
 
+version_names = {1: '1.0', 2: '1.1', 3: '1.2', 4: '1.3'}
+
 def protocol(ver):
     """
     Import and return the protocol module for the given wire version.
@@ -23,6 +14,15 @@
     if ver == 1:
         import of10
         return of10
+    elif ver == 2:
+        import of11
+        return of11
+    elif ver == 3:
+        import of12
+        return of12
+    elif ver == 4:
+        import of13
+        return of13
     else:
         raise ValueError
 
@@ -31,3 +31,12 @@
     Raised when failing to deserialize an invalid OpenFlow message.
     """
     pass
+
+class Unimplemented(Exception):
+    """
+    Raised when an OpenFlow feature is not yet implemented in PyLoxi.
+    """
+    pass
+
+def unimplemented(msg):
+    raise Unimplemented(msg)