KLALB 3.6.0开发一半的状态

This commit is contained in:
2026-07-06 17:03:27 +08:00
parent 620afef715
commit c8b183da71
90 changed files with 1963 additions and 3757 deletions
@@ -2,22 +2,15 @@ package org.kne.cloud.network.srv6;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.BindException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.net.SocketException;
import java.nio.channels.Channels;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -30,11 +23,10 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import org.kne.cloud.network.ByteBufferAllocator;
import org.kne.cloud.network.ipv6.IPv6Address;
import org.kne.cloud.network.ipv6.IPv6NetworkLink;
import org.kne.cloud.network.ipv6.IPv6Packet.IPv6SegmentRoutingHeader;
import org.kne.cloud.network.ipv6.IPv6AddressGroup;
import org.kne.cloud.network.ipv6.Neighbor;
import org.kne.cloud.network.klalb.KLALBVirtualRawSocket;
@@ -43,10 +35,7 @@ import org.kne.cloud.network.monitor.MonitorData;
import org.kne.cloud.network.monitor.SpeedAndTrafficAndDelayMonitorDataImpl;
import org.kne.cloud.network.monitor.SpeedAndTrafficMonitorData;
import org.kne.cloud.network.monitor.SpeedAndTrafficMonitorDataImpl;
import org.kne.cloud.network.scanner.InetAddressRange;
import org.kne.cloud.network.te.BandwidthDistributer;
import com.google.gson.internal.Pair;
import org.kne.membandboost.MembandBoost;
public class KLALBRoutingProtocol extends Thread{
@@ -218,7 +207,7 @@ public class KLALBRoutingProtocol extends Thread{
while(true) {
try {
byte[]ca=ByteBufferAllocator.allocateUninitializedArray(65535);
byte[]ca=MembandBoost.allocateUninitializedArray(65535);
DatagramPacket dgp=new DatagramPacket(ca, ca.length);
ds.receive(dgp);
//System.out.println(Arrays.toString( Arrays.copyOf( dgp.getData(),dgp.getLength())));
@@ -609,7 +598,7 @@ public class KLALBRoutingProtocol extends Thread{
public Map<IPv6Address, List<LinkDirection>> getPaths() {
return paths;
}
public List<IPv6Address> createSegmentList(IPv6Address dest) {
public IPv6SegmentRoutingHeader createSegmentList(IPv6Address dest) {
NetmapDirections directionsx=directions;
if(directionsx==null) {
return null;
@@ -618,14 +607,16 @@ public class KLALBRoutingProtocol extends Thread{
if(dn==null) {
return null;
}
List<IPv6Address>segments=new ArrayList<>();
IPv6SegmentRoutingHeader segs=new IPv6SegmentRoutingHeader();
List<IPv6Address>segments=segs.getAddresses();
while(true) {
long idx=directionsx.getDirection()[(int) dn.longValue()];
if(idx==-1) {
return null;
}
if(idx==dn) {
return segments;
segs. resetSegmentPos();
return segs;
}
segments.add(directionsx.getDirection_rias().get(dn.intValue()));
dn=idx;