code: protected void removeRoute(int dpc, int opc, int si, String asName) 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) {
              throw new Exception(String.format("No AS=%s configured  for dpc=%d opc=%d si=%d", asImpl.getName(), dpc, opc, si));
          }
  
          asArray.removeRoute(dpc, opc, si, asImpl);
          this.removeAsFromDPC(dpc, asImpl);
  
          //Final check to remove RouteAs
          if(!asArray.hasAs()){
              route.remove(key);
          }
  
          this.m3uaManagement.store();
      }
docs: Removes the {@link AsImpl} from key (combination of DPC:OPC:Si)
  
  @param dpc
  @param opc
  @param si
  @param asName
  @throws Exception If no As found, or this As is not serving this key