1
1
use crate :: bgp:: message:: { Header , MsgType } ;
2
2
use inetnum:: asn:: Asn ;
3
- use crate :: bgp:: types:: { AfiSafi , AddpathFamDir , AddpathDirection } ;
3
+ use crate :: bgp:: types:: { AfiSafiType , AddpathFamDir , AddpathDirection } ;
4
4
use crate :: typeenum; // from util::macros
5
5
use crate :: util:: parser:: ParseError ;
6
6
use log:: warn;
@@ -173,26 +173,8 @@ impl<Octs: Octets> OpenMessage<Octs> {
173
173
)
174
174
}
175
175
176
- /*
177
- pub fn addpath_families(&self) -> impl Iterator<Item = (AfiSafi, AddpathDirection)> + '_ {
178
- self.capabilities().filter(|c|
179
- c.typ() == CapabilityType::AddPath
180
- ).map(|c| {
181
- &c.value().chunks(4)
182
- .map(|c| {
183
- let mut parser = Parser::from_ref(c);
184
-
185
- let afi = parser.parse_u16_be().unwrap().into();
186
- let safi = parser.parse_u8().unwrap().into();
187
- let dir = AddpathDirection::try_from(parser.parse_u8().unwrap());
188
- (AfiSafi::try_from((afi, safi)).unwrap(), dir.unwrap())
189
- })
190
- }).flatten().into_iter()
191
- }
192
- */
193
-
194
176
pub fn addpath_families_vec ( & self )
195
- -> Result < Vec < ( AfiSafi , AddpathDirection ) > , ParseError >
177
+ -> Result < Vec < ( AfiSafiType , AddpathDirection ) > , ParseError >
196
178
{
197
179
let mut res = vec ! [ ] ;
198
180
for c in self . capabilities ( ) . filter ( |c|
@@ -205,7 +187,7 @@ impl<Octs: Octets> OpenMessage<Octs> {
205
187
let safi = parser. parse_u8 ( ) ?;
206
188
let dir = AddpathDirection :: try_from ( parser. parse_u8 ( ) ?)
207
189
. map_err ( |_| ParseError :: Unsupported ) ?;
208
- res. push ( ( AfiSafi :: from ( ( afi, safi) ) , dir) ) ;
190
+ res. push ( ( AfiSafiType :: from ( ( afi, safi) ) , dir) ) ;
209
191
}
210
192
}
211
193
Ok ( res)
@@ -238,9 +220,9 @@ impl<Octs: Octets> OpenMessage<Octs> {
238
220
} ) . collect :: < Vec < _ > > ( )
239
221
}
240
222
241
- /// Returns an iterator over `AfiSafi `s listed as MultiProtocol
223
+ /// Returns an iterator over `AfiSafiType `s listed as MultiProtocol
242
224
/// Capabilities in the Optional Parameters of this message.
243
- pub fn multiprotocol_ids ( & self ) -> impl Iterator < Item = AfiSafi > + ' _ {
225
+ pub fn multiprotocol_ids ( & self ) -> impl Iterator < Item = AfiSafiType > + ' _ {
244
226
self . capabilities ( ) . filter ( |c|
245
227
c. typ ( ) == CapabilityType :: MultiProtocol
246
228
) . map ( |mp_cap| {
@@ -747,7 +729,7 @@ typeenum!(
747
729
pub struct OpenBuilder < Target > {
748
730
target : Target ,
749
731
capabilities : Vec < Capability < Vec < u8 > > > ,
750
- addpath_families : Vec < ( AfiSafi , AddpathDirection ) > ,
732
+ addpath_families : Vec < ( AfiSafiType , AddpathDirection ) > ,
751
733
}
752
734
753
735
use core:: convert:: Infallible ;
@@ -815,7 +797,7 @@ impl<Target: OctetsBuilder + AsMut<[u8]>> OpenBuilder<Target> {
815
797
self . add_capability ( Capability :: for_slice ( s. to_vec ( ) ) ) ;
816
798
}
817
799
818
- pub fn add_mp ( & mut self , afisafi : AfiSafi ) {
800
+ pub fn add_mp ( & mut self , afisafi : AfiSafiType ) {
819
801
// code 1
820
802
// length n
821
803
// 2 bytes AFI, rsrvd byte, 1 byte SAFI
@@ -828,7 +810,7 @@ impl<Target: OctetsBuilder + AsMut<[u8]>> OpenBuilder<Target> {
828
810
self . add_capability ( Capability :: < Vec < u8 > > :: for_slice ( s) ) ;
829
811
}
830
812
831
- pub fn add_addpath ( & mut self , afisafi : AfiSafi , dir : AddpathDirection ) {
813
+ pub fn add_addpath ( & mut self , afisafi : AfiSafiType , dir : AddpathDirection ) {
832
814
self . addpath_families . push ( ( afisafi, dir) ) ;
833
815
}
834
816
}
@@ -1041,23 +1023,23 @@ mod tests {
1041
1023
1042
1024
assert_eq ! ( open. multiprotocol_ids( ) . count( ) , 15 ) ;
1043
1025
let protocols = [
1044
- AfiSafi :: Ipv4Unicast ,
1045
- AfiSafi :: Ipv4Multicast ,
1046
- AfiSafi :: Ipv4MplsUnicast ,
1047
- AfiSafi :: Ipv4MplsVpnUnicast ,
1048
- AfiSafi :: Ipv4RouteTarget ,
1049
- AfiSafi :: Ipv4FlowSpec ,
1050
- //AfiSafi ::Ipv4FlowSpecVpn,
1051
- AfiSafi :: Unsupported ( 1 , 134 ) ,
1052
- AfiSafi :: Ipv6Unicast ,
1053
- AfiSafi :: Ipv6Multicast ,
1054
- AfiSafi :: Ipv6MplsUnicast ,
1055
- AfiSafi :: Ipv6MplsVpnUnicast ,
1056
- AfiSafi :: Ipv6FlowSpec ,
1057
- //AfiSafi ::Ipv6FlowSpecVpn,
1058
- AfiSafi :: Unsupported ( 2 , 134 ) ,
1059
- AfiSafi :: L2VpnVpls ,
1060
- AfiSafi :: L2VpnEvpn ,
1026
+ AfiSafiType :: Ipv4Unicast ,
1027
+ AfiSafiType :: Ipv4Multicast ,
1028
+ AfiSafiType :: Ipv4MplsUnicast ,
1029
+ AfiSafiType :: Ipv4MplsVpnUnicast ,
1030
+ AfiSafiType :: Ipv4RouteTarget ,
1031
+ AfiSafiType :: Ipv4FlowSpec ,
1032
+ //AfiSafiType ::Ipv4FlowSpecVpn,
1033
+ AfiSafiType :: Unsupported ( 1 , 134 ) ,
1034
+ AfiSafiType :: Ipv6Unicast ,
1035
+ AfiSafiType :: Ipv6Multicast ,
1036
+ AfiSafiType :: Ipv6MplsUnicast ,
1037
+ AfiSafiType :: Ipv6MplsVpnUnicast ,
1038
+ AfiSafiType :: Ipv6FlowSpec ,
1039
+ //AfiSafiType ::Ipv6FlowSpecVpn,
1040
+ AfiSafiType :: Unsupported ( 2 , 134 ) ,
1041
+ AfiSafiType :: L2VpnVpls ,
1042
+ AfiSafiType :: L2VpnEvpn ,
1061
1043
] ;
1062
1044
1063
1045
for ( id, protocol) in open. multiprotocol_ids ( ) . zip (
@@ -1086,8 +1068,8 @@ mod tests {
1086
1068
1087
1069
assert_eq ! ( open. capabilities( ) . count( ) , 1 ) ;
1088
1070
assert ! ( open. addpath_families_vec( ) . unwrap( ) . iter( ) . eq(
1089
- & [ ( AfiSafi :: Ipv4Unicast , AddpathDirection :: SendReceive ) ,
1090
- ( AfiSafi :: Ipv6Unicast , AddpathDirection :: SendReceive ) ]
1071
+ & [ ( AfiSafiType :: Ipv4Unicast , AddpathDirection :: SendReceive ) ,
1072
+ ( AfiSafiType :: Ipv6Unicast , AddpathDirection :: SendReceive ) ]
1091
1073
)
1092
1074
) ;
1093
1075
}
@@ -1111,8 +1093,8 @@ mod tests {
1111
1093
1112
1094
assert_eq ! ( open. capabilities( ) . count( ) , 2 ) ;
1113
1095
assert ! ( open. addpath_families_vec( ) . unwrap( ) . iter( ) . eq(
1114
- & [ ( AfiSafi :: Ipv4Unicast , AddpathDirection :: SendReceive ) ,
1115
- ( AfiSafi :: Ipv6Unicast , AddpathDirection :: SendReceive ) ]
1096
+ & [ ( AfiSafiType :: Ipv4Unicast , AddpathDirection :: SendReceive ) ,
1097
+ ( AfiSafiType :: Ipv6Unicast , AddpathDirection :: SendReceive ) ]
1116
1098
)
1117
1099
) ;
1118
1100
}
@@ -1127,8 +1109,8 @@ mod builder {
1127
1109
open. set_holdtime ( 180 ) ;
1128
1110
open. set_bgp_id ( [ 1 , 2 , 3 , 4 ] ) ;
1129
1111
1130
- open. add_mp ( AfiSafi :: Ipv4Unicast ) ;
1131
- open. add_mp ( AfiSafi :: Ipv6Unicast ) ;
1112
+ open. add_mp ( AfiSafiType :: Ipv4Unicast ) ;
1113
+ open. add_mp ( AfiSafiType :: Ipv6Unicast ) ;
1132
1114
1133
1115
let res = open. into_message ( ) ;
1134
1116
@@ -1142,8 +1124,8 @@ mod builder {
1142
1124
open. set_holdtime ( 180 ) ;
1143
1125
open. set_bgp_id ( [ 1 , 2 , 3 , 4 ] ) ;
1144
1126
1145
- open. add_mp ( AfiSafi :: Ipv4Unicast ) ;
1146
- open. add_mp ( AfiSafi :: Ipv6Unicast ) ;
1127
+ open. add_mp ( AfiSafiType :: Ipv4Unicast ) ;
1128
+ open. add_mp ( AfiSafiType :: Ipv6Unicast ) ;
1147
1129
1148
1130
let res = open. into_message ( ) ;
1149
1131
@@ -1157,10 +1139,10 @@ mod builder {
1157
1139
open. set_holdtime ( 180 ) ;
1158
1140
open. set_bgp_id ( [ 1 , 2 , 3 , 4 ] ) ;
1159
1141
1160
- open. add_mp ( AfiSafi :: Ipv4Unicast ) ;
1161
- open. add_mp ( AfiSafi :: Ipv6Unicast ) ;
1162
- open. add_addpath ( AfiSafi :: Ipv4Unicast , AddpathDirection :: SendReceive ) ;
1163
- open. add_addpath ( AfiSafi :: Ipv6Unicast , AddpathDirection :: SendReceive ) ;
1142
+ open. add_mp ( AfiSafiType :: Ipv4Unicast ) ;
1143
+ open. add_mp ( AfiSafiType :: Ipv6Unicast ) ;
1144
+ open. add_addpath ( AfiSafiType :: Ipv4Unicast , AddpathDirection :: SendReceive ) ;
1145
+ open. add_addpath ( AfiSafiType :: Ipv6Unicast , AddpathDirection :: SendReceive ) ;
1164
1146
1165
1147
let res = open. into_message ( ) ;
1166
1148
0 commit comments