Closed mahsa-frj closed 6 months ago
Hi @mahsa-frj
All depends on the demo that you're running. For vFW-demo, I'd check the status of the sink
service
$ vagrant ssh sink -- systemctl status sink.service
● vsink.service - LSB: Start daemon at boot time
Loaded: loaded (/etc/init.d/vsink.sh; generated)
Active: active (exited) since Tue 2022-08-30 18:48:37 UTC; 12min ago
Docs: man:systemd-sysv-generator(8)
Process: 2889 ExecStart=/etc/init.d/vsink.sh start (code=exited, status=0/SUCCESS)
Aug 30 18:48:37 sink systemd[1]: Starting LSB: Start daemon at boot time...
Aug 30 18:48:37 sink vsink.sh[2889]: Starting vsink.sh
Aug 30 18:48:37 sink sudo[2891]: root : TTY=unknown ; PWD=/opt ; USER=root ; COMMAND=./v_sink_init.sh
Aug 30 18:48:37 sink sudo[2891]: pam_unix(sudo:session): session opened for user root by (uid=0)
Aug 30 18:48:37 sink systemd[1]: Started LSB: Start daemon at boot time.
Aug 30 18:48:37 sink sudo[2891]: pam_unix(sudo:session): session closed for user root
and the output of the curl command
$ curl 192.168.20.250:667
<!DOCTYPE html>
<html>
<head>
<title>Graphs (darkstat eth1)</title>
<meta name="generator" content="darkstat 3.0.719">
<meta name="robots" content="noindex, noarchive">
<link rel="stylesheet" href="./style.css" type="text/css">
<script src="./graph.js" type="text/javascript"></script>
</head>
<body>
<div class="menu">
<ul class="menu"><li class="label">darkstat 3.0.719</li><li><a href="./">graphs</a></li><li><a href="./hosts/">hosts</a></li><li><a href="https://unix4lyfe.org/darkstat/">homepage</a></li></ul>
</div>
<div class="content">
<h2 class="pageheader">Graphs</h2>
<p>
<b>Measuring for</b> <span id="rf">15 mins, 6 secs</span><b>, since</b> 2022-08-30 18:48:36 UTC+0000<b>.</b><br>
<b>Seen</b> <span id="tb">3,440</span> <b>bytes, in</b> <span id="tp">27</span> <b>packets.</b> (<span id="pc">489</span> <b>captured,</b> <span id="pd">0</span> <b>dropped)</b><br>
</p>
<div id="graphs">
Graphs require JavaScript.
<script type="text/javascript">
//<![CDATA[
var graph_width = 320;
var graph_height = 200;
var bar_gap = 1;
var graphs_uri = "graphs.xml";
var graphs = [
{ id:"g0", name:"seconds", title:"last 60 seconds", bar_secs:1 },
{ id:"g1", name:"minutes", title:"last 60 minutes", bar_secs:60 },
{ id:"g2", name:"hours", title:"last 24 hours", bar_secs:3600 },
{ id:"g3", name:"days", title:"last 31 days", bar_secs:86400 }
];
window.onload = graphs_init;
//]]>
</script>
</div>
</div>
</body>
</html>
Make sure that darkstat is pointing to the right interface.
Don't forget to verify the status of the other services.
$ vagrant ssh firewall -- systemctl status firewall.service
● vfirewall.service - LSB: Start daemon at boot time
Loaded: loaded (/etc/init.d/vfirewall.sh; generated)
Active: active (running) since Tue 2022-08-30 18:50:10 UTC; 16min ago
Docs: man:systemd-sysv-generator(8)
Process: 11144 ExecStart=/etc/init.d/vfirewall.sh start (code=exited, status=0/SUCCESS)
Tasks: 34 (limit: 4915)
CGroup: /system.slice/vfirewall.service
├─11281 /bin/sh - /opt/honeycomb/sample-distribution-1.6.0/honeycomb
├─11284 java -Xms256m -Xmx256m -jar /opt/honeycomb/sample-distribution-1.6.0/sample-distribution-1.6.0.jar
├─11297 /bin/bash ./go-client.sh
└─11300 ./vpp_measurement_reporter 10.0.4.1 8081 eth1
Aug 30 19:06:50 firewall EVEL[11300]: Enter evel_batch_add_event {
Aug 30 19:06:50 firewall EVEL[11300]: | Adding Batch event
Aug 30 19:06:50 firewall EVEL[11300]: Exit evel_batch_add_event }
Aug 30 19:06:50 firewall EVEL[11300]: Enter evel_post_event {
Aug 30 19:06:50 firewall EVEL[11300]: | RBW: Ring Buffer Write message at 0x5596b07ad520
Aug 30 19:06:50 firewall EVEL[11300]: | RBW: got lock. NR=1 NW=98 SZ=100
Aug 30 19:06:50 firewall EVEL[11300]: | RBW: 97 items in buffer
Aug 30 19:06:50 firewall EVEL[11300]: | RBW: next write location is 99
Aug 30 19:06:50 firewall EVEL[11300]: | RBW: released lock
Aug 30 19:06:50 firewall EVEL[11300]: Exit evel_post_event }
$ vagrant ssh packetgen -- systemctl status packetgen.service
● vpacketgen.service - LSB: Start daemon at boot time
Loaded: loaded (/etc/init.d/vpacketgen.sh; generated)
Active: active (running) since Tue 2022-08-30 18:49:47 UTC; 18min ago
Docs: man:systemd-sysv-generator(8)
Process: 6907 ExecStart=/etc/init.d/vpacketgen.sh start (code=exited, status=0/SUCCESS)
Tasks: 34 (limit: 4915)
CGroup: /system.slice/vpacketgen.service
├─7014 /bin/sh - /opt/honeycomb/honeycomb
├─7017 java -Xms256m -Xmx256m -jar /opt/honeycomb/sample-distribution-1.6.0.jar
├─7053 /bin/bash ./run_traffic_fw_demo.sh
└─7119 sleep 300
Aug 30 18:49:47 packetgen systemd[1]: Starting LSB: Start daemon at boot time...
Aug 30 18:49:47 packetgen vpacketgen.sh[6907]: Starting vpacketgen.sh
Aug 30 18:49:47 packetgen sudo[6909]: root : TTY=unknown ; PWD=/opt ; USER=root ; COMMAND=./v_packetgen_init.sh
Aug 30 18:49:47 packetgen sudo[6909]: pam_unix(sudo:session): session opened for user root by (uid=0)
Aug 30 18:49:47 packetgen systemd[1]: Started LSB: Start daemon at boot time.
For this project, I have some issues to provision process, apparently it's using the management network which eventually causes problems to do ssh. I'm still figuring out possible solutions.
@mahsa-frj I double-checked the scripts used by the containers as well as I updated them (BTW, they need some fixes and improvements in upstream). Apparently, the packet-generator
has some issues during runtime. I'm still investigating why vppctl
tool can read and execute the file
Hi @electrocucaracha Thanks for your explanation in details. We've run the vFW-demo and everything is OK. Packets are steering properly from packetgen VM to sink VM. We are investigating cFW-demo too. Thanks
Hi @electrocucaracha ,
Regarding the issue you mentioned, we resolved it when the script was moved to /opt/pg_streams/ and it was executed with full path address:
vppctl exec /opt/pg_streams/stream_fw_udp
But even after the script is executed the graph is empty. It seems the parts where "vppctl tap connect " command is run fail as well because vppctl doesn't understand the tap command.
Hi @electrocucaracha ,
Regarding the issue you mentioned, we resolved it when the script was moved to /opt/pg_streams/ and it was executed with full path address:
vppctl exec /opt/pg_streams/stream_fw_udp
Ok, I can't change the code to use absolute paths and see if that fixes the problem.
But even after the script is executed the graph is empty. It seems the parts where "vppctl tap connect " command is run fail as well because vppctl doesn't understand the tap command.
Regarding those errors, I noticed that similar errors are displayed in the vpacketgen service, but in that case the graphs are populated. That's why I tried to update the instructions with what ONAP has.
Thank you for your answer. I have to emphasis that the stream_fw_udp script only worked in '/opt/pg_streams/' directory for me. I tested other directories as well but it didn't work (I don't understand why).
Also, there are some minor issues in the code. For example, the build process starts with packetgen
that has dependency on the vpp
. So, the build fails. Also, the version of libcurl4-gnutls-dev
package you used in packetgen and firewall no longer exists in the repository. The same goes for ca-certificate package in the vpp.
Got it, I've submitted the patches for those issues. BTW, the code contains some CI tasks which cover some use cases, if you find any other issue please send me the PR to fix it.
Hi Victor Morales, Thanks for your efforts to provide this use case. We've run the vFW_CNF_cds demo on ONAP. Given that the darkstat graphs on that demo are empty, we decided to run this demo. We've run cfw-demo. All containers are running and up and every interfaces in vppctl console are up but unfortunately the graphs on darkstat are empty too. We couldn't find what the problem is. Could you please help us to resolve this issue?
Thanks in advanced