@@ -515,7 +515,7 @@ static int ecommunity_encode_internal(uint8_t type, uint8_t sub_type,
515
515
/* Fill in the values. */
516
516
eval -> val [0 ] = type ;
517
517
if (!trans )
518
- eval -> val [0 ] |= ECOMMUNITY_FLAG_NON_TRANSITIVE ;
518
+ SET_FLAG ( eval -> val [0 ], ECOMMUNITY_FLAG_NON_TRANSITIVE ) ;
519
519
eval -> val [1 ] = sub_type ;
520
520
if (type == ECOMMUNITY_ENCODE_AS ) {
521
521
encode_route_target_as (as , val , eval , trans );
@@ -1293,11 +1293,12 @@ char *ecommunity_ecom2str(struct ecommunity *ecom, int format, int filter)
1293
1293
== ECOMMUNITY_EVPN_SUBTYPE_ESI_LABEL ) {
1294
1294
uint8_t flags = * ++ pnt ;
1295
1295
1296
- snprintf (encbuf ,
1297
- sizeof (encbuf ), "ESI-label-Rt:%s" ,
1298
- (flags &
1299
- ECOMMUNITY_EVPN_SUBTYPE_ESI_SA_FLAG ) ?
1300
- "SA" :"AA" );
1296
+ snprintf (encbuf , sizeof (encbuf ),
1297
+ "ESI-label-Rt:%s" ,
1298
+ CHECK_FLAG (flags ,
1299
+ ECOMMUNITY_EVPN_SUBTYPE_ESI_SA_FLAG )
1300
+ ? "SA"
1301
+ : "AA" );
1301
1302
} else if (* pnt
1302
1303
== ECOMMUNITY_EVPN_SUBTYPE_DF_ELECTION ) {
1303
1304
uint8_t alg ;
@@ -1337,38 +1338,37 @@ char *ecommunity_ecom2str(struct ecommunity *ecom, int format, int filter)
1337
1338
char buf [ECOMMUNITY_STRLEN ];
1338
1339
1339
1340
memset (buf , 0 , sizeof (buf ));
1340
- ecommunity_rt_soo_str_internal (buf , sizeof (buf ),
1341
- (const uint8_t * )pnt ,
1342
- type &
1343
- ~ECOMMUNITY_ENCODE_TRANS_EXP ,
1344
- ECOMMUNITY_ROUTE_TARGET ,
1345
- format ,
1346
- ecom -> unit_size );
1341
+ ecommunity_rt_soo_str_internal (
1342
+ buf , sizeof (buf ), (const uint8_t * )pnt ,
1343
+ CHECK_FLAG (type ,
1344
+ ~ECOMMUNITY_ENCODE_TRANS_EXP ),
1345
+ ECOMMUNITY_ROUTE_TARGET , format ,
1346
+ ecom -> unit_size );
1347
1347
snprintf (encbuf , sizeof (encbuf ), "%s" , buf );
1348
1348
} else if (sub_type ==
1349
1349
ECOMMUNITY_FLOWSPEC_REDIRECT_IPV6 ) {
1350
1350
char buf [64 ];
1351
1351
1352
1352
memset (buf , 0 , sizeof (buf ));
1353
- ecommunity_rt_soo_str_internal (buf , sizeof ( buf ),
1354
- (const uint8_t * )pnt ,
1355
- type &
1356
- ~ECOMMUNITY_ENCODE_TRANS_EXP ,
1357
- ECOMMUNITY_ROUTE_TARGET ,
1358
- ECOMMUNITY_FORMAT_DISPLAY ,
1359
- ecom -> unit_size );
1353
+ ecommunity_rt_soo_str_internal (
1354
+ buf , sizeof ( buf ), (const uint8_t * )pnt ,
1355
+ CHECK_FLAG ( type ,
1356
+ ~ECOMMUNITY_ENCODE_TRANS_EXP ) ,
1357
+ ECOMMUNITY_ROUTE_TARGET ,
1358
+ ECOMMUNITY_FORMAT_DISPLAY ,
1359
+ ecom -> unit_size );
1360
1360
snprintf (encbuf , sizeof (encbuf ),
1361
1361
"FS:redirect VRF %s" , buf );
1362
1362
} else if (sub_type == ECOMMUNITY_REDIRECT_VRF ) {
1363
1363
char buf [16 ];
1364
1364
1365
1365
memset (buf , 0 , sizeof (buf ));
1366
- ecommunity_rt_soo_str (buf , sizeof ( buf ),
1367
- (const uint8_t * )pnt ,
1368
- type &
1369
- ~ECOMMUNITY_ENCODE_TRANS_EXP ,
1370
- ECOMMUNITY_ROUTE_TARGET ,
1371
- ECOMMUNITY_FORMAT_DISPLAY );
1366
+ ecommunity_rt_soo_str (
1367
+ buf , sizeof ( buf ), (const uint8_t * )pnt ,
1368
+ CHECK_FLAG ( type ,
1369
+ ~ECOMMUNITY_ENCODE_TRANS_EXP ) ,
1370
+ ECOMMUNITY_ROUTE_TARGET ,
1371
+ ECOMMUNITY_FORMAT_DISPLAY );
1372
1372
snprintf (encbuf , sizeof (encbuf ),
1373
1373
"FS:redirect VRF %s" , buf );
1374
1374
snprintf (encbuf , sizeof (encbuf ),
@@ -1640,12 +1640,13 @@ int ecommunity_fill_pbr_action(struct ecommunity_val *ecom_eval,
1640
1640
} else if (ecom_eval -> val [1 ] == ECOMMUNITY_TRAFFIC_ACTION ) {
1641
1641
api -> action = ACTION_TRAFFIC_ACTION ;
1642
1642
/* else distribute code is set by default */
1643
- if (ecom_eval -> val [5 ] & (1 << FLOWSPEC_TRAFFIC_ACTION_TERMINAL ))
1644
- api -> u .za .filter |= TRAFFIC_ACTION_TERMINATE ;
1643
+ if (CHECK_FLAG (ecom_eval -> val [5 ],
1644
+ (1 << FLOWSPEC_TRAFFIC_ACTION_TERMINAL )))
1645
+ SET_FLAG (api -> u .za .filter , TRAFFIC_ACTION_TERMINATE );
1645
1646
else
1646
- api -> u .za .filter |= TRAFFIC_ACTION_DISTRIBUTE ;
1647
+ SET_FLAG ( api -> u .za .filter , TRAFFIC_ACTION_DISTRIBUTE ) ;
1647
1648
if (ecom_eval -> val [5 ] == 1 << FLOWSPEC_TRAFFIC_ACTION_SAMPLE )
1648
- api -> u .za .filter |= TRAFFIC_ACTION_SAMPLE ;
1649
+ SET_FLAG ( api -> u .za .filter , TRAFFIC_ACTION_SAMPLE ) ;
1649
1650
1650
1651
} else if (ecom_eval -> val [1 ] == ECOMMUNITY_TRAFFIC_MARKING ) {
1651
1652
api -> action = ACTION_MARKING ;
@@ -1940,7 +1941,7 @@ struct ecommunity *ecommunity_replace_linkbw(as_t as, struct ecommunity *ecom,
1940
1941
return new ;
1941
1942
1942
1943
type = * eval ;
1943
- if (type & ECOMMUNITY_FLAG_NON_TRANSITIVE )
1944
+ if (CHECK_FLAG ( type , ECOMMUNITY_FLAG_NON_TRANSITIVE ) )
1944
1945
return new ;
1945
1946
1946
1947
/* Transitive link-bandwidth exists, replace with the passed
0 commit comments