2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow;
11 import java.util.Collections;
12 import java.util.HashMap;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.GroupTable.BucketCtx;
17 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.GroupTable.GroupCtx;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.Endpoint;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.ofoverlay.rev140528.OfOverlayNodeConfigBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
27 import com.google.common.base.Objects;
29 import static org.junit.Assert.*;
31 public class GroupTableTest extends OfTableTest {
32 protected static final Logger LOG =
33 LoggerFactory.getLogger(GroupTableTest.class);
37 NodeConnectorId tunnelId =
38 new NodeConnectorId(nodeId.getValue() + ":42");
39 NodeConnectorId remoteTunnelId =
40 new NodeConnectorId(remoteNodeId.getValue() + ":101");
43 public void setup() throws Exception {
45 table = new GroupTable(ctx);
49 public void testGroup() throws Exception {
50 Endpoint localEp = localEP().build();
51 endpointManager.addEndpoint(localEp);
52 Endpoint remoteEp = remoteEP(remoteNodeId).build();
53 endpointManager.addEndpoint(remoteEp);
55 switchManager.addSwitch(nodeId, tunnelId,
56 Collections.<NodeConnectorId>emptySet(),
57 new OfOverlayNodeConfigBuilder()
58 .setTunnelIp(new IpAddress(new Ipv4Address("1.2.3.4")))
60 switchManager.addSwitch(remoteNodeId, remoteTunnelId,
61 Collections.<NodeConnectorId>emptySet(),
62 new OfOverlayNodeConfigBuilder()
63 .setTunnelIp(new IpAddress(new Ipv4Address("1.2.3.5")))
66 policyResolver.addTenant(baseTenant().build());
68 HashMap<GroupId, GroupCtx> groupMap = new HashMap<>();
69 table.sync(nodeId, ctx.getPolicyResolver().getCurrentPolicy(),
72 assertEquals(1, groupMap.size());
73 int fdId = ctx.getPolicyManager().getContextOrdinal(tid, fd);
74 GroupCtx ctx = groupMap.get(new GroupId(Long.valueOf(fdId)));
77 (long)policyManager.getContextOrdinal(remoteNodeId.getValue());
78 tunBucketId |= 1L << 31;
81 for (BucketCtx bctx : ctx.bucketMap.values()) {
82 if (Objects.equal(Long.valueOf(4),
83 bctx.newb.getBucketId().getValue())) {
85 } else if (Objects.equal(Long.valueOf(tunBucketId),
86 bctx.newb.getBucketId().getValue())) {
91 assertEquals(2, count);