This page describes the HTTP-based management protocol as implemented by PiCN-nodes like picn-relay
or picn-repo
. If your are interested in a command-line management tool, check picn-mgmt
in runnables.
Nodes listen for commands on the port (TCP) specified on the command line (--port
).
Instructs the link layer to create a new UDP face.
GET /linklayer/newface/< ip >:< targetport > HTTP/1.1\r\n\r\n
Return: Face ID
Instructs the ICN layer to add a certain forwarding rule to the forwarding information base.
GET /icnlayer/newforwardingrule/<prefix>:<faceid> HTTP/1.1\r\n\r\n
Instructs the ICN layer to generate a certain data packet and put it into the content store.
GET /icnlayer/newcontent/< name >:< data > HTTP/1.1\r\n\r\n
Instructs the main process of a runnable to terminate all layers and exit. Applies to all runnables.
GET /shutdown HTTP/1.1\r\n\r\n
Note that some characters within a name component must be escaped. Otherwise, it would for instance not be clear whether a /
separates two components or is a single character withing a component.
We follow the URL Encoding conventions to escape unsafe characters.
Escaped | ASCII |
---|---|
%21 |
! |
%22 |
" |
%23 |
# |
%24 |
$ |
%25 |
% |
%26 |
& |
%27 |
' |
%28 |
( |
%29 |
) |
%2A |
* |
%2B |
+ |
%2C |
, |
%2D |
- |
%2E |
. |
%2F |
/ |
%3A |
: |
%3B |
; |
%3C |
< |
%3D |
= |
%3E |
> |
%3F |
? |
%40 |
@ |
%5B |
[ |
%5C |
\ |
%5D |
] |
%7B |
{ |
%7C |
` |
%7D |
} |