backing up
[vsorcdistro/.git] / ryu / build / lib.linux-armv7l-2.7 / ryu / services / protocols / bgp / info_base / vpnv4.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 VPNv4 support.
18 """
19
20 import logging
21
22 from ryu.lib.packet.bgp import IPAddrPrefix
23 from ryu.lib.packet.bgp import RF_IPv4_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.vpnv4')
30
31
32 class Vpnv4Dest(VpnDest):
33     """VPNv4 Destination
34
35     Store IPv4 Paths.
36     """
37     ROUTE_FAMILY = RF_IPv4_VPN
38
39
40 class Vpnv4Table(VpnTable):
41     """Global table to store VPNv4 routing information.
42
43     Uses `Vpnv4Dest` to store destination information for each known vpnv4
44     paths.
45     """
46     ROUTE_FAMILY = RF_IPv4_VPN
47     VPN_DEST_CLASS = Vpnv4Dest
48
49
50 class Vpnv4Path(VpnPath):
51     """Represents a way of reaching an VPNv4 destination."""
52     ROUTE_FAMILY = RF_IPv4_VPN
53     VRF_PATH_CLASS = None  # defined in init - anti cyclic import hack
54     NLRI_CLASS = IPAddrPrefix
55
56     def __init__(self, *args, **kwargs):
57         super(Vpnv4Path, self).__init__(*args, **kwargs)
58         from ryu.services.protocols.bgp.info_base.vrf4 import Vrf4Path
59         self.VRF_PATH_CLASS = Vrf4Path