+ private void updateInterfaceState(Interface interf, NodeConnector nodeConn) {
+ /* Update InterfaceState
+ * 1. Get interfaces-state Identifier
+ * 2. Add interface to interfaces-state/interface
+ * 3. Get interface-id from id manager
+ * 4. Update interface-state with following:
+ * admin-status = set to enable value
+ * oper-status = Down [?]
+ * if-index = interface-id
+ */
+ InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> id =
+ buildStateInterfaceId(interf.getName());
+ Optional<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> stateIf =
+ read(LogicalDatastoreType.OPERATIONAL, id);
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface stateIface;
+ if(!stateIf.isPresent()) {
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder ifaceBuilder = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder();
+ // TODO: Get interface-id from IdManager
+ ifaceBuilder.setAdminStatus((interf.isEnabled()) ? org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.AdminStatus.Up :
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.AdminStatus.Down);
+ ifaceBuilder.setOperStatus(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus.Down);
+ ifaceBuilder.setIfIndex(200).setName(interf.getName()).setType(interf.getType());
+ ifaceBuilder.setKey(getStateInterfaceKeyFromName(interf.getName()));
+ //ifaceBuilder.setStatistics(createStatistics(interf.getName(), nodeConn));
+ stateIface = ifaceBuilder.build();
+ LOG.trace("updating OPERATIONAL data store with stateIface {} and id {}", stateIface, id);
+ asyncWrite(LogicalDatastoreType.OPERATIONAL, id, stateIface, DEFAULT_CALLBACK);
+ }
+ }
+
+ private Statistics createStatistics(String name, NodeConnector nodeConn) {
+ Counter64 init64 = new Counter64(new BigInteger("0000000000000000"));
+ Counter32 init32 = new Counter32((long) 0);
+ StatisticsBuilder statBuilder = new StatisticsBuilder();
+ statBuilder.setDiscontinuityTime(new DateAndTime("2015-04-04T00:00:00Z"))
+ .setInBroadcastPkts(init64).setInDiscards(init32).setInErrors(init32).setInMulticastPkts(init64)
+ .setInOctets(init64).setInUnicastPkts(init64).setInUnknownProtos(init32).setOutBroadcastPkts(init64)
+ .setOutDiscards(init32).setOutErrors(init32).setOutMulticastPkts(init64).setOutOctets(init64)
+ .setOutUnicastPkts(init64);
+ return statBuilder.build();
+ }
+
+ private org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceKey getStateInterfaceKeyFromName(
+ String name) {
+ return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceKey(name);