隧道链接改成标准URI格式

This commit is contained in:
2026-07-11 22:28:50 +08:00
parent 053450429c
commit 314f90b5f3
66 changed files with 1578 additions and 1506 deletions
+33 -21
View File
@@ -46,6 +46,8 @@ import org.kne.cloud.network.ipv6.PostcardEntry;
import org.kne.cloud.network.ipv6.RouteItem;
import org.kne.cloud.network.klalb.KLALBRemoteLink;
import org.kne.cloud.network.klalb.KLALBUtils;
import org.kne.cloud.network.klalb.PerformanceStrategy;
import org.kne.cloud.network.klalb.ui.PerformanceStrategyItem;
import org.kne.concurrent.HighPerformanceExecutor2;
import org.kne.concurrent.TimeoutConcurrentHashMap;
import org.pcap4j.packet.IllegalRawDataException;
@@ -62,6 +64,8 @@ public class SRv6Router {
private static final int IPv6_BITS = 128; // IPv6地址位数
private PerformanceStrategy performanceStrategy=PerformanceStrategy.MULTI_FILL;
/*private TimeoutConcurrentHashMap<FlowSession, PacketIDGenerator> flowIDmap = new TimeoutConcurrentHashMap<FlowSession, PacketIDGenerator>(
60000000000L);
*/
@@ -161,6 +165,14 @@ public class SRv6Router {
};
public void setPerformanceStrategy(PerformanceStrategy performanceStrategy) {
this.performanceStrategy=performanceStrategy;
}
public PerformanceStrategy getPerformanceStrategy(){
return performanceStrategy;
}
// 链路状态监听器实现
private class LinkListener implements IPv6LinkStateListener {
@@ -765,44 +777,44 @@ public class SRv6Router {
//private static HighPerformanceExecutor2 defaultExecutor = new HighPerformanceExecutor2(4, Thread.ofVirtual().name("SRv6 Routing").factory());
public static HighPerformanceExecutor2 getDefaultExecutor() {
/*public static HighPerformanceExecutor2 getDefaultExecutor() {
return defaultExecutor;
}
}*/
// private ArrayBlockingQueue<Supplier<IPv6Packet>> packetQueue=new
// ArrayBlockingQueue<>(10000);
public void enqueuePacketSendTask(Supplier<IPv6Packet> sendTask) {
// packetQueue.add(object);
defaultExecutor.executeWithCongestionReport((state) -> {
try {
long start=System.nanoTime();
IPv6Packet packet=sendTask.get();
if(state) {
packet.markCE();
}
insertSRHandRoutePacket(null, packet); // 插入SRH并路由
long time=System.nanoTime()-start;
backplaneCount(time,state);
} catch (Exception e) {
e.printStackTrace();
}
},20);
switch(performanceStrategy) {
case SINGLE_CORE:
runPacketSendTask0(sendTask, false);
break;
case MULTI_FILL:
case MULTI_SCATTER:
defaultExecutor.executeWithCongestionReport((state) -> {
runPacketSendTask0(sendTask, state);
}, 20,performanceStrategy);
break;
}
}
public void runPacketSendTask(Supplier<IPv6Packet> sendTask) {
public void runPacketSendTask0(Supplier<IPv6Packet> sendTask,boolean ecn) {
try {
boolean state=false;
long start=System.nanoTime();
IPv6Packet packet=sendTask.get();
if(state) {
if(ecn) {
packet.markCE();
}
insertSRHandRoutePacket(null, packet); // 插入SRH并路由
long time=System.nanoTime()-start;
backplaneCount(time,state);
backplaneCount(time,ecn);
} catch (Exception e) {
e.printStackTrace();
}
}
public void runPacketSendTask(Supplier<IPv6Packet> sendTask) {
runPacketSendTask0(sendTask,false);
}
public void onReceive(IPv6NetworkLink link,IPv6Packet t){
if (unduplicate(t)) {
@@ -824,7 +836,7 @@ public class SRv6Router {
} catch (Exception e) {
e.printStackTrace();
}
},20);
},20,performanceStrategy);
}
public void enqueuePacket(IPv6Packet packet) {