Uploaded image for project: 'genius'
  1. genius
  2. GENIUS-280

Centralize node identifier parsing

    XMLWordPrintable

Details

    • Improvement
    • Status: In Review
    • Medium
    • Resolution: Unresolved
    • None
    • None
    • mdsalutils
    • None

    Description

      There are currently 14 places which are splitting a String on ':' and do something with it – usually extracting DPN/DPID. All of this is done though String.split(), which is massively inefficient:

      ./itm/itm-impl/src/main/java/org/opendaylight/genius/itm/rpc/ItmManagerRpcService.java:                String[] nodeId = node.getId().getValue().split(":");
      ./itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTepInstanceRecoveryHandler.java:        String[] params = entityId.split(":");
      ./interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/listeners/FlowBasedServicesNodeStateListener.java:        final String[] node =  id.getId().getValue().split(":");
      ./interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/pmcounters/NodeConnectorStatsImpl.java:        String dpId = nodeId.getValue().split(":")[1];
      ./interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/pmcounters/NodeConnectorStatsImpl.java:            String dpId = nodeId.getValue().split(":")[1];
      ./fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/genius/fcapsapp/performancecounter/PacketInCounterHandler.java:        String[] nodeNo = id.split(":");
      ./fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/genius/fcapsapp/performancecounter/PacketInCounterHandler.java:            dpnId = dpnId.split(":")[1];
      ./fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/genius/fcapsapp/performancecounter/FlowNodeConnectorInventoryTranslatorImpl.java:        String[] switchId = node.split(":");
      ./networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/VniUtilsImpl.java:            String[] configureVniRangeSplit = configureVniRange.split(":");
      ./networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/RDUtilsImpl.java:        String[] configureRDSplit = NwConstants.RD_DEFAULT_LOW_VALUE.split(":");
      ./networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/RDUtilsImpl.java:            configureRDSplit = configuredRDStartValue.split(":");
      ./alivenessmonitor/alivenessmonitor-impl-protocols/src/main/java/org/opendaylight/genius/alivenessmonitor/protocols/internal/AbstractAlivenessProtocolHandler.java:        String[] addressPart = macAddress.split(":");
      ./ipv6util/api/src/main/java/org/opendaylight/genius/ipv6util/api/Ipv6Util.java:        String[] octets = target.split(":");
      ./mdsalutil/mdsalutil-impl/src/main/java/org/opendaylight/genius/mdsalutil/internal/MDSALManager.java:        String[] split = dpnString.split(":");
      

      Provide an explicitly-documented utility which will perform a split-and-parse operation, in the most efficient manner possible and migrate all appropriate callsites to use it.

      Attachments

        Issue Links

          # Subject Branch Project Status CR V

          Activity

            People

              apurba Apurba Mukherjee
              rovarga Robert Varga
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: