code: protected void addRoute(int dpc, int opc, int si, String asName, int traffmode) throws Exception {
          AsImpl asImpl = null;
          for (FastList.Node<As> n = this.m3uaManagement.appServers.head(), end = this.m3uaManagement.appServers.tail(); (n = n
                  .getNext()) != end;) {
              if (n.getValue().getName().compareTo(asName) == 0) {
                  asImpl = (AsImpl) n.getValue();
                  break;
              }
          }
  
          if (asImpl == null) {
              throw new Exception(String.format(M3UAOAMMessages.NO_AS_FOUND, asName));
          }
  
          String key = (new StringBuffer().append(dpc).append(KEY_SEPARATOR).append(opc).append(KEY_SEPARATOR).append(si))
                  .toString();
  
          RouteAsImpl asArray = route.get(key);
  
          if (asArray == null) {
              asArray = new RouteAsImpl();
              asArray.setTrafficModeType(new TrafficModeTypeImpl(traffmode));
              route.put(key, asArray);
              asArray.setM3uaManagement(this.m3uaManagement);
          }
  
          asArray.addRoute(dpc, opc, si, asImpl, traffmode);
  
          this.addAsToDPC(dpc, asImpl);
  
      }
docs: Creates key (combination of dpc:opc:si) and adds instance of {@link AsImpl} represented by asName as route for this key
  
  @param dpc
  @param opc
  @param si
  @param asName
  @throws Exception If corresponding {@link AsImpl} doesn't exist or {@link AsImpl} already added