##
# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
# This file is part of openvim
# All Rights Reserved.
#
# 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.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact with: nfvlabs@tid.es
##


port:
    name:          port-name
    #network_id:    network uuid this port must be attached
    type:          external
    binding:vlan:  103                # if provided packets to/from this switch port will be vlan tagged
    binding:switch_port": "Te/01"     # provide the openflow switch port
    #mac_address:   34:44:45:67:78:12  # mac address of the element behind this port. As normally is not know, leave commented
