1 # Copyright (C) 2017 Nippon Telegraph and Telephone Corporation.
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
7 # http://www.apache.org/licenses/LICENSE-2.0
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
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
17 Defines data types and models required specifically
18 for VRF (for IPv6 Flow Specification) support.
19 Represents data structures for VRF not VPN/global.
20 (Inside VRF you have IPv6 Flow Specification prefixes
21 and inside VPN you have VPNV6 Flow Specification prefixes)
26 from ryu.lib.packet.bgp import RF_IPv6_FLOWSPEC
27 from ryu.lib.packet.bgp import RF_VPNv6_FLOWSPEC
28 from ryu.lib.packet.bgp import FlowSpecIPv6NLRI
29 from ryu.lib.packet.bgp import FlowSpecVPNv6NLRI
31 from ryu.services.protocols.bgp.info_base.vpnv6fs import VPNv6FlowSpecPath
32 from ryu.services.protocols.bgp.info_base.vrffs import VRFFlowSpecDest
33 from ryu.services.protocols.bgp.info_base.vrffs import VRFFlowSpecPath
34 from ryu.services.protocols.bgp.info_base.vrffs import VRFFlowSpecTable
36 LOG = logging.getLogger('bgpspeaker.info_base.vrf6fs')
39 class Vrf6FlowSpecPath(VRFFlowSpecPath):
40 """Represents a way of reaching an IP destination with
41 a VPN Flow Specification.
43 ROUTE_FAMILY = RF_IPv6_FLOWSPEC
44 VPN_PATH_CLASS = VPNv6FlowSpecPath
45 VPN_NLRI_CLASS = FlowSpecVPNv6NLRI
48 class Vrf6FlowSpecDest(VRFFlowSpecDest):
49 ROUTE_FAMILY = RF_IPv6_FLOWSPEC
52 class Vrf6FlowSpecTable(VRFFlowSpecTable):
53 """Virtual Routing and Forwarding information base
54 for IPv6 Flow Specification.
56 ROUTE_FAMILY = RF_IPv6_FLOWSPEC
57 VPN_ROUTE_FAMILY = RF_VPNv6_FLOWSPEC
58 NLRI_CLASS = FlowSpecIPv6NLRI
59 VRF_PATH_CLASS = Vrf6FlowSpecPath
60 VRF_DEST_CLASS = Vrf6FlowSpecDest