d6b13d01a9
On some linux distribution, for RHEL 6.5 as an example, vxlan is enabled but the kernel version is still 2.6. And some linux kernel version is higher than 3.8 or even 3.11, its vxlan mod may be disabled. Under both situation, vxlan enablement checking via linux kernel version may not be correct. In this patch, we check vxlan enablement via modinfo: if vxlan module exists and functional test pass, vxlan is enabled. Closes-Bug: #1267682 Change-Id: Id52c04b4739d2d11fe52d4b1631cb4f39e6b577f
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
#
|
|
# Copyright 2012 Cisco Systems, Inc. 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.
|
|
#
|
|
# @author: Sumit Naiksatam, Cisco Systems, Inc.
|
|
|
|
|
|
from neutron.plugins.common import constants as p_const
|
|
|
|
|
|
FLAT_VLAN_ID = -1
|
|
LOCAL_VLAN_ID = -2
|
|
|
|
# Supported VXLAN features
|
|
VXLAN_NONE = 'not_supported'
|
|
VXLAN_MCAST = 'multicast_flooding'
|
|
VXLAN_UCAST = 'unicast_flooding'
|
|
|
|
|
|
# TODO(rkukura): Eventually remove this function, which provides
|
|
# temporary backward compatibility with pre-Havana RPC and DB vlan_id
|
|
# encoding.
|
|
def interpret_vlan_id(vlan_id):
|
|
"""Return (network_type, segmentation_id) tuple for encoded vlan_id."""
|
|
if vlan_id == LOCAL_VLAN_ID:
|
|
return (p_const.TYPE_LOCAL, None)
|
|
elif vlan_id == FLAT_VLAN_ID:
|
|
return (p_const.TYPE_FLAT, None)
|
|
else:
|
|
return (p_const.TYPE_VLAN, vlan_id)
|