| 4124 | } |
| 4125 | |
| 4126 | func (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 { |