MCPcopy
hub / github.com/osrg/gobgp / safi

Method safi

pkg/zebra/zapi.go:2608–2632  ·  view source on GitHub ↗
(logger *slog.Logger, version uint8, software Software)

Source from the content-addressed store, hash-verified

2606}
2607
2608func (b *IPRouteBody) safi(logger *slog.Logger, version uint8, software Software) Safi {
2609 // frr 7.2 and later versions have safiUnspec, older versions don't have safiUnspec
2610 if b.Safi == safiUnspec && (version < 6 ||
2611 version == 6 && software.name == "frr" && software.version < 7.2) {
2612 return SafiUnicast // safiUnspec is regarded as safiUnicast in older versions
2613 }
2614 if b.Safi <= safiMulticast || version > 4 { // not need to convert
2615 return b.Safi
2616 }
2617 safiMap := zapi4SafiMap
2618 if version < 4 {
2619 safiMap = zapi3SafiMap
2620 }
2621 safi, ok := safiMap[b.Safi]
2622 if !ok {
2623 safi = safiUnspec // failed to convert
2624 }
2625 logger.Debug("zebra converts safi",
2626 slog.String("Topic", "Zebra"),
2627 slog.Any("Body", b),
2628 slog.String("Old", b.Safi.String()),
2629 slog.String("New", safi.String()),
2630 )
2631 return safi // success to convert
2632}
2633
2634// Family is referred in zclient
2635func (b *IPRouteBody) Family(logger *slog.Logger, version uint8, software Software) bgp.Family {

Callers 1

FamilyMethod · 0.95

Calls 1

StringMethod · 0.65

Tested by

no test coverage detected