- OperStatus operStatus = ifState.getOperStatus();
- AdminStatus adminStatus = ifState.getAdminStatus();
- PhysAddress physAddress = ifState.getPhysAddress();
-
- if (!interfaceNew.isEnabled()) {
- operStatus = OperStatus.Down;
- }
-
- InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> ifStateId =
- IfmUtil.buildStateInterfaceId(interfaceNew.getName());
- List<String> lowerLayerIfList = new ArrayList<>();
- lowerLayerIfList.add(ifState.getLowerLayerIf().get(0));
- //lowerLayerIfList.add(parentRefs.getParentInterface());
- Integer ifIndex = IfmUtil.allocateId(idManager, IfmConstants.IFM_IDPOOL_NAME, interfaceNew.getName());
- InterfaceBuilder ifaceBuilder = new InterfaceBuilder().setAdminStatus(adminStatus).setOperStatus(operStatus)
- .setPhysAddress(physAddress).setLowerLayerIf(lowerLayerIfList).setIfIndex(ifIndex);
- ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(interfaceNew.getName()));
- t.put(LogicalDatastoreType.OPERATIONAL, ifStateId, ifaceBuilder.build(), true);
-
- // create lportTag Interface Map
- InterfaceMetaUtils.createLportTagInterfaceMap(t, interfaceNew.getName(), ifIndex);
- //Installing vlan flow for vlan member
- NodeConnectorId nodeConnectorId = new NodeConnectorId(ifState.getLowerLayerIf().get(0));
- BigInteger dpId = new BigInteger(IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId));
- long portNo = Long.valueOf(IfmUtil.getPortNoFromNodeConnectorId(nodeConnectorId));
- if (operStatus == OperStatus.Up) {
- List<MatchInfo> matches = FlowBasedServicesUtils.getMatchInfoForVlanPortAtIngressTable(dpId, portNo, interfaceNew);
- FlowBasedServicesUtils.installVlanFlow(dpId, portNo, interfaceNew, t, matches, ifIndex);
- }
-
- // FIXME: Maybe, add the new interface to the higher-layer if of the parent interface-state.
- // That may not serve any purpose though for interface manager.... Unless some external parties are interested in it.
-
- /* FIXME -- Below code is needed to add vlan-trunks to the of-port. Is this really needed.
- String lowerLayerIf = ifState.getLowerLayerIf().get(0);
-
- NodeConnectorId nodeConnectorId = new NodeConnectorId(lowerLayerIf);
- BigInteger dpId = new BigInteger(IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId));
-
- BridgeRefEntryKey BridgeRefEntryKey = new BridgeRefEntryKey(dpId);
- InstanceIdentifier<BridgeRefEntry> dpnBridgeEntryIid =
- InterfaceMetaUtils.getBridgeRefEntryIdentifier(BridgeRefEntryKey);
- BridgeRefEntry bridgeRefEntry =
- InterfaceMetaUtils.getBridgeRefEntryFromOperDS(dpnBridgeEntryIid, dataBroker);
- if (bridgeRefEntry != null) {
- InstanceIdentifier<OvsdbBridgeAugmentation> bridgeIid =
- (InstanceIdentifier<OvsdbBridgeAugmentation>)bridgeRefEntry.getBridgeReference().getValue();
- Optional<OvsdbBridgeAugmentation> bridgeNodeOptional =
- IfmUtil.read(LogicalDatastoreType.OPERATIONAL, bridgeIid, dataBroker);
- if (bridgeNodeOptional.isPresent()) {
- OvsdbBridgeAugmentation ovsdbBridgeAugmentation = bridgeNodeOptional.get();
- String bridgeName = ovsdbBridgeAugmentation.getBridgeName().getValue();
- VlanTrunkSouthboundUtils.addVlanPortToBridge(bridgeIid, ifL2vlan,
- ovsdbBridgeAugmentation, bridgeName, parentRefs.getParentInterface(), dataBroker, t);
- }
- } */
- // FIXME: Need to add the Group here with actions: Push-Vlan, output_port. May not be needed here...