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

Method reload

internal/pkg/table/policy.go:4126–4247  ·  view source on GitHub ↗
(c oc.RoutingPolicy)

Source from the content-addressed store, hash-verified

4124}
4125
4126func (r *RoutingPolicy) reload(c oc.RoutingPolicy) error {
4127 dmap := make(map[DefinedType]map[string]DefinedSet)
4128 dmap[DEFINED_TYPE_PREFIX] = make(map[string]DefinedSet)
4129 d := c.DefinedSets
4130 for _, x := range d.PrefixSets {
4131 y, err := NewPrefixSet(x)
4132 if err != nil {
4133 return err
4134 }
4135 if y == nil {
4136 return fmt.Errorf("empty prefix set")
4137 }
4138 dmap[DEFINED_TYPE_PREFIX][y.Name()] = y
4139 }
4140 dmap[DEFINED_TYPE_NEIGHBOR] = make(map[string]DefinedSet)
4141 for _, x := range d.NeighborSets {
4142 y, err := NewNeighborSet(x)
4143 if err != nil {
4144 return err
4145 }
4146 if y == nil {
4147 return fmt.Errorf("empty neighbor set")
4148 }
4149 dmap[DEFINED_TYPE_NEIGHBOR][y.Name()] = y
4150 }
4151 // dmap[DEFINED_TYPE_TAG] = make(map[string]DefinedSet)
4152 // for _, x := range c.DefinedSets.TagSets{
4153 // y, err := NewTagSet(x)
4154 // if err != nil {
4155 // return nil, err
4156 // }
4157 // dmap[DEFINED_TYPE_TAG][y.Name()] = y
4158 // }
4159 bd := c.DefinedSets.BgpDefinedSets
4160 dmap[DEFINED_TYPE_AS_PATH] = make(map[string]DefinedSet)
4161 for _, x := range bd.AsPathSets {
4162 y, err := NewAsPathSet(x)
4163 if err != nil {
4164 return err
4165 }
4166 if y == nil {
4167 return fmt.Errorf("empty as path set")
4168 }
4169 dmap[DEFINED_TYPE_AS_PATH][y.Name()] = y
4170 }
4171 dmap[DEFINED_TYPE_COMMUNITY] = make(map[string]DefinedSet)
4172 for _, x := range bd.CommunitySets {
4173 y, err := NewCommunitySet(x)
4174 if err != nil {
4175 return err
4176 }
4177 if y == nil {
4178 return fmt.Errorf("empty community set")
4179 }
4180 dmap[DEFINED_TYPE_COMMUNITY][y.Name()] = y
4181 }
4182 dmap[DEFINED_TYPE_EXT_COMMUNITY] = make(map[string]DefinedSet)
4183 for _, x := range bd.ExtCommunitySets {

Calls 10

validateConditionMethod · 0.95
setDefaultPolicyMethod · 0.95
NewPrefixSetFunction · 0.85
NewNeighborSetFunction · 0.85
NewAsPathSetFunction · 0.85
NewCommunitySetFunction · 0.85
NewExtCommunitySetFunction · 0.85
NewLargeCommunitySetFunction · 0.85
NewPolicyFunction · 0.85
NameMethod · 0.65