backing up
[vsorcdistro/.git] / ryu / build / lib.linux-armv7l-2.7 / ryu / services / protocols / bgp / info_base / vpnv6.py
1 # Copyright (C) 2014 Nippon Telegraph and Telephone Corporation.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #    http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
12 # implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 """
17  Defines data types and models required specifically for VPNv6 support.
18 """
19
20 import logging
21
22 from ryu.lib.packet.bgp import IP6AddrPrefix
23 from ryu.lib.packet.bgp import RF_IPv6_VPN
24
25 from ryu.services.protocols.bgp.info_base.vpn import VpnDest
26 from ryu.services.protocols.bgp.info_base.vpn import VpnPath
27 from ryu.services.protocols.bgp.info_base.vpn import VpnTable
28
29 LOG = logging.getLogger('bgpspeaker.info_base.vpnv6')
30
31
32 class Vpnv6Dest(VpnDest):
33     """VPNv6 destination
34
35     Stores IPv6 paths.
36     """
37     ROUTE_FAMILY = RF_IPv6_VPN
38
39
40 class Vpnv6Table(VpnTable):
41     """Global table to store VPNv6 routing information
42
43     Uses `Vpnv6Dest` to store destination information for each known vpnv6
44     paths.
45     """
46     ROUTE_FAMILY = RF_IPv6_VPN
47     VPN_DEST_CLASS = Vpnv6Dest
48
49
50 class Vpnv6Path(VpnPath):
51     """Represents a way of reaching an VPNv4 destination."""
52     ROUTE_FAMILY = RF_IPv6_VPN
53     VRF_PATH_CLASS = None  # defined in init - anti cyclic import hack
54     NLRI_CLASS = IP6AddrPrefix
55
56     def __init__(self, *args, **kwargs):
57         super(Vpnv6Path, self).__init__(*args, **kwargs)
58         from ryu.services.protocols.bgp.info_base.vrf6 import Vrf6Path
59         self.VRF_PATH_CLASS = Vrf6Path