From e090609b146fdde93714e966aa8ec300b5842ba3 Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Mon, 11 Jul 2016 10:12:26 +0900 Subject: move gRPC-related code in vrf.go to grpc_server.go Signed-off-by: FUJITA Tomonori --- table/vrf.go | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'table') diff --git a/table/vrf.go b/table/vrf.go index 16e02ed4..c8fc2a16 100644 --- a/table/vrf.go +++ b/table/vrf.go @@ -1,4 +1,4 @@ -// Copyright (C) 2014 Nippon Telegraph and Telephone Corporation. +// Copyright (C) 2014-2016 Nippon Telegraph and Telephone Corporation. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,7 +16,6 @@ package table import ( - api "github.com/osrg/gobgp/api" "github.com/osrg/gobgp/packet/bgp" ) @@ -28,21 +27,26 @@ type Vrf struct { LabelMap map[string]uint32 } -func (v *Vrf) ToApiStruct() *api.Vrf { - f := func(rts []bgp.ExtendedCommunityInterface) [][]byte { - ret := make([][]byte, 0, len(rts)) - for _, rt := range rts { - b, _ := rt.Serialize() - ret = append(ret, b) +func (v *Vrf) Clone() *Vrf { + f := func(rt []bgp.ExtendedCommunityInterface) []bgp.ExtendedCommunityInterface { + l := make([]bgp.ExtendedCommunityInterface, 0, len(rt)) + for _, v := range rt { + l = append(l, v) } - return ret + return l } - rd, _ := v.Rd.Serialize() - return &api.Vrf{ + return &Vrf{ Name: v.Name, - Rd: rd, + Rd: v.Rd, ImportRt: f(v.ImportRt), ExportRt: f(v.ExportRt), + LabelMap: func() map[string]uint32 { + m := make(map[string]uint32) + for k, v := range v.LabelMap { + m[k] = v + } + return m + }(), } } -- cgit v1.2.3