NDN-FC+ を拡張し、ワークフローを追加したもの。
ルーターなどのコードを変更する必要はないので、クライアントコードのみを変えます。
NFD に関しては全く変更していません。ndn-cxx 自体も全く変更していません。
work/NDN-original/ndn-cxx/examples
内でクライアントコードを書いて実験しています。
base_producer.cpp
の BaseProducer
を継承して run
だけ適当にオーバーライドして実行することでそれぞれのプロデューサーを作成しています。
コンシューマーは基本的に1個しか使っていなかったため、ベタ書き。
実験に使ったコードはブランチに分けてあるのでそれぞれ確認してください。
それぞれのブランチの README に詳細が書いてあります。
基本的にはリソースが関係あるものだけ実験室の k8s を使っており、それ以外はローカルで動かします。
/work/NDN-original/sh_local
や /work/NDN-original/sh_k8s
に実験のために使うシェルスクリプトをまとめてあります。
ここを使う場合は自身の環境や実験内容に合わせて face create
先のIPアドレスを変えるなどする必要があります。
docker compose にて node-a, b, c のコンテナを使って実験していますが、なぜか同コンテナに入っても ndn の設定が個別で行われるようです。
同じコンテナに入ったとしても ndn-start や face create はシェルごとに行う必要があることに注意してください。
docker compose up
docker compose run ndn-node-a bash
docker compose run ndn-node-b bash
docker compose run ndn-node-c bash
sh /work/NDN-original/sh_local/setup.sh
nfd-start
sh /work/NDN-original/sh_local/node_a_start.sh
sh /work/NDN-original/sh_local/reinstall.sh
nfd-start
sh /work/NDN-original/sh_local/node_b_start.sh
sh /work/NDN-original/sh_local/reinstall.sh
nfd-start
sh /work/NDN-original/sh_local/node_c_start.sh
sh /work/NDN-original/sh_local/reinstall.sh
nfd-start
sh /work/NDN-original/sh_local/node_a_consumer_start.sh
# マルチで実験する場合
kubectl apply -f ./k8s/multi
# シングルで実験する場合
kubectl apply -f ./k8s/single
kubectl get pods
kubectl exec -it ポッド名 -- /bin/bash
cd /home
git clone https://github.com/kobayashiharuto/NDN-FC-WorkflowPlus.git
export PKG_CONFIG_PATH="/home/NDN-FC-WorkflowPlus/work/NDN-original"
cd /home/NDN-FC-WorkflowPlus/work/NDN-original/sh_k8s/
sh rebuild.sh
nfd-start
sh node_a_start.sh
cd /home/NDN-FC-WorkflowPlus/work/NDN-original/sh_k8s/
sh rebuild.sh
nfd-start
sh node_b_start.sh
cd /home/NDN-FC-WorkflowPlus/work/NDN-original/sh_k8s/
sh rebuild.sh
nfd-start
sh node_c_start.sh
/home/NDN-FC-WorkflowPlus/work/NDN-original/ndn-cxx/build/examples/node_a_consumer