Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

### Changed

- Changed pretty much all names and created an executable main class.
- Fixed showpaths issues.
[#2](https://github.com/netsec-ethz/scion-java-multiping/pull/2)

## [0.1.0] - 2026-03-11

### Added

- Everything
[#1](https://github.com/netsec-ethz/scion-java-multiping/pull/1)


### Changed

Expand All @@ -33,11 +35,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

- Nothing

[Unreleased]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.6.1...HEAD
[0.6.1]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.1.0...v0.2.0
[Unreleased]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.1.0...HEAD
[0.2.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/v0.1.0...v0.0.1
[0.1.0]: https://github.com/netsec-ethz/scion-java-multiping/compare/init_root_commit...v0.1.0
53 changes: 27 additions & 26 deletions src/main/java/org/scion/cli/Cli.java
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,8 @@ private static void printUsageAddress() {
println("");
println("Flags:");
println(" -h, --help help for address");
println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)");
println(" --json Write the output as machine readable json");
// println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)");
// println(" --json Write the output as machine readable json");
println(" -l, --local ip Local IP address to listen on. (default invalid IP)");
println(" --sciond string SCION Daemon address. (default \"127.0.0.1:30255\")");
}
Expand Down Expand Up @@ -178,9 +178,9 @@ static void printUsagePing() {
println(" -h, --help help for ping");
// println(" -i, --interactive interactive mode");
println(" --interval duration time between packets (default 1s)");
println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)");
// println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)");
println(" -l, --local ip Local IP address to listen on. (default invalid IP)");
println(" --log.level string Console logging level verbosity (debug|info|error)");
// println(" --log.level string Console logging level verbosity (debug|info|error)");
// println(" --max-mtu choose the payload size such that the sent SCION
// packet including the SCION Header,");
// println(" SCMP echo header and payload are equal to the MTU
Expand All @@ -192,17 +192,17 @@ static void printUsagePing() {
// println(" the desired size must provide enough space for the
// required headers. This flag");
// println(" overrides the 'payload_size' flag.");
println(" --port <port Use specified local port");
println(" --port uint16 use specified local port");
println(
" -s, --payload-size uint number of bytes to be sent in addition to the SCION Header and SCMP echo header;");
println(
" the total size of the packet is still variable size due to the variable size of");
// println(" --refresh set refresh flag for path request");
println(" --sciond string SCION Daemon address. (default \"127.0.0.1:30255\")");
// println(" --sequence string Space separated list of hop predicates");
println(" --shim Start with SHIM enabled (default disabled).");
println(" --shim start with SHIM enabled (default disabled).");
println(" --timeout duration timeout per packet (default 1s)");
println(" --url url Use and resolve a url as destination address");
println(" --url url use and resolve a url as destination address");
}

static void printUsageTraceroute() {
Expand Down Expand Up @@ -234,13 +234,13 @@ static void printUsageTraceroute() {
// println(" --log.level string Console logging level verbosity
// (debug|info|error)");
// println(" --no-color disable colored output");
println(" --port <port> Use specified local port");
println(" --port uint16 use specified local port");
// println(" --refresh set refresh flag for path request");
println(" --sciond string SCION Daemon address. (default \"127.0.0.1:30255\")");
// println(" --sequence string Space separated list of hop predicates");
println(" --shim Start with SHIM enabled (default disabled).");
println(" --shim start with SHIM enabled (default disabled).");
println(" --timeout duration timeout per packet (default 1s)");
println(" --url url Use and resolve a url as destination address");
println(" --url url use and resolve a url as destination address");
}

static void printUsageShowpaths() {
Expand Down Expand Up @@ -275,29 +275,30 @@ static void printUsageShowpaths() {
println(" jpan-cli showpaths 1-ff00:0:110 --no-probe");
println("");
println("Flags:");
println(" --epic Enable EPIC.");
// println(" --epic Enable EPIC.");
println(" -e, --extended Show extended path meta data information");
println(
" --format string Specify the output format (human|json|yaml) (default \"human\")");
// println(
// " --format string Specify the output format (human|json|yaml) (default
// \"human\")");
println(" -h, --help help for showpaths");
println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)");
// println(" --isd-as isd-as The local ISD-AS to use. (default 0-0)");
println(" -l, --local ip Local IP address to listen on. (default invalid IP)");
println(" --log.level string Console logging level verbosity (debug|info|error)");
// println(" --log.level string Console logging level verbosity
// (debug|info|error)");
println(
" -m, --maxpaths int Maximum number of paths that are displayed (default 10)");
println(" --no-color disable colored output");
println(" --no-probe Do not probe the paths and print the health status");
println(" -r, --refresh Set refresh flag for SCION Daemon path request");
" -m, --maxpaths int maximum number of paths that are displayed (default 10)");
// println(" --no-color disable colored output");
// println(" --no-probe Do not probe the paths and print the health
// status");
// println(" -r, --refresh Set refresh flag for SCION Daemon path request");
println(" --sciond string SCION Daemon address. (default \"127.0.0.1:30255\")");
println(" --sequence string Space separated list of hop predicates");
println(" --timeout duration Timeout (default 5s)");
println(" --tracing.agent string Tracing agent address");
// println(" --sequence string Space separated list of hop predicates");
// println(" --timeout duration Timeout (default 5s)");
// println(" --tracing.agent string Tracing agent address");
}

static void printUsagePingResponder() {
println(" This command starts a server that responds to incoming echo requests.");
println(" It takes a configuration file `ping-responder-config.json` as input.");
println(" See README.md for more information.");
println("`ping-responder` starts a server process that responds to incoming echo requests.");
println("");

println("Usage:");
Expand All @@ -314,7 +315,7 @@ static void printUsagePingResponder() {
println("Flags:");
// println(" -l, --local ip Local IP address to listen on. (default invalid
// IP)");
println(" --port <port> Use specified local port.");
println(" --port uint16 use specified local port.");
}

private static void printSequenceHelp() {
Expand Down
19 changes: 15 additions & 4 deletions src/main/java/org/scion/cli/Showpaths.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public class Showpaths {
private static InetSocketAddress daemon;
private static Long isdAs;
private static boolean extended = false;
private static int maxPaths = 10;

public static void main(String... args) {
handleExit(() -> run(args));
Expand All @@ -69,6 +70,10 @@ private static void parseArgs(String[] argsArray) {
List<String> args = new ArrayList<>(Arrays.asList(argsArray));
while (!args.isEmpty()) {
switch (args.get(0)) {
case "-e":
case "--extended":
extended = true;
break;
case "-h":
case "--help":
Cli.printUsageShowpaths();
Expand All @@ -81,17 +86,20 @@ private static void parseArgs(String[] argsArray) {
case "--local":
localIP = parseIP("local", args);
break;
case "-m":
case "--maxpaths":
maxPaths = parseInt("--maxpaths", args);
break;
case "--sciond":
daemon = parseAddress("sciond", args);
break;
default:
if (isdAs == null) {
isdAs = parseIsdAs(args);
if (isdAs != null) {
continue;
}
continue;
} else {
throw new ExitCodeException(2, "Unknown option: " + args.get(0));
}
throw new ExitCodeException(2, "Unknown option: " + args.get(0));
}
args.remove(0);
}
Expand All @@ -116,6 +124,9 @@ public static int run() throws IOException {

int id = 0;
for (Path path : paths) {
if (id >= maxPaths) {
break;
}
String localIP;
try (ScionDatagramChannel channel = ScionDatagramChannel.open()) {
channel.connect(path);
Expand Down
Loading