~ubuntu-branches/ubuntu/utopic/exabgp/utopic

« back to all changes in this revision

Viewing changes to lib/exabgp/protocol/family.py

  • Committer: Package Import Robot
  • Author(s): Henry-Nicolas Tourneur
  • Date: 2014-03-08 19:07:00 UTC
  • mfrom: (1.1.8)
  • Revision ID: package-import@ubuntu.com-20140308190700-xjbibpg1g6001c9x
Tags: 3.3.1-1
* New upstream release
* Bump python minimal required version (2.7)
* Closes: #726066 Debian packaging improvements proposed by Vincent Bernat
* Closes: #703774 not existent rundir (/var/run/exabgp) after reboot

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
        def pack (self):
34
34
                return pack('!H',self)
35
35
 
 
36
        @staticmethod
 
37
        def value (name):
 
38
                if name == "ipv4": return AFI.ipv4
 
39
                if name == "ipv6": return AFI.ipv6
 
40
                return None
 
41
 
36
42
# =================================================================== SAFI
37
43
 
38
44
# http://www.iana.org/assignments/safi-namespace
56
62
        mpls_vpn = 128              # [RFC4364]
57
63
#       mcast_bgp_mpls_vpn = 129    # [RFC2547]
58
64
#       rt = 132                    # [RFC4684]
59
 
        flow_ipv4 = 133             # [RFC5575]
60
 
        flow_vpnv4 = 134            # [RFC5575]
 
65
        flow_ip = 133               # [RFC5575]
 
66
        flow_vpn = 134              # [RFC5575]
61
67
#
62
68
#       vpn_ad = 140                # [draft-ietf-l3vpn-bgpvpn-auto]
63
69
#
70
76
                if self == 0x02: return "multicast"
71
77
                if self == 0x04: return "nlri-mpls"
72
78
                if self == 0x80: return "mpls-vpn"
73
 
                if self == 0x85: return "flow-ipv4"
74
 
                if self == 0x86: return "flow-vpnv4"
 
79
                if self == 0x85: return "flow"
 
80
                if self == 0x86: return "flow-vpn"
75
81
                return "unknown safi"
76
82
 
77
83
        def __str__ (self):
84
90
                return self in (self.nlri_mpls,self.mpls_vpn)
85
91
 
86
92
        def has_rd (self):
87
 
                return self in (self.mpls_vpn,)
 
93
                return self in (self.mpls_vpn,)  # technically self.flow_vpn has an RD but it is not an NLRI
88
94
 
 
95
        @staticmethod
 
96
        def value (name):
 
97
                if name == "unicast"  : return 0x01
 
98
                if name == "multicast": return 0x02
 
99
                if name == "nlri-mpls": return 0x04
 
100
                if name == "mpls-vpn" : return 0x80
 
101
                if name == "flow"     : return 0x85
 
102
                if name == "flow-vpn" : return 0x86
 
103
                return None
89
104
 
90
105
def known_families ():
91
106
        # it can not be a generator
94
109
        families.append((AFI(AFI.ipv4),SAFI(SAFI.multicast)))
95
110
        families.append((AFI(AFI.ipv4),SAFI(SAFI.nlri_mpls)))
96
111
        families.append((AFI(AFI.ipv4),SAFI(SAFI.mpls_vpn)))
97
 
        families.append((AFI(AFI.ipv4),SAFI(SAFI.flow_ipv4)))
 
112
        families.append((AFI(AFI.ipv4),SAFI(SAFI.flow_ip)))
 
113
        families.append((AFI(AFI.ipv4),SAFI(SAFI.flow_vpn)))
98
114
        families.append((AFI(AFI.ipv6),SAFI(SAFI.unicast)))
99
115
        families.append((AFI(AFI.ipv6),SAFI(SAFI.mpls_vpn)))
 
116
        families.append((AFI(AFI.ipv6),SAFI(SAFI.flow_ip)))
 
117
        families.append((AFI(AFI.ipv6),SAFI(SAFI.flow_vpn)))
100
118
        return families