diff --git a/netopeer/voltha-transapi/aclocal.m4 b/netopeer/voltha-transapi/aclocal.m4
index 9ea5dd0..91c7eb1 100644
--- a/netopeer/voltha-transapi/aclocal.m4
+++ b/netopeer/voltha-transapi/aclocal.m4
@@ -1,3 +1,16 @@
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
 # generated automatically by aclocal 1.13.4 -*- Autoconf -*-
 
 # Copyright (C) 1996-2013 Free Software Foundation, Inc.
diff --git a/netopeer/voltha-transapi/ltmain.sh b/netopeer/voltha-transapi/ltmain.sh
index 63ae69d..478b845 100755
--- a/netopeer/voltha-transapi/ltmain.sh
+++ b/netopeer/voltha-transapi/ltmain.sh
@@ -1,3 +1,16 @@
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
 
 # libtool (GNU libtool) 2.4.2
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
diff --git a/netopeer/voltha-transapi/voltha-schematron.xsl b/netopeer/voltha-transapi/voltha-schematron.xsl
index fd93ce7..68d8e9c 100644
--- a/netopeer/voltha-transapi/voltha-schematron.xsl
+++ b/netopeer/voltha-transapi/voltha-schematron.xsl
@@ -1,3 +1,18 @@
+<!--
+Copyright 2017-present Open Networking Foundation
+
+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.
+-->
 <?xml version="1.0" standalone="yes"?>
 <!--This XSLT was automatically generated from a Schematron schema.-->
 <axsl:stylesheet xmlns:date="http://exslt.org/dates-and-times" xmlns:dyn="http://exslt.org/dynamic" xmlns:exsl="http://exslt.org/common" xmlns:math="http://exslt.org/math" xmlns:random="http://exslt.org/random" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:set="http://exslt.org/sets" xmlns:str="http://exslt.org/strings" xmlns:axsl="http://www.w3.org/1999/XSL/Transform" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:voltha="urn:opencord:params:xml:ns:voltha:voltha" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" extension-element-prefixes="date dyn exsl math random regexp set str" version="1.0"><!--Implementers: please note that overriding process-prolog or process-root is 
diff --git a/netopeer/voltha-transapi/voltha.c b/netopeer/voltha-transapi/voltha.c
index 334470c..f133054 100644
--- a/netopeer/voltha-transapi/voltha.c
+++ b/netopeer/voltha-transapi/voltha.c
@@ -1,4 +1,19 @@
 /*
+ * Copyright 2017-present Open Networking Foundation
+
+ * 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.
+ */
+/*
  * This is automatically generated callbacks file
  * It contains 3 parts: Configuration callbacks, RPC callbacks and state data callbacks.
  * Do NOT alter function signatures or any structures unless you know exactly what you are doing.
diff --git a/netopeer/voltha-transapi/voltha.yang b/netopeer/voltha-transapi/voltha.yang
index 3b15ebf..78642da 100644
--- a/netopeer/voltha-transapi/voltha.yang
+++ b/netopeer/voltha-transapi/voltha.yang
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+
+ * 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.
+ */
 
 module voltha {
 
diff --git a/netopeer/voltha-transapi/voltha.yin b/netopeer/voltha-transapi/voltha.yin
index ca836ab..a30ddb6 100644
--- a/netopeer/voltha-transapi/voltha.yin
+++ b/netopeer/voltha-transapi/voltha.yin
@@ -1,3 +1,18 @@
+<!--
+Copyright 2017-present Open Networking Foundation
+
+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.
+-->
 <?xml version="1.0" encoding="UTF-8"?>
 <module xmlns="urn:ietf:params:xml:ns:yang:yin:1" xmlns:voltha="urn:opencord:params:xml:ns:voltha:voltha" name="voltha">
   <namespace uri="urn:opencord:params:xml:ns:voltha:voltha"/>
