(rd bgp.RouteDistinguisherInterface)
| 502 | } |
| 503 | |
| 504 | func 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 | |
| 528 | func UnmarshalRD(rd *api.RouteDistinguisher) (bgp.RouteDistinguisherInterface, error) { |
| 529 | switch v := rd.GetRd().(type) { |
searching dependent graphs…