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

Function MarshalRD

pkg/apiutil/attribute.go:504–526  ·  view source on GitHub ↗
(rd bgp.RouteDistinguisherInterface)

Source from the content-addressed store, hash-verified

502}
503
504func MarshalRD(rd bgp.RouteDistinguisherInterface) (*api.RouteDistinguisher, error) {
505 var r api.RouteDistinguisher
506 switch v := rd.(type) {
507 case *bgp.RouteDistinguisherTwoOctetAS:
508 r.Rd = &api.RouteDistinguisher_TwoOctetAsn{TwoOctetAsn: &api.RouteDistinguisherTwoOctetASN{
509 Admin: uint32(v.Admin),
510 Assigned: v.Assigned,
511 }}
512 case *bgp.RouteDistinguisherIPAddressAS:
513 r.Rd = &api.RouteDistinguisher_IpAddress{IpAddress: &api.RouteDistinguisherIPAddress{
514 Admin: v.Admin.String(),
515 Assigned: uint32(v.Assigned),
516 }}
517 case *bgp.RouteDistinguisherFourOctetAS:
518 r.Rd = &api.RouteDistinguisher_FourOctetAsn{FourOctetAsn: &api.RouteDistinguisherFourOctetASN{
519 Admin: v.Admin,
520 Assigned: uint32(v.Assigned),
521 }}
522 default:
523 return nil, fmt.Errorf("invalid rd type to marshal: %v", rd)
524 }
525 return &r, nil
526}
527
528func UnmarshalRD(rd *api.RouteDistinguisher) (bgp.RouteDistinguisherInterface, error) {
529 switch v := rd.GetRd().(type) {

Callers 5

ListVrfMethod · 0.92
addVrfFunction · 0.92
InitialConfigFunction · 0.92
modVrfFunction · 0.92
MarshalNLRIFunction · 0.85

Calls 1

StringMethod · 0.65

Tested by 1

addVrfFunction · 0.74

Used in the wild real call sites across dependent graphs

searching dependent graphs…