{"version":2,"width":84,"height":28,"timestamp":1706468979,"theme":{"fg": "#ffffff","bg":"#000000","palette":"#000000:#990000:#00A600:#999900:#0000B3:#B300B3:#999900:#BFBFBF:#666666:#F60000:#00F600:#F6F600:#0000F6:#F600F6:#00F6F6:#F6F6F6"},"env":{"SHELL":"/bin/bash","TERM":"xterm-256color"}} [0.000001,"o","\r\n\u001b[?2004l\r"] [0.000002,"o","\u001b[?1049h\u001b[?1h\u001b=\u001b[H\u001b[2J\u001b[?12l\u001b[?25h\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?1006l\u001b[?1005l\u001b[?2004h\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[1;1H\u001b[1;28r\u001b[c\u001b[\u003ec\u001b[\u003eq\u001b]10;?\u001b\\\u001b]11;?\u001b\\\u001b[1;17H"] [0.000005,"o","\u001b[?25l\u001b[32m\u001b[1m\u001b[Hpim@squanchy\u001b(B\u001b[m:\u001b[34m\u001b[1m~\u001b(B\u001b[m$ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[97m\u001b[44m\r\n0:ssh- 1:bash* 3:ssh \u001b[93msquanchy.ipng.ch\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[1;17H\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[1;1H\u001b[1;28r"] [0.000025,"o","\u001b[?25l\u001b[32m\u001b[1m\u001b[1;1Hpim@squanchy\u001b(B\u001b[m:\u001b[34m\u001b[1m~\u001b(B\u001b[m$ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[97m\u001b[44m\r\n0:ssh- 1:bash* 3:ssh \u001b[93msquanchy.ipng.ch\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[1;17H\u001b[?7727h\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[1;1H\u001b[1;28r\u001b[?7727h\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[1;1H\u001b[1;28r"] [0.000355,"o","\u001b[?25l\u001b[32m\u001b[1m\u001b[1;1Hpim@squanchy\u001b(B\u001b[m:\u001b[34m\u001b[1m~\u001b(B\u001b[m$ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[97m\u001b[44m\r\n0:ssh- 1:bash* 3:ssh \u001b[93msquanchy.ipng.ch\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[1;17H\u001b[H\u001b[32m\u001b[1mpim@squanchy\u001b(B\u001b[m:\u001b[34m\u001b[1m~\u001b(B\u001b[m$ \u001b[K"] [0.000411,"o","\r\n"] [0.000535,"o","\u001b[?25l\u001b[H :%@@@@@@@* \u001b[K\r\n :*@@@@@@@@@@ .=+- \u001b[K\r\n :=*#%@@@@@@@@@@@@@+ .+@@@@# \u001b[K\r\n .+@@@@@@@@@@@@@@@@@@@@##@@@@@@@= \u001b[K\r\n +@@@@@@@@@@@%*+@@@@@@@@@@@@@@@@@* \u001b[K\r\n =@@@@@@@@@#=: *@@@@%#*+*@@@@@@@# \u001b[K\r\n -%@@@@@@@*- ::. :*@@@@@@@@@ \u001b[K\r\n =%@@@@@@@+ *@@@@@@@@@@@* \u001b[K\r\n :*@@@@@@@@+ %@@@@@@@@@@@@@@+. \u001b[K\r\n -*@@@@@@@@@+ +%@@@@@@@@@@@@@@@*. \u001b[K\r\n .-+%@@@@@@@@@#- =@@@@@@@@@@@@@@@+ \u001b[K\r\n :=*%@@@@@@@@%*=: @@@@@@@@@@@@@@@@# "] [0.000686,"o","\u001b[K\r\n :+#@@@@@@@#*+-: :*%@@@@@@%%@@@@@@@@@@@@@@@@@# \u001b[K\r\n .=#@@%#*+=-. :##%%@@@@@@@@@@@@@@@@@@@@@@@@@# \u001b[K\r\n .-=-: ..:-=+*#%@@@@@@@@@@@@@@- \u001b[K\r\n ..::--==++***##%%%%@@@@@@@@@@@@@@@@%%%##***+==-::. .-=*#@@@@@@@@* \u001b[K\r\n .:=+*#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b["] [0.001694,"o","K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25hipng@vpp0-0:~$ "] [1.501694,"o","\u001b[?25l\u001b[97m\u001b[44m\r\n0:ssh- 1:ssh* 3:ssh \u001b[93msquanchy.ipng.ch\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[27;16H"] [2.001694,"o","c"] [2.0547430000000015,"o","d"] [2.1648090000000013,"o"," "] [2.3448090000000015,"o","v"] [2.4053820000000012,"o","p"] [2.5748060000000006,"o","p"] [2.741861,"o","_"] [2.9218610000000003,"o","p"] [3.003319999999999,"o","a"] [3.1833199999999993,"o","pi_examples\u0007"] [3.6833199999999993,"o","\u001b[?25l\u001b[H :*@@@@@@@@@@ .=+- \u001b[K\r\n :=*#%@@@@@@@@@@@@@+ .+@@@@# \u001b[K\r\n .+@@@@@@@@@@@@@@@@@@@@##@@@@@@@= \u001b[K\r\n +@@@@@@@@@@@%*+@@@@@@@@@@@@@@@@@* \u001b[K\r\n =@@@@@@@@@#=: *@@@@%#*+*@@@@@@@# \u001b[K\r\n -%@@@@@@@*- ::. :*@@@@@@@@@ \u001b[K\r\n =%@@@@@@@+ *@@@@@@@@@@@* \u001b[K\r\n :*@@@@@@@@+ %@@@@@@@@@@@@@@+. \u001b[K\r\n -*@@@@@@@@@+ +%@@@@@@@@@@@@@@@*. \u001b[K\r\n .-+%@@@@@@@@@#- =@@@@@@@@@@@@@@@+ \u001b[K\r\n :=*%@@@@@@@@%*=: @@@@@@@@@@@@@@@@# \u001b[K\r\n :+#@@@@@@@#*+-: :*%@@@@@@%%@@@@@@@@@@@@@@@@@# "] [3.6835809999999993,"o","\u001b[K\r\n .=#@@%#*+=-. :##%%@@@@@@@@@@@@@@@@@@@@@@@@@# \u001b[K\r\n .-=-: ..:-=+*#%@@@@@@@@@@@@@@- \u001b[K\r\n ..::--==++***##%%%%@@@@@@@@@@@@@@@@%%%##***+==-::. .-=*#@@@@@@@@* \u001b[K\r\n .:=+*#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b[K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nL"] [3.683718999999999,"o","ast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25hipng@vpp0-0:~/vpp_papi_examples$ "] [3.8637189999999992,"o","v"] [3.8930779999999987,"o","i"] [3.9227509999999994,"o","m"] [3.990050999999999,"o"," "] [4.137286,"o","0"] [4.223272,"o","5"] [4.403271999999999,"o","-events.py "] [4.583271999999999,"o","\u001b[?25l\u001b[H :=*#%@@@@@@@@@@@@@+ .+@@@@# \u001b[K\r\n .+@@@@@@@@@@@@@@@@@@@@##@@@@@@@= \u001b[K\r\n +@@@@@@@@@@@%*+@@@@@@@@@@@@@@@@@* \u001b[K\r\n =@@@@@@@@@#=: *@@@@%#*+*@@@@@@@# \u001b[K\r\n -%@@@@@@@*- ::. :*@@@@@@@@@ \u001b[K\r\n =%@@@@@@@+ *@@@@@@@@@@@* \u001b[K\r\n :*@@@@@@@@+ %@@@@@@@@@@@@@@+. \u001b[K\r\n -*@@@@@@@@@+ +%@@@@@@@@@@@@@@@*. \u001b[K\r\n .-+%@@@@@@@@@#- =@@@@@@@@@@@@@@@+ \u001b[K\r\n :=*%@@@@@@@@%*=: @@@@@@@@@@@@@@@@# \u001b[K\r\n :+#@@@@@@@#*+-: :*%@@@@@@%%@@@@@@@@@@@@@@@@@# \u001b[K\r\n .=#@@%#*+=-. :##%%@@@@@@@@@@@@@@@@@@@@@@@@@# "] [4.583565,"o","\u001b[K\r\n .-=-: ..:-=+*#%@@@@@@@@@@@@@@- \u001b[K\r\n ..::--==++***##%%%%@@@@@@@@@@@@@@@@%%%##***+==-::. .-=*#@@@@@@@@* \u001b[K\r\n .:=+*#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b[K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_ex"] [4.583663,"o","amples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vim 05-events.py \u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [4.631511999999999,"o","\u001b[?25l\u001b[H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?1006h\u001b[?1000h\u001b[1;27r\u001b[1;1H\u001b[2;27r\u001b[26S\u001b[1;1H\u001b[K\u001b[27d\"05-events.py\" 32L, 834B\u001b[1;28r\u001b[27;25H\u001b[?25l"] [4.636552999999999,"o","\u001b[2;1H▽\r \r\n \u001b[H"] [4.643407,"o","\u001b[34m#!/usr/bin/env python3\u001b[39m\r\n\u001b[K\r\n\u001b[35mimport\u001b[39m time\u001b[K\r\n\u001b[35mfrom\u001b[39m vpp_papi \u001b[35mimport\u001b[39m VPPApiClient, VPPApiJSONFiles, VppEnum\u001b[6;1H\u001b[33mdef\u001b[39m \u001b[36msw_interface_event\u001b[39m(msg):\r\n \u001b[36mprint\u001b[39m(msg)\u001b[9;1H\u001b[33mdef\u001b[39m \u001b[36mvpp_event_callback\u001b[39m(msg_name, msg):\r\n \u001b[33mif\u001b[39m msg_name == \u001b[31m\"sw_interface_event\"\u001b[39m:\r\n sw_interface_event(msg)\r\n \u001b[33melse\u001b[39m:\r\n \u001b[36mprint\u001b[39m(f\u001b[31m\"Received unknown callback: {msg_name} =\u003e {msg}\"\u001b[39m)\u001b[16;1Hvpp_api_socket = \u001b[31m\"/run/vpp/api.sock\"\r\n\u001b[39mvpp_json_dir = VPPApiJSONFiles.find_api_dir([])\r\nvpp_jsonfiles = VPPApiJSONFiles.find_api_files(api_dir=vpp_json_dir)\r\nvpp = VPPApiClient(apifiles=vpp_jsonfiles, server_address=vpp_api_socket)\u001b[21;1Hvpp.connect(\u001b[31m\"ipng-client\"\u001b[39m)\r\nvpp.register_event_callback(vpp_event_callback)\r\nvpp.api.want_interface_events(enable_disable=\u001b[36mTrue\u001b[39m, pid=\u001b[31m8298\u001b[39m)\u001b[25;1Hapi_reply = vpp.api.show_version()\r\n\u001b[36mprint\u001b[39m(f\u001b[31m\"VPP version is {api_reply.version}\"\u001b[39m)\u001b[27;67H1,1\u001b[11CTop\u001b"] [4.643445,"o","[H\u001b[?12l\u001b[?25h"] [5.143445,"o","\u001b[27;57H \u001b[9C2,0-1\u001b[2;1H"] [5.304321999999999,"o","\u001b[27;57H \u001b[9C3,1 \u001b[3;1H"] [5.481579,"o","\u001b[27;57H \u001b[9C4\u001b[4;1H"] [5.610247999999999,"o","\u001b[27;57H \u001b[9C5,0-1\u001b[5;1H"] [5.790247999999998,"o","\u001b[27;57H \u001b[9C6,1 \u001b[6;1H"] [5.970247999999998,"o","\u001b[27d\u001b[1m-- VISUAL BLOCK --\u001b(B\u001b[m\u001b[38X\u001b[38C1x1\u001b[7X\u001b[7C6,1\u001b[11X\u001b[11CTop\u001b[K\u001b[6;1H"] [6.147516999999997,"o","\u001b[33m\u001b[7md\u001b[27;57H\u001b(B\u001b[m1x2\u001b[9C2\u001b[6;2H"] [6.327516999999997,"o","\u001b[33m\u001b[7me\u001b[27;57H\u001b(B\u001b[m1x3\u001b[9C3\u001b[6;3H"] [6.428196999999997,"o","\u001b[33m\u001b[7mf\u001b[27;57H\u001b(B\u001b[m1x4\u001b[9C4\u001b[6;4H"] [6.519795999999996,"o","\u001b[27;57Hl \u001b[6;4H\u001b[?25l\u001b[7m \u001b[27;57H\u001b(B\u001b[m1x5\u001b[9C5\u001b[6;5H\u001b[?12l\u001b[?25h"] [6.571294999999996,"o","\u001b[27;57Hl \u001b[6;5H\u001b[?25l"] [6.572633999999997,"o","\u001b[36m\u001b[7ms\u001b[27;57H\u001b(B\u001b[m1x6\u001b[9C6\u001b[6;6H\u001b[?12l\u001b[?25h"] [6.665410999999995,"o","\u001b[27;57Hl \u001b[6;6H\u001b[?25l\u001b[36m\u001b[7mw\u001b[27;57H\u001b(B\u001b[m1x7\u001b[9C7\u001b[6;7H\u001b[?12l\u001b[?25h"] [6.771671999999995,"o","\u001b[36m\u001b[7m_\u001b[27;57H\u001b(B\u001b[m1x8\u001b[9C8\u001b[6;8H"] [6.821893999999997,"o","\u001b[27;57Hl \u001b[6;8H\u001b[?25l\u001b[36m\u001b[7mi\u001b[27;57H\u001b(B\u001b[m1x9\u001b[9C9\u001b[6;9H\u001b[?12l\u001b[?25h"] [6.917716999999996,"o","\u001b[27;57Hl \u001b[6;9H\u001b[?25l"] [6.920042999999996,"o","\u001b[36m\u001b[7mn\u001b[27;57H\u001b(B\u001b[m1x10\u001b[8C10\u001b[6;10H\u001b[?12l\u001b[?25h"] [7.007569999999998,"o","\u001b[27;57Hl \u001b[6;10H\u001b[?25l\u001b[36m\u001b[7mt\u001b[27;57H\u001b(B\u001b[m1x11\u001b[9C1\u001b[6;11H\u001b[?12l\u001b[?25h"] [7.098156999999997,"o","\u001b[27;57Hl \u001b[6;11H\u001b[?25l\u001b[36m\u001b[7me\u001b[27;57H\u001b(B\u001b[m1x12\u001b[9C2\u001b[6;12H\u001b[?12l\u001b[?25h"] [7.192681999999998,"o","\u001b[27;57Hl \u001b[6;12H\u001b[?25l\u001b[36m\u001b[7mr\u001b[27;57H\u001b(B\u001b[m1x13\u001b[9C3\u001b[6;13H\u001b[?12l\u001b[?25h"] [7.240415999999996,"o","\u001b[27;57Hl \u001b[6;13H\u001b[?25l"] [7.241534999999995,"o","\u001b[36m\u001b[7mf\u001b[27;57H\u001b(B\u001b[m1x14\u001b[9C4\u001b[6;14H\u001b[?12l\u001b[?25h"] [7.326841999999996,"o","\u001b[27;57Hl \u001b[6;14H\u001b[?25l\u001b[36m\u001b[7ma\u001b[27;57H\u001b(B\u001b[m1x15\u001b[9C5\u001b[6;15H\u001b[?12l\u001b[?25h"] [7.410277999999995,"o","\u001b[27;57Hl \u001b[6;15H\u001b[?25l\u001b[36m\u001b[7mc\u001b[27;57H\u001b(B\u001b[m1x16\u001b[9C6\u001b[6;16H\u001b[?12l\u001b[?25h"] [7.507695999999996,"o","\u001b[27;57Hl \u001b[6;16H\u001b[?25l\u001b[36m\u001b[7me\u001b[27;57H\u001b(B\u001b[m1x17\u001b[9C7\u001b[6;17H\u001b[?12l\u001b[?25h"] [7.597936999999995,"o","\u001b[27;57Hl \u001b[6;17H\u001b[?25l\u001b[36m\u001b[7m_\u001b[27;57H\u001b(B\u001b[m1x18\u001b[9C8\u001b[6;18H\u001b[?12l\u001b[?25h"] [7.661244999999997,"o","\u001b[27;57Hl \u001b[6;18H\u001b[?25l\u001b[36m\u001b[7me\u001b[27;57H\u001b(B\u001b[m1x19\u001b[9C9\u001b[6;19H\u001b[?12l\u001b[?25h"] [7.749777999999996,"o","\u001b[27;57Hl \u001b[6;19H\u001b[?25l"] [7.751011999999996,"o","\u001b[36m\u001b[7mv\u001b[27;57H\u001b(B\u001b[m1x20\u001b[8C20\u001b[6;20H\u001b[?12l\u001b[?25h"] [7.847547999999996,"o","\u001b[27;57Hl \u001b[6;20H\u001b[?25l\u001b[36m\u001b[7me\u001b[27;57H\u001b(B\u001b[m1x21\u001b[9C1\u001b[6;21H\u001b[?12l\u001b[?25h"] [7.913544999999996,"o","\u001b[27;57Hl \u001b[6;21H\u001b[?25l\u001b[36m\u001b[7mn\u001b[27;57H\u001b(B\u001b[m1x22\u001b[9C2\u001b[6;22H\u001b[?12l\u001b[?25h"] [8.000168999999996,"o","\u001b[27;57Hl \u001b[6;22H\u001b[?25l"] [8.001115999999996,"o","\u001b[36m\u001b[7mt\u001b(B\u001b[m\u001b[46m(\u001b[49mmsg\u001b[46m)\u001b[27;57H\u001b[49m1x23\u001b[9C3\u001b[6;23H\u001b[?12l\u001b[?25h"] [8.159740999999997,"o","\u001b[27;57Hl \u001b[6;23H\u001b[?25l\u001b[7m(\u001b(B\u001b[mmsg)\u001b[27;57H1x24\u001b[9C4\u001b[6;24H\u001b[?12l\u001b[?25h"] [8.659740999999997,"o","\u001b[27;57H^[ \u001b[6;24H\u001b[?25l"] [8.760054999999998,"o","\r\u001b[33mdef\u001b[39m \u001b[36msw_interface_event\u001b[39m(\u001b[27;66H\u001b[1K\u001b[C6,24\u001b[10X\u001b[10CTop\u001b[K\u001b[6;24H\u001b[?12l\u001b[?25h"] [8.828844999999998,"o","\u001b[27;57Hj\u001b[6;24H\u001b[?25l"] [8.830161999999998,"o","\u001b[7;8H\u001b[46m(\u001b[49mmsg\u001b[46m)\u001b[27;57H\u001b[49m \u001b[9C7,12\u001b[7;12H\u001b[?12l\u001b[?25h"] [9.009131,"o","\u001b[27;57Hj\u001b[7;12H\u001b[?25l\u001b[4D(msg)\u001b[27;57H \u001b[9C8,0-1\u001b[8;1H\u001b[?12l\u001b[?25h"] [9.189131,"o","\u001b[27;57Hj\u001b[8;1H\u001b[?25l\u001b[27;57H \u001b[9C9,24 \u001b[9;24H\u001b[?12l\u001b[?25h"] [9.369131,"o","\u001b[27;57H0\u001b[9;24H\u001b[?25l\u001b[27;57H \u001b[11C1 \u001b[9;1H\u001b[?12l\u001b[?25h"] [9.549131,"o","\u001b[27d\u001b[1m-- VISUAL BLOCK --\u001b[38C\u001b(B\u001b[m1x1\u001b[7X\u001b[7C9,1\u001b[11X\u001b[11CTop\u001b[K\u001b[9;1H"] [9.683347999999999,"o","\u001b[27;57Hl \u001b[9;1H\u001b[?25l"] [9.685153,"o","\u001b[33m\u001b[7md\u001b[27;57H\u001b(B\u001b[m1x2\u001b[9C2\u001b[9;2H\u001b[?12l\u001b[?25h"] [9.865153,"o","\u001b[27;57Hl \u001b[9;2H\u001b[?25l\u001b[33m\u001b[7me\u001b[27;57H\u001b(B\u001b[m1x3\u001b[9C3\u001b[9;3H\u001b[?12l\u001b[?25h"] [9.958312,"o","\u001b[27;57Hl \u001b[9;3H\u001b[?25l\u001b[33m\u001b[7mf\u001b[27;57H\u001b(B\u001b[m1x4\u001b[9C4\u001b[9;4H\u001b[?12l\u001b[?25h"] [10.057849999999998,"o","\u001b[27;57Hl \u001b[9;4H\u001b[?25l\u001b[7m \u001b[27;57H\u001b(B\u001b[m1x5\u001b[9C5\u001b[9;5H\u001b[?12l\u001b[?25h"] [10.118559999999999,"o","\u001b[27;57Hl \u001b[9;5H\u001b[?25l\u001b[36m\u001b[7mv\u001b[27;57H\u001b(B\u001b[m1x6\u001b[9C6\u001b[9;6H\u001b[?12l\u001b[?25h"] [10.219653999999998,"o","\u001b[27;57Hl \u001b[9;6H\u001b[?25l\u001b[36m\u001b[7mp\u001b[27;57H\u001b(B\u001b[m1x7\u001b[9C7\u001b[9;7H\u001b[?12l\u001b[?25h"] [10.283099999999997,"o","\u001b[27;57Hl \u001b[9;7H\u001b[?25l"] [10.284229,"o","\u001b[36m\u001b[7mp\u001b[27;57H\u001b(B\u001b[m1x8\u001b[9C8\u001b[9;8H\u001b[?12l\u001b[?25h"] [10.387619999999998,"o","\u001b[27;57Hl \u001b[9;8H\u001b[?25l\u001b[36m\u001b[7m_\u001b[27;57H\u001b(B\u001b[m1x9\u001b[9C9\u001b[9;9H\u001b[?12l\u001b[?25h"] [10.450972,"o","\u001b[27;57Hl \u001b[9;9H\u001b[?25l\u001b[36m\u001b[7me\u001b[27;57H\u001b(B\u001b[m1x10\u001b[8C10\u001b[9;10H\u001b[?12l\u001b[?25h"] [10.538777999999997,"o","\u001b[27;57Hl \u001b[9;10H\u001b[?25l\u001b[36m\u001b[7mv\u001b[27;57H\u001b(B\u001b[m1x11\u001b[9C1\u001b[9;11H\u001b[?12l\u001b[?25h"] [10.637331,"o","\u001b[27;57Hl \u001b[9;11H\u001b[?25l\u001b[36m\u001b[7me\u001b[27;57H\u001b(B\u001b[m1x12\u001b[9C2\u001b[9;12H\u001b[?12l\u001b[?25h"] [10.704864999999998,"o","\u001b[27;57Hl \u001b[9;12H\u001b[?25l\u001b[36m\u001b[7mn\u001b[27;57H\u001b(B\u001b[m1x13\u001b[9C3\u001b[9;13H\u001b[?12l\u001b[?25h"] [10.797645,"o","\u001b[27;57Hl \u001b[9;13H\u001b[?25l\u001b[36m\u001b[7mt\u001b[27;57H\u001b(B\u001b[m1x14\u001b[9C4\u001b[9;14H\u001b[?12l\u001b[?25h"] [10.898162,"o","\u001b[27;57Hl \u001b[9;14H\u001b[?25l\u001b[36m\u001b[7m_\u001b[27;57H\u001b(B\u001b[m1x15\u001b[9C5\u001b[9;15H\u001b[?12l\u001b[?25h"] [10.957805999999998,"o","\u001b[27;57Hl \u001b[9;15H\u001b[?25l\u001b[36m\u001b[7mc\u001b[27;57H\u001b(B\u001b[m1x16\u001b[9C6\u001b[9;16H\u001b[?12l\u001b[?25h"] [11.036722999999999,"o","\u001b[27;57Hl \u001b[9;16H\u001b[?25l\u001b[36m\u001b[7ma\u001b[27;57H\u001b(B\u001b[m1x17\u001b[9C7\u001b[9;17H\u001b[?12l\u001b[?25h"] [11.138091,"o","\u001b[27;57Hl \u001b[9;17H\u001b[?25l\u001b[36m\u001b[7ml\u001b[27;57H\u001b(B\u001b[m1x18\u001b[9C8\u001b[9;18H\u001b[?12l\u001b[?25h"] [11.207203,"o","\u001b[27;57Hl \u001b[9;18H\u001b[?25l\u001b[36m\u001b[7ml\u001b[27;57H\u001b(B\u001b[m1x19\u001b[9C9\u001b[9;19H\u001b[?12l\u001b[?25h"] [11.308104,"o","\u001b[27;57Hl \u001b[9;19H\u001b[?25l\u001b[36m\u001b[7mb\u001b[27;57H\u001b(B\u001b[m1x20\u001b[8C20\u001b[9;20H\u001b[?12l\u001b[?25h"] [11.374855999999998,"o","\u001b[27;57Hl \u001b[9;20H\u001b[?25l\u001b[36m\u001b[7ma\u001b[27;57H\u001b(B\u001b[m1x21\u001b[9C1\u001b[9;21H\u001b[?12l\u001b[?25h"] [11.459788999999997,"o","\u001b[27;57Hl \u001b[9;21H\u001b[?25l\u001b[36m\u001b[7mc\u001b[27;57H\u001b(B\u001b[m1x22\u001b[9C2\u001b[9;22H\u001b[?12l\u001b[?25h"] [11.639788999999997,"o","\u001b[27;57Hl \u001b[9;22H\u001b[?25l"] [11.641753999999999,"o","\u001b[36m\u001b[7mk\u001b(B\u001b[m\u001b[46m(\u001b[13C)\u001b[27;57H\u001b[49m1x23\u001b[9C3\u001b[9;23H\u001b[?12l\u001b[?25h"] [12.141753999999999,"o","\u001b[27;57H^[ \u001b[9;23H\u001b[?25l"] [12.242255,"o","\r\u001b[33mdef\u001b[39m \u001b[36mvpp_event_callback\u001b[39m\u001b[27;66H\u001b[1K\u001b[C9,23\u001b[10X\u001b[10CTop\u001b[K\u001b[9;23H\u001b[?12l\u001b[?25h"] [12.391735999999998,"o","\u001b[27;57Hj\u001b[9;23H\u001b[?25l(\u001b[13C)\u001b[27;57H \u001b[9C10,23\u001b[10;23H\u001b[?12l\u001b[?25h"] [12.571735999999998,"o","\u001b[27;57Hj\u001b[10;23H\u001b[?25l"] [12.573125999999998,"o","\n\u001b[46m(\u001b[49mmsg\u001b[46m)\u001b[27;57H\u001b[49m \u001b[10C1\u001b[11;23H\u001b[?12l\u001b[?25h"] [12.753125999999998,"o","\u001b[27;57Hj\u001b[11;23H\u001b[?25l(msg)\u001b[27;57H \u001b[10C2,7 \u001b[12;7H\u001b[?12l\u001b[?25h"] [12.818868999999996,"o","\u001b[27;57Hj\u001b[12;7H\u001b[?25l\u001b[27;57H \u001b[10C3,23\u001b[13;23H\u001b[?12l\u001b[?25h"] [12.913264999999996,"o","\u001b[27;57Hj\u001b[13;23H\u001b[?25l\u001b[27;57H \u001b[10C4,0-1\u001b[14;1H\u001b[?12l\u001b[?25h"] [13.016184999999997,"o","\u001b[27;57Hj\u001b[14;1H\u001b[?25l\u001b[27;57H \u001b[10C5\u001b[15;1H\u001b[?12l\u001b[?25h"] [13.082901999999997,"o","\u001b[27;57Hj\u001b[15;1H\u001b[?25l\u001b[27;57H \u001b[10C6,23 \u001b[16;23H\u001b[?12l\u001b[?25h"] [13.153255999999995,"o","\u001b[27;57Hj\u001b[16;23H\u001b[?25l\u001b[27;57H \u001b[10C7\u001b[17;23H\u001b[?12l\u001b[?25h"] [13.238237999999996,"o","\u001b[27;57Hj\u001b[17;23H\u001b[?25l"] [13.239388999999996,"o","\u001b[27;57H \u001b[10C8\u001b[18;23H\u001b[?12l\u001b[?25h"] [13.333070999999997,"o","\u001b[27;57Hj\u001b[18;23H\u001b[?25l\u001b[27;57H \u001b[10C9\u001b[19;23H\u001b[?12l\u001b[?25h"] [13.513070999999997,"o","\u001b[27;57Hj\u001b[19;23H\u001b[?25l\u001b[27;57H \u001b[9C20,0-1\u001b[20;1H\u001b[?12l\u001b[?25h"] [13.693070999999996,"o","\u001b[27;57Hj\u001b[20;1H\u001b[?25l\u001b[27;57H \u001b[10C1,23 \u001b[21;23H\u001b[?12l\u001b[?25h"] [13.873070999999996,"o","\u001b[27;57Hj\u001b[21;23H\u001b[?25l"] [13.874498999999997,"o","\u001b[27;57H \u001b[21;23H\u001b[?12l\u001b[?25h"] [13.878515999999998,"o","\u001b[?25l\u001b[H\u001b[K\u001b[35m\r\nimport\u001b[39m time\u001b[K\u001b[35m\r\nfrom\u001b[39m vpp_papi \u001b[35mimport\u001b[39m VPPApiClient, VPPApiJSONFiles, VppEnum\u001b[K\r\n\u001b[K\u001b[33m\r\ndef\u001b[39m \u001b[36msw_interface_event\u001b[39m(msg):\u001b[K\r\n \u001b[36mprint\u001b[39m(msg)\u001b[K\r\n\u001b[K\u001b[33m\r\ndef\u001b[39m \u001b[36mvpp_event_callback\u001b[39m(msg_name, msg):\u001b[K\r\n \u001b[33mif\u001b[39m msg_name == \u001b[31m\"sw_interface_event\"\u001b[39m:\u001b[K\r\n sw_interface_event(msg)\u001b[K\r\n \u001b[33melse\u001b[39m:\u001b[K\r\n \u001b[36mprint\u001b[39m(f\u001b[31m\"Received unknown callback: {msg_name} =\u003e {msg}\"\u001b[39m)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nvpp_api_socket = \u001b[31m\"/run/vpp/api.sock\"\u001b[39m\u001b[K\r\nvpp_json_dir = VPPApiJSONFiles.find_api_dir([])\u001b[K\r\nvpp_jsonfiles = VPPApiJSONFiles.find_api_files(api_dir=vpp_json_dir)\u001b[K\r\nvpp = VPPApiClient(apifiles=vpp_jsonfiles, server_address=vpp_api_socket)\u001b[K\r\n\u001b[K\r\nvpp.connect(\u001b[31m\"ipng-client\"\u001b[39m)\u001b[K\r\nvpp.register_event_callback(vpp_event_callback)\u001b[K\r\nvpp.api.want_interface_events(enable_disable=\u001b[36mTrue\u001b[39m, pid=\u001b[31m8298\u001b[39m)\u001b[K\r\n\u001b[K\r\napi_reply = vpp.api.show_version()\u001b[K\u001b[36m\r\nprint\u001b[39m(f\u001b[31m\"VPP version is {api_reply.versi"] [13.878536999999998,"o","on}\"\u001b[39m)\u001b[K\r\n\u001b[K\u001b[27;56H\u001b[1K\u001b[C \u001b[9X\u001b[9C22,23\u001b[9X\u001b[9C16%\u001b[K\u001b[?12l\u001b[?25h\u001b[21;23H"] [14.058536999999998,"o","\u001b[27;57H0\u001b[21;23H\u001b[?25l"] [14.059839999999998,"o","\u001b[27;57H \u001b[12C1 \u001b[21;1H\u001b[?12l\u001b[?25h"] [14.239839999999997,"o","\u001b[27;57H^V\u001b[21;1H\u001b[?25l\u001b[27d\u001b[1m-- VISUAL BLOCK --\u001b[38C\u001b(B\u001b[m1x1\u001b[7X\u001b[7C22,1\u001b[10X\u001b[10C16%\u001b[K\u001b[21;1H\u001b[?12l\u001b[?25h"] [14.419008999999999,"o","\u001b[27;57Hj \u001b[21;1H\u001b[?25l\u001b[27;57H2x1\u001b[21;1H\u001b[?12l\u001b[?25h"] [14.424944,"o","\u001b[?25l\u001b[35m\u001b[Himport\u001b[39m time\u001b[K\u001b[35m\r\nfrom\u001b[39m vpp_papi \u001b[35mimport\u001b[39m VPPApiClient, VPPApiJSONFiles, VppEnum\u001b[K\r\n\u001b[K\u001b[33m\r\ndef\u001b[39m \u001b[36msw_interface_event\u001b[39m(msg):\u001b[K\r\n \u001b[36mprint\u001b[39m(msg)\u001b[K\r\n\u001b[K\u001b[33m\r\ndef\u001b[39m \u001b[36mvpp_event_callback\u001b[39m(msg_name, msg):\u001b[K\r\n \u001b[33mif\u001b[39m msg_name == \u001b[31m\"sw_interface_event\"\u001b[39m:\u001b[K\r\n sw_interface_event(msg)\u001b[K\r\n \u001b[33melse\u001b[39m:\u001b[K\r\n \u001b[36mprint\u001b[39m(f\u001b[31m\"Received unknown callback: {msg_name} =\u003e {msg}\"\u001b[39m)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nvpp_api_socket = \u001b[31m\"/run/vpp/api.sock\"\u001b[39m\u001b[K\r\nvpp_json_dir = VPPApiJSONFiles.find_api_dir([])\u001b[K\r\nvpp_jsonfiles = VPPApiJSONFiles.find_api_files(api_dir=vpp_json_dir)\u001b[K\r\nvpp = VPPApiClient(apifiles=vpp_jsonfiles, server_address=vpp_api_socket)\u001b[K\r\n\u001b[K\r\nvpp.connect(\u001b[31m\"ipng-client\"\u001b[39m)\u001b[K\u001b[7m\r\nv\u001b(B\u001b[mpp.register_event_callback(vpp_event_callback)\u001b[K\r\nvpp.api.want_interface_events(enable_disable=\u001b[36mTrue\u001b[39m, pid=\u001b[31m8298\u001b[39m)\u001b[K\r\n\u001b[K\r\napi_reply = vpp.api.show_version()\u001b[K\u001b[36m\r\nprint\u001b[39m(f\u001b[31m\"VPP version is {api_reply."] [14.425123,"o","version}\"\u001b[39m)\u001b[K\r\n\u001b[K\u001b[33m\r\ntry\u001b[39m:\u001b[K\u001b[1m\r\n-- VISUAL BLOCK --\u001b(B\u001b[m\u001b[38X\u001b[38C2x1\u001b[7X\u001b[7C23,1\u001b[10X\u001b[10C33%\u001b[K\u001b[?12l\u001b[?25h\u001b[21;1H"] [14.529378999999999,"o","\u001b[27;57Hl \u001b[21;1H\u001b[?25l\u001b[20;2H\u001b[7mp\r\nv\u001b[27;57H\u001b(B\u001b[m2x2\u001b[10C2\u001b[21;2H\u001b[?12l\u001b[?25h"] [14.709378999999998,"o","\u001b[27;57Hl \u001b[21;2H\u001b[?25l"] [14.710718999999997,"o","\u001b[20;3H\u001b[7mp\r\nvp\u001b[27;57H\u001b(B\u001b[m2x3\u001b[10C3\u001b[21;3H\u001b[?12l\u001b[?25h"] [14.800145999999998,"o","\u001b[27;57Hl \u001b[21;3H\u001b[?25l\u001b[20;4H\u001b[7m.\r\nvpp\u001b[27;57H\u001b(B\u001b[m2x4\u001b[10C4\u001b[21;4H\u001b[?12l\u001b[?25h"] [14.85435,"o","\u001b[27;57Hl \u001b[21;4H\u001b[?25l"] [14.855587999999997,"o","\u001b[20;5H\u001b[7mr\r\nvpp.\u001b[27;57H\u001b(B\u001b[m2x5\u001b[10C5\u001b[21;5H\u001b[?12l\u001b[?25h"] [14.950522999999997,"o","\u001b[27;57Hl \u001b[21;5H\u001b[?25l\u001b[20;6H\u001b[7me\r\nvpp.a\u001b[27;57H\u001b(B\u001b[m2x6\u001b[10C6\u001b[21;6H\u001b[?12l\u001b[?25h"] [15.060126,"o","\u001b[27;57Hl \u001b[21;6H\u001b[?25l\u001b[20;7H\u001b[7mg\u001b[21;6Hp\u001b[27;57H\u001b(B\u001b[m2x7\u001b[10C7\u001b[21;7H\u001b[?12l\u001b[?25h"] [15.120466999999998,"o","\u001b[27;57Hl \u001b[21;7H\u001b[?25l\u001b[20;8H\u001b[7mi\u001b[21;7Hi\u001b[27;57H\u001b(B\u001b[m2x8\u001b[10C8\u001b[21;8H\u001b[?12l\u001b[?25h"] [15.209181999999998,"o","\u001b[27;57Hl \u001b[21;8H\u001b[?25l"] [15.211148999999999,"o","\u001b[20;9H\u001b[7ms\u001b[21;8H.\u001b[27;57H\u001b(B\u001b[m2x9\u001b[10C9\u001b[21;9H\u001b[?12l\u001b[?25h"] [15.275236999999997,"o","\u001b[27;57Hl \u001b[21;9H\u001b[?25l\u001b[20;10H\u001b[7mt\u001b[21;9Hw\u001b[27;57H\u001b(B\u001b[m2x10\u001b[9C10\u001b[21;10H\u001b[?12l\u001b[?25h"] [15.36206,"o","\u001b[27;57Hl \u001b[21;10H\u001b[?25l\u001b[20;11H\u001b[7me\u001b[21;10Ha\u001b[27;57H\u001b(B\u001b[m2x11\u001b[10C1\u001b[21;11H\u001b[?12l\u001b[?25h"] [15.459591999999997,"o","\u001b[27;57Hl \u001b[21;11H\u001b[?25l"] [15.461110999999999,"o","\u001b[20;12H\u001b[7mr\u001b[21;11Hn\u001b[27;57H\u001b(B\u001b[m2x12\u001b[10C2\u001b[21;12H\u001b[?12l\u001b[?25h"] [15.523917999999998,"o","\u001b[27;57Hl \u001b[21;12H\u001b[?25l"] [15.525191999999997,"o","\u001b[20;13H\u001b[7m_\u001b[21;12Ht\u001b[27;57H\u001b(B\u001b[m2x13\u001b[10C3\u001b[21;13H\u001b[?12l\u001b[?25h"] [15.619688999999997,"o","\u001b[27;57Hl \u001b[21;13H\u001b[?25l"] [15.620866,"o","\u001b[20;14H\u001b[7me\u001b[21;13H_\u001b[27;57H\u001b(B\u001b[m2x14\u001b[10C4\u001b[21;14H\u001b[?12l\u001b[?25h"] [15.689695999999998,"o","\u001b[27;57Hl \u001b[21;14H\u001b[?25l\u001b[20;15H\u001b[7mv\u001b[21;14Hi\u001b[27;57H\u001b(B\u001b[m2x15\u001b[10C5\u001b[21;15H\u001b[?12l\u001b[?25h"] [15.789007999999999,"o","\u001b[27;57Hl \u001b[21;15H\u001b[?25l"] [15.790128,"o","\u001b[20;16H\u001b[7me\u001b[21;15Hn\u001b[27;57H\u001b(B\u001b[m2x16\u001b[10C6\u001b[21;16H\u001b[?12l\u001b[?25h"] [15.860038,"o","\u001b[27;57Hl \u001b[21;16H\u001b[?25l\u001b[20;17H\u001b[7mn\u001b[21;16Ht\u001b[27;57H\u001b(B\u001b[m2x17\u001b[10C7\u001b[21;17H\u001b[?12l\u001b[?25h"] [15.960956,"o","\u001b[27;57Hl \u001b[21;17H\u001b[?25l\u001b[20;18H\u001b[7mt\u001b[21;17He\u001b[27;57H\u001b(B\u001b[m2x18\u001b[10C8\u001b[21;18H\u001b[?12l\u001b[?25h"] [16.025806,"o","\u001b[27;57Hl \u001b[21;18H\u001b[?25l"] [16.026977,"o","\u001b[20;19H\u001b[7m_\u001b[21;18Hr\u001b[27;57H\u001b(B\u001b[m2x19\u001b[10C9\u001b[21;19H\u001b[?12l\u001b[?25h"] [16.111527,"o","\u001b[27;57Hl \u001b[21;19H\u001b[?25l\u001b[20;20H\u001b[7mc\u001b[21;19Hf\u001b[27;57H\u001b(B\u001b[m2x20\u001b[9C20\u001b[21;20H\u001b[?12l\u001b[?25h"] [16.196327999999998,"o","\u001b[27;57Hl \u001b[21;20H\u001b[?25l\u001b[20;21H\u001b[7ma\u001b[21;20Ha\u001b[27;57H\u001b(B\u001b[m2x21\u001b[10C1\u001b[21;21H\u001b[?12l\u001b[?25h"] [16.280120999999998,"o","\u001b[27;57Hl \u001b[21;21H\u001b[?25l\u001b[20;22H\u001b[7ml\u001b[21;21Hc\u001b[27;57H\u001b(B\u001b[m2x22\u001b[10C2\u001b[21;22H\u001b[?12l\u001b[?25h"] [16.380907999999998,"o","\u001b[27;57Hl \u001b[21;22H\u001b[?25l"] [16.382053,"o","\u001b[20;23H\u001b[7ml\u001b[21;22He\u001b[27;57H\u001b(B\u001b[m2x23\u001b[10C3\u001b[21;23H\u001b[?12l\u001b[?25h"] [16.445545,"o","\u001b[27;57Hl \u001b[21;23H\u001b[?25l\u001b[20;24H\u001b[7mb\u001b[21;23H_\u001b[27;57H\u001b(B\u001b[m2x24\u001b[10C4\u001b[21;24H\u001b[?12l\u001b[?25h"] [16.550355999999997,"o","\u001b[27;57Hl \u001b[21;24H\u001b[?25l\u001b[20;25H\u001b[7ma\u001b[21;24He\u001b[27;57H\u001b(B\u001b[m2x25\u001b[10C5\u001b[21;25H\u001b[?12l\u001b[?25h"] [16.721327,"o","\u001b[27;57Hl \u001b[21;25H\u001b[?25l"] [16.723041,"o","\u001b[20;26H\u001b[7mc\u001b[21;25Hv\u001b[27;57H\u001b(B\u001b[m2x26\u001b[10C6\u001b[21;26H\u001b[?12l\u001b[?25h"] [16.896721,"o","\u001b[27;57Hl \u001b[21;26H\u001b[?25l\u001b[20;27H\u001b[7mk\u001b[21;26He\u001b[27;57H\u001b(B\u001b[m2x27\u001b[10C7\u001b[21;27H\u001b[?12l\u001b[?25h"] [17.059365,"o","\u001b[27;57Hl \u001b[21;27H\u001b[?25l"] [17.060713,"o","\u001b[20;28H\u001b[7m(\u001b[21;27Hn\u001b[27;57H\u001b(B\u001b[m2x28\u001b[10C8\u001b[21;28H\u001b[?12l\u001b[?25h"] [17.220202999999998,"o","\u001b[27;57Hl \u001b[21;28H\u001b[?25l\u001b[20;29H\u001b[7mv\u001b[21;28Ht\u001b[27;57H\u001b(B\u001b[m2x29\u001b[10C9\u001b[21;29H\u001b[?12l\u001b[?25h"] [17.400202999999998,"o","\u001b[27;57Hl \u001b[21;29H\u001b[?25l"] [17.401881999999993,"o","\u001b[20;30H\u001b[7mp\u001b[21;29Hs\u001b(B\u001b[m\u001b[46m(\u001b[29C)\u001b[27;57H\u001b[49m2x30\u001b[9C30\u001b[21;30H\u001b[?12l\u001b[?25h"] [18.901881999999993,"o","\u001b[27;57H^[ \u001b[21;30H\u001b[?25l"] [19.002442999999992,"o","\u001b[27;57H2x30^[\u001b[21;30H"] [19.003365999999993,"o","\u001b[20;1Hvpp.register_event_callback(vp\r\nvpp.api.want_interface_events\u001b[27;66H\u001b[1K\u001b[C23,30\u001b[9X\u001b[9C33%\u001b[K\u001b[21;30H\u001b[?12l\u001b[?25h"] [19.058964999999993,"o","\u001b[27;57Hj\u001b[21;30H\u001b[?25l"] [19.06080399999999,"o","\u001b[27;57H \u001b[21;1H\u001b[?12l\u001b[?25h"] [19.06728799999999,"o","\u001b[?25l\u001b[35m\u001b[Hfrom\u001b[39m vpp_papi \u001b[35mimport\u001b[39m VPPApiClient, VPPApiJSONFiles, VppEnum\u001b[K\r\n\u001b[K\u001b[33m\r\ndef\u001b[39m \u001b[36msw_interface_event\u001b[39m(msg):\u001b[K\r\n \u001b[36mprint\u001b[39m(msg)\u001b[K\r\n\u001b[K\u001b[33m\r\ndef\u001b[39m \u001b[36mvpp_event_callback\u001b[39m(msg_name, msg):\u001b[K\r\n \u001b[33mif\u001b[39m msg_name == \u001b[31m\"sw_interface_event\"\u001b[39m:\u001b[K\r\n sw_interface_event(msg)\u001b[K\r\n \u001b[33melse\u001b[39m:\u001b[K\r\n \u001b[36mprint\u001b[39m(f\u001b[31m\"Received unknown callback: {msg_name} =\u003e {msg}\"\u001b[39m)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nvpp_api_socket = \u001b[31m\"/run/vpp/api.sock\"\u001b[39m\u001b[K\r\nvpp_json_dir = VPPApiJSONFiles.find_api_dir([])\u001b[K\r\nvpp_jsonfiles = VPPApiJSONFiles.find_api_files(api_dir=vpp_json_dir)\u001b[K\r\nvpp = VPPApiClient(apifiles=vpp_jsonfiles, server_address=vpp_api_socket)\u001b[K\r\n\u001b[K\r\nvpp.connect(\u001b[31m\"ipng-client\"\u001b[39m)\u001b[K\r\nvpp.register_event_callback(vpp_event_callback)\u001b[K\r\nvpp.api.want_interface_events(enable_disable=\u001b[36mTrue\u001b[39m, pid=\u001b[31m8298\u001b[39m)\u001b[K\r\n\u001b[K\r\napi_reply = vpp.api.show_version()\u001b[K\u001b[36m\r\nprint\u001b[39m(f\u001b[31m\"VPP version is {api_reply.version}\"\u001b[39m)\u001b[K\r\n\u001b[K\u001b[33m\r\ntry\u001b[3"] [19.06757799999999,"o","9m:\u001b[K\u001b[26;2H\u001b[1K\u001b[33m\u001b[Cwhile\u001b[39m \u001b[36mTrue\u001b[39m:\u001b[K\u001b[27;56H\u001b[1K\u001b[C \u001b[9X\u001b[9C24,0-1\u001b[8X\u001b[8C50%\u001b[K\u001b[?12l\u001b[?25h\u001b[21;1H"] [19.24757799999999,"o","\u001b[27;57HG\u001b[21;1H\u001b[?25l"] [19.248563999999988,"o","\u001b[27;57H \u001b[26;3H\u001b[?12l\u001b[?25h"] [19.251712999999988,"o","\u001b[?25l\u001b[H \u001b[36mprint\u001b[39m(msg)\u001b[K\r\n\u001b[K\u001b[33m\r\ndef\u001b[39m \u001b[36mvpp_event_callback\u001b[39m(msg_name, msg):\u001b[K\r\n \u001b[33mif\u001b[39m msg_name == \u001b[31m\"sw_interface_event\"\u001b[39m:\u001b[K\r\n sw_interface_event(msg)\u001b[K\r\n \u001b[33melse\u001b[39m:\u001b[K\r\n \u001b[36mprint\u001b[39m(f\u001b[31m\"Received unknown callback: {msg_name} =\u003e {msg}\"\u001b[39m)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nvpp_api_socket = \u001b[31m\"/run/vpp/api.sock\"\u001b[39m\u001b[K\r\nvpp_json_dir = VPPApiJSONFiles.find_api_dir([])\u001b[K\r\nvpp_jsonfiles = VPPApiJSONFiles.find_api_files(api_dir=vpp_json_dir)\u001b[K\r\nvpp = VPPApiClient(apifiles=vpp_jsonfiles, server_address=vpp_api_socket)\u001b[K\r\n\u001b[K\r\nvpp.connect(\u001b[31m\"ipng-client\"\u001b[39m)\u001b[K\r\nvpp.register_event_callback(vpp_event_callback)\u001b[K\r\nvpp.api.want_interface_events(enable_disable=\u001b[36mTrue\u001b[39m, pid=\u001b[31m8298\u001b[39m)\u001b[K\r\n\u001b[K\r\napi_reply = vpp.api.show_version()\u001b[K\u001b[36m\r\nprint\u001b[39m(f\u001b[31m\"VPP version is {api_reply.version}\"\u001b[39m)\u001b[K\r\n\u001b[K\u001b[33m\r\ntry\u001b[39m:\u001b[K\u001b[23;2H\u001b[1K\u001b[33m\u001b[Cwhile\u001b[39m \u001b[36mTrue\u001b[39m:\u001b[K\u001b[24;4H\u001b[1K\u001b[Ctime.sleep(\u001b[31m1\u001b[39m)\u001b[K\u001b[33m\r\nexcept\u001b[39m \u001b[32mKeyboardInterrupt\u001b[39m:\u001b"] [19.25193699999999,"o","[K\r\n \u001b[33mpass\u001b[39m\u001b[K\u001b[27;56H\u001b[1K\u001b[C \u001b[9X\u001b[9C32,3\u001b[10X\u001b[10CBot\u001b[K\u001b[?12l\u001b[?25h\u001b[26;3H"] [19.43193699999999,"o","\u001b[27;57Hk\u001b[26;3H\u001b[?25l"] [19.433018999999987,"o","\u001b[27;57H \u001b[10C1\u001b[25;3H\u001b[?12l\u001b[?25h"] [19.613018999999987,"o","\u001b[27;57Hk\u001b[25;3H\u001b[?25l\u001b[27;57H \u001b[10C0\u001b[24;3H\u001b[?12l\u001b[?25h"] [19.793018999999987,"o","\u001b[27;57Hk\u001b[24;3H\u001b[?25l"] [19.794783999999986,"o","\u001b[27;57H \u001b[9C29\u001b[23;3H\u001b[?12l\u001b[?25h"] [19.974783999999985,"o","\u001b[27;57H^V\u001b[23;3H\u001b[?25l"] [19.975812999999988,"o","\u001b[27;1H\u001b[1m-- VISUAL BLOCK --\u001b[38C\u001b(B\u001b[m1x1\u001b[7X\u001b[7C29,3\u001b[10X\u001b[10CBot\u001b[K\u001b[23;3H\u001b[?12l\u001b[?25h"] [20.155812999999988,"o","\u001b[27;57Hj \u001b[23;3H\u001b[?25l\u001b[33m\u001b[7mw\u001b[27;57H\u001b(B\u001b[m2x1\u001b[7C30\u001b[24;3H\u001b[?12l\u001b[?25h"] [20.335812999999987,"o","\u001b[27;57Hl \u001b[24;3H\u001b[?25l\u001b[23;4H\u001b[33m\u001b[7mh\r\n\u001b(B\u001b[m \u001b[7m \u001b[27;57H\u001b(B\u001b[m2x2\u001b[10C4\u001b[24;4H\u001b[?12l\u001b[?25h"] [20.515812999999987,"o","\u001b[27;57Hl \u001b[24;4H\u001b[?25l"] [20.517578999999984,"o","\u001b[23;5H\u001b[33m\u001b[7mi\u001b[24;4H\u001b[39m \u001b[27;57H\u001b(B\u001b[m2x3\u001b[10C5\u001b[24;5H\u001b[?12l\u001b[?25h"] [20.612120999999988,"o","\u001b[27;57Hl \u001b[24;5H\u001b[?25l"] [20.615048999999985,"o","\u001b[23;6H\u001b[33m\u001b[7ml\u001b[24;5H\u001b[39mt\u001b[27;57H\u001b(B\u001b[m2x4\u001b[10C6\u001b[24;6H\u001b[?12l\u001b[?25h"] [20.68047699999999,"o","\u001b[27;57Hl \u001b[24;6H\u001b[?25l\u001b[23;7H\u001b[33m\u001b[7me\u001b[24;6H\u001b[39mi\u001b[27;57H\u001b(B\u001b[m2x5\u001b[10C7\u001b[24;7H\u001b[?12l\u001b[?25h"] [20.78138399999999,"o","\u001b[27;57Hl \u001b[24;7H\u001b[?25l"] [20.782263999999984,"o","\u001b[23;8H\u001b[7m \u001b[24;7Hm\u001b[27;57H\u001b(B\u001b[m2x6\u001b[10C8\u001b[24;8H\u001b[?12l\u001b[?25h"] [20.848890999999988,"o","\u001b[27;57Hl \u001b[24;8H\u001b[?25l"] [20.850481999999985,"o","\u001b[23;9H\u001b[36m\u001b[7mT\u001b[24;8H\u001b[39me\u001b[27;57H\u001b(B\u001b[m2x7\u001b[10C9\u001b[24;9H\u001b[?12l\u001b[?25h"] [20.95167399999999,"o","\u001b[27;57Hl \u001b[24;9H\u001b[?25l\u001b[23;10H\u001b[36m\u001b[7mr\u001b[24;9H\u001b[39m.\u001b[27;57H\u001b(B\u001b[m2x8\u001b[10C10\u001b[24;10H\u001b[?12l\u001b[?25h"] [21.01748399999999,"o","\u001b[27;57Hl \u001b[24;10H\u001b[?25l\u001b[23;11H\u001b[36m\u001b[7mu\u001b[24;10H\u001b[39ms\u001b[27;57H\u001b(B\u001b[m2x9\u001b[11C1\u001b[24;11H\u001b[?12l\u001b[?25h"] [21.12177099999999,"o","\u001b[27;57Hl \u001b[24;11H\u001b[?25l\u001b[23;12H\u001b[36m\u001b[7me\u001b[24;11H\u001b[39ml\u001b[27;57H\u001b(B\u001b[m2x10\u001b[10C2\u001b[24;12H\u001b[?12l\u001b[?25h"] [21.18626299999999,"o","\u001b[27;57Hl \u001b[24;12H\u001b[?25l\u001b[23;13H\u001b[7m:\u001b[24;12He\u001b[27;57H\u001b(B\u001b[m2x11\u001b[10C3\u001b[24;13H\u001b[?12l\u001b[?25h"] [21.281693999999987,"o","\u001b[27;57Hl \u001b[24;13H\u001b[?25l\u001b[7me\u001b[27;57H\u001b(B\u001b[m2x12\u001b[10C4\u001b[24;14H\u001b[?12l\u001b[?25h"] [21.38233299999999,"o","\u001b[27;57Hl \u001b[24;14H\u001b[?25l\u001b[7mp\u001b(B\u001b[m\u001b[46m(\u001b[C)\u001b[27;57H\u001b[49m2x13\u001b[10C5\u001b[24;15H\u001b[?12l\u001b[?25h"] [21.44030199999999,"o","\u001b[27;57Hl \u001b[24;15H\u001b[?25l"] [21.44160499999999,"o","\u001b[7m(\u001b[C\u001b(B\u001b[m)\u001b[27;57H2x14\u001b[10C6\u001b[24;16H\u001b[?12l\u001b[?25h"] [21.526474999999984,"o","\u001b[27;57Hl \u001b[24;16H\u001b[?25l"] [21.527880999999986,"o","\u0008\u001b[46m\u001b[7m(\u001b[49m\u001b[31m1\u001b(B\u001b[m\u001b[46m)\u001b[27;57H\u001b[49m2x15\u001b[10C7\u001b[24;17H\u001b[?12l\u001b[?25h"] [21.622100999999986,"o","\u001b[27;57Hl \u001b[24;17H\u001b[?25l\u0008\u0008\u001b[7m(\u001b[C)\u001b[27;57H\u001b(B\u001b[m2x16\u001b[10C8\u001b[24;18H\u001b[?12l\u001b[?25h"] [21.721391999999987,"o","\u001b[27;57H2x16\u001b[24;18H\u0007"] [22.221391999999987,"o","\u001b[27;57H^[ \u001b[24;18H\u001b[?25l"] [22.321120999999984,"o","\u001b[27;57H2x16^[\u001b[24;18H"] [22.324196999999984,"o","\u001b[23;3H\u001b[33mwhile\u001b[39m \u001b[36mTrue\u001b[39m:\r\n time.sleep\u001b[46m(\u001b[49m\u001b[31m1\u001b[39m\u001b[46m)\u001b[49m\u001b[27;66H\u001b[1K\u001b[C30,17\u001b[9X\u001b[9CBot\u001b[K\u001b[24;17H\u001b[?12l\u001b[?25h"] [22.347946999999984,"o","\u001b[27;57Hj\u001b[24;17H\u001b[?25l\u0008\u0008(\u001b[C)\u001b[27;57H \u001b[10C1\u001b[25;17H\u001b[?12l\u001b[?25h"] [22.499325999999982,"o","\u001b[27;57Hj\u001b[25;17H\u001b[?25l\u001b[27;57H \u001b[10C2,6 \u001b[26;6H\u001b[?12l\u001b[?25h"] [22.668345999999985,"o","\u001b[27;57H \u001b[26;6H\u0007"] [22.848345999999985,"o","\r\n:\u001b[55C\u001b[K\u001b[2G\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l"] [23.028345999999985,"o","q"] [23.208345999999985,"o","!"] [23.388345999999984,"o","\r"] [23.389866999999988,"o","\u001b[K"] [23.403484999999982,"o","\u001b[?25l\u001b[H :=*#%@@@@@@@@@@@@@+ .+@@@@# \u001b[K\r\n .+@@@@@@@@@@@@@@@@@@@@##@@@@@@@= \u001b[K\r\n +@@@@@@@@@@@%*+@@@@@@@@@@@@@@@@@* \u001b[K\r\n =@@@@@@@@@#=: *@@@@%#*+*@@@@@@@# \u001b[K\r\n -%@@@@@@@*- ::. :*@@@@@@@@@ \u001b[K\r\n =%@@@@@@@+ *@@@@@@@@@@@* \u001b[K\r\n :*@@@@@@@@+ %@@@@@@@@@@@@@@+. \u001b[K\r\n -*@@@@@@@@@+ +%@@@@@@@@@@@@@@@*. \u001b[K\r\n .-+%@@@@@@@@@#- =@@@@@@@@@@@@@@@+ \u001b[K\r\n :=*%@@@@@@@@%*=: @@@@@@@@@@@@@@@@# \u001b[K\r\n :+#@@@@@@@#*+-: :*%@@@@@@%%@@@@@@@@@@@@@@@@@# \u001b[K\r\n .=#@@%#*+=-. :##%%@@@@@@@@@@@@@@@@@@@@@@@@@# "] [23.403736999999985,"o","\u001b[K\r\n .-=-: ..:-=+*#%@@@@@@@@@@@@@@- \u001b[K\r\n ..::--==++***##%%%%@@@@@@@@@@@@@@@@%%%##***+==-::. .-=*#@@@@@@@@* \u001b[K\r\n .:=+*#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b[K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_ex"] [23.403880999999984,"o","amples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vim 05-events.py \u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25hipng@vpp0-0:~/vpp_papi_examples$ "] [23.583880999999984,"o","."] [23.644106999999984,"o","/"] [23.824106999999984,"o","0"] [23.908788999999985,"o","5-events.py "] [24.088788999999984,"o","\u001b[?25l\u001b[H .+@@@@@@@@@@@@@@@@@@@@##@@@@@@@= \u001b[K\r\n +@@@@@@@@@@@%*+@@@@@@@@@@@@@@@@@* \u001b[K\r\n =@@@@@@@@@#=: *@@@@%#*+*@@@@@@@# \u001b[K\r\n -%@@@@@@@*- ::. :*@@@@@@@@@ \u001b[K\r\n =%@@@@@@@+ *@@@@@@@@@@@* \u001b[K\r\n :*@@@@@@@@+ %@@@@@@@@@@@@@@+. \u001b[K\r\n -*@@@@@@@@@+ +%@@@@@@@@@@@@@@@*. \u001b[K\r\n .-+%@@@@@@@@@#- =@@@@@@@@@@@@@@@+ \u001b[K\r\n :=*%@@@@@@@@%*=: @@@@@@@@@@@@@@@@# \u001b[K\r\n :+#@@@@@@@#*+-: :*%@@@@@@%%@@@@@@@@@@@@@@@@@# \u001b[K\r\n .=#@@%#*+=-. :##%%@@@@@@@@@@@@@@@@@@@@@@@@@# \u001b[K\r\n .-=-: ..:-=+*#%@@@@@@@@@@@@@@- "] [24.08909399999999,"o","\u001b[K\r\n ..::--==++***##%%%%@@@@@@@@@@@@@@@@%%%##***+==-::. .-=*#@@@@@@@@* \u001b[K\r\n .:=+*#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b[K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vim 05-events.py \u001b[K\r\nipng@vpp0-0:~/vpp_p"] [24.089246999999986,"o","api_examples$ ./05-events.py \u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [24.589246999999986,"o","\u001b[?25l\u001b[H +@@@@@@@@@@@%*+@@@@@@@@@@@@@@@@@* \u001b[K\r\n =@@@@@@@@@#=: *@@@@%#*+*@@@@@@@# \u001b[K\r\n -%@@@@@@@*- ::. :*@@@@@@@@@ \u001b[K\r\n =%@@@@@@@+ *@@@@@@@@@@@* \u001b[K\r\n :*@@@@@@@@+ %@@@@@@@@@@@@@@+. \u001b[K\r\n -*@@@@@@@@@+ +%@@@@@@@@@@@@@@@*. \u001b[K\r\n .-+%@@@@@@@@@#- =@@@@@@@@@@@@@@@+ \u001b[K\r\n :=*%@@@@@@@@%*=: @@@@@@@@@@@@@@@@# \u001b[K\r\n :+#@@@@@@@#*+-: :*%@@@@@@%%@@@@@@@@@@@@@@@@@# \u001b[K\r\n .=#@@%#*+=-. :##%%@@@@@@@@@@@@@@@@@@@@@@@@@# \u001b[K\r\n .-=-: ..:-=+*#%@@@@@@@@@@@@@@- \u001b[K\r\n ..::--==++***##%%%%@@@@@@@@@@@@@@@@%%%##***+==-::. .-=*#@@@@@@@@* "] [24.589508999999993,"o","\u001b[K\r\n .:=+*#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b[K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vim 05-events.py \u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./05-events.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\n\u001b[K\u001b[?12"] [24.589629999999993,"o","l\u001b[?25h"] [26.089629999999993,"o","\u001b[?25l\u001b[13A───────────────────────────────────────────\u001b[32m─────────────────────────────────────────\u001b(B\u001b[m\u001b[1;1H .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vim 05-events.py \u001b[K\r"] [26.090003999999993,"o","\nipng@vpp0-0:~/vpp_papi_examples$ ./05-events.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\n\u001b[K\u001b[2B\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[97m\u001b[44m\r\n0:ssh- 1:ssh* 3:ssh \u001b[93msquanchy.ipng.ch\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[15;1H\u001b[32m\u001b[1mpim@squanchy\u001b(B\u001b[m:\u001b[34m\u001b[1m~\u001b(B\u001b[m$ "] [26.096098999999995,"o","\u001b[?25l\u001b[14;1H───────────────────────────────────────────\u001b[32m─────────────────────────────────────────\u001b(B\u001b[m\u001b[97m\u001b[44m\u001b[28;1H0:ssh- 1:bash* 3:ssh \u001b[93msquanchy.ipng.ch\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[15;17H"] [26.596098999999995,"o","#"] [26.741515,"o","#"] [26.809014999999995,"o"," "] [26.983567,"o","O"] [27.039668999999996,"o","K"] [27.219668999999996,"o",","] [27.296413,"o"," "] [27.418355,"o","w"] [27.506391999999998,"o","e"] [27.586714999999998,"o","'"] [27.6787,"o","r"] [27.723833,"o","e"] [27.789918999999998,"o"," "] [27.908926,"o","c"] [27.980922999999997,"o","o"] [28.024271999999996,"o","n"] [28.172694,"o","n"] [28.230540999999995,"o","e"] [28.307245,"o","c"] [28.486148,"o","t"] [28.525095999999998,"o","e"] [28.690345,"o","d"] [28.782627999999995,"o"," "] [28.873920999999996,"o","t"] [28.971311999999998,"o","o"] [29.010306,"o"," "] [29.101810999999998,"o","t"] [29.215876,"o","h"] [29.260118,"o","e"] [29.353598999999996,"o"," "] [29.468243,"o","V"] [29.557339999999996,"o","P"] [29.711942999999998,"o","P"] [29.779796999999995,"o"," "] [29.933704,"o","A"] [30.03022,"o","P"] [30.067507,"o","I"] [30.196830999999996,"o"," "] [30.298862,"o","a"] [30.389685999999998,"o","n"] [30.44762,"o","d"] [30.538683999999996,"o"," "] [30.627699999999997,"o","w"] [30.708248999999995,"o","a"] [30.755119999999998,"o","i"] [30.890684999999998,"o","t"] [30.99196,"o","i"] [31.051826999999996,"o","n"] [31.137988999999997,"o","g"] [31.234856,"o"," "] [31.361413999999996,"o","f"] [31.405436,"o","o"] [31.508018,"o","r"] [31.571334999999998,"o"," "] [31.654443,"o","e"] [31.834443,"o","v"] [31.878805999999997,"o","e"] [31.937111,"o","n"] [32.09626,"o","t"] [32.166979,"o","s"] [32.225309,"o"," "] [32.279554,"o","."] [32.459554,"o","."] [32.550901999999994,"o","."] [34.050901999999994,"o","\r\n\u001b[32m\u001b[1mpim@squanchy\u001b(B\u001b[m:\u001b[34m\u001b[1m~\u001b(B\u001b[m$ "] [34.23090199999999,"o","## OK, we're connected to the VPP API and waiting for events ...\u001b[17G"] [34.41090199999999,"o","tmux a\u001b[K\u001b[6D"] [34.59090199999999,"o","\u001b[C\u001b[1P\u0008"] [34.77090199999999,"o","\u001b[C\u001b[1@m\u0008\u0008"] [34.95090199999999,"o","ssh ipng@mgmt.vpp0-0.lab.ipng.ch\u001b[17G"] [35.13090199999999,"o","/\u001b[K"] [35.226153999999994,"o","s"] [35.406153999999994,"o","\u0008\u001b[K"] [35.55984499999999,"o","\u0008ssh ipng@mgmt.vpp0-0.lab.ipng.ch\u001b[17G"] [35.73984499999999,"o","\r\n"] [37.23984499999999,"o","Linux vpp0-0 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64\r\n"] [37.24131999999999,"o"," -*%%= \r\n =%@@@@@: \r\n :%@@@@@@@* \r\n :*@@@@@@@@@@ .=+- \r\n :=*#%@@@@@@@@@@@@@+ .+@@@@# \r\n .+@@@@@@@@@@@@@@@@@@@@##@@@@@@@= \r\n +@@@@@@@@@@@%*+@@@@@@@@@@@@@@@@@* \r\n =@@@@@@@@@#=: *@@@@%#*+*@@@@@@@# \r\n"] [37.260831999999986,"o","\u001b[?25l\u001b[12A :*@@@@@@@@@@ .=+- \u001b[K\r\n :=*#%@@@@@@@@@@@@@+ .+@@@@# \u001b[K\r\n .+@@@@@@@@@@@@@@@@@@@@##@@@@@@@= \u001b[K\r\n +@@@@@@@@@@@%*+@@@@@@@@@@@@@@@@@* \u001b[K\r\n =@@@@@@@@@#=: *@@@@%#*+*@@@@@@@# \u001b[K\r\n -%@@@@@@@*- ::. :*@@@@@@@@@ \u001b[K\r\n =%@@@@@@@+ *@@@@@@@@@@@* \u001b[K\r\n :*@@@@@@@@+ %@@@@@@@@@@@@@@+. \u001b[K\r\n -*@@@@@@@@@+ +%@@@@@@@@@@@@@@@*. \u001b[K\r\n .-+%@@@@@@@@@#- =@@@@@@@@@@@@@@@+ \u001b[K\r\n :=*%@@@@@@@@%*=: @@@@@@@@@@@@@@@@# \u001b[K\r\n :+#@@@@@@@#*+-: :*%@@@@@@%%@@@@@@@@@@@@@@@@@# "] [37.261046999999984,"o"," \u001b[K\r\n\u001b[K\u001b[13A───────────────────────────────────────────\u001b[32m─────────────────────────────────────────\u001b(B\u001b[m\u001b[97m\u001b[44m\u001b[28;1H0:ssh- 1:ssh* 3:ssh \u001b[93msquanchy.ipng.ch\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[27;1H\u001b[?25l\u001b[12A -*@@@@@@@@@+ +%@@@@@@@@@@@@@@@*. \u001b[K\r\n .-+%@@@@@@@@@#- =@@@@@@@@@@@@@@@+ \u001b[K\r\n :=*%@@@@@@@@%*=: @@@@@@@@@@@@@@@@# \u001b[K\r\n :+#@@@@@@@#*+-: :*%@@@@@@%%@@@@@@@@@@@@@@@@@# \u001b[K\r\n .=#@@%#*+=-. :##%%@@@@@@@@@@@@@@@@@@@@@@@@@# \u001b[K\r\n .-=-: ..:-=+*#%@@@@@@@@@@@@@@- \u001b[K\r\n ..::--==++***##%%%%@@@@@@@@@@@@@@@@%%%##***+==-::. .-=*#@@@@@@@@* \u001b[K\r\n .:=+*#%%"] [37.26120499999998,"o","%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b[K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\u001b[?12l\u001b[?25h"] [37.26637599999999,"o","\u001b[?25l\u001b[15;1H .-=-: ..:-=+*#%@@@@@@@@@@@@@@- \u001b[K\r\n ..::--==++***##%%%%@@@@@@@@@@@@@@@@%%%##***+==-::. .-=*#@@@@@@@@* \u001b[K\r\n .:=+*#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b[K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:09:48 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ \u001b[K\u001b[?"] [37.26646799999998,"o","12l\u001b[?25h"] [37.44646799999998,"o","c"] [37.47180799999998,"o","d"] [37.56701799999998,"o"," "] [37.68996199999998,"o","v"] [37.77797099999998,"o","p"] [37.91229999999998,"o","p"] [39.41229999999998,"o","_"] [39.59229999999998,"o","p"] [39.652673999999976,"o","a"] [39.82088099999997,"o","pi_examples\u0007"] [40.00088099999997,"o","\u001b[?25l\u001b[15;1H ..::--==++***##%%%%@@@@@@@@@@@@@@@@%%%##***+==-::. .-=*#@@@@@@@@* \u001b[K\r\n .:=+*#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b[K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:09:48 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [40.00208899999998,"o","ipng@vpp0-0:~/vpp_papi_examples$ "] [41.50208899999998,"o","v"] [41.601270999999976,"o","p"] [41.741517999999964,"o","p"] [41.80114999999997,"o","c"] [41.98114999999997,"o","t"] [42.04844199999998,"o","l"] [42.54844199999998,"o","\u001b[?25l\u001b[15;1H .:=+*#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+-: :=+#@@@% \u001b[K\r\n ..:--=+**#%@@@@@@@@@@@@@@@@@@@@@@%#*##%@@@@@@@@@@@@@@@#+-. .-+-\u001b[K\r\n .:=+*#%@@@@@@@@@@@@@@@@#+=:..-=+#%@@@@@@@@@@@@#+-. \u001b[K\r\n .:=+#%@@@@@@@@@@@@@@@#+-. :-+#@@@@@@@@@@@%= \u001b[K\r\n https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:09:48 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vppctl\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [42.55584199999997,"o","\u001b[?25l\u001b[12A IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:09:48 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vppctl\u001b[K\u001b[31m\u001b[1m\r\n _______ _ \u001b(B\u001b[m _ _____ ___ \u001b[K\u001b[31m\u001b[1m\r\n __/ __/ _ \\ (_)__ \u001b(B\u001b[m | | / / _ \\/ _ \\\u001b[K\u001b[31m\u001b[1m\r\n _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# \u001b[K\u001b[?12l\u001b[?25h"] [42.73584199999997,"o","c"] [42.91584199999997,"o","r"] [42.960556999999966,"o","e"] [43.13833499999997,"o","\u001b[3Dcreate "] [43.63833499999997,"o","s"] [43.74783899999997,"o","u"] [43.778765999999976,"o","b"] [43.958765999999976,"o","-"] [44.138765999999976,"o","in"] [44.29270499999997,"o","\u001b[6Dsub-interfaces "] [44.47270499999997,"o","G"] [44.611923999999966,"o","i"] [44.73800599999996,"o","gt"] [44.792339999999975,"o","a"] [44.972339999999974,"o","\u0008 \u0008"] [45.102301999999966,"o","\u0008 \u0008"] [45.16653899999997,"o","a"] [45.34653899999997,"o","b"] [45.376408999999974,"o","i"] [45.46602899999997,"o","t"] [45.64602899999997,"o","E"] [45.78606999999997,"o","t"] [45.885741999999965,"o","h"] [45.93022799999997,"o","e"] [45.99132799999997,"o","r"] [46.09547599999996,"o","n"] [46.18931099999996,"o","e"] [46.24647499999996,"o","t"] [46.42647499999996,"o","1"] [46.526373999999954,"o","0"] [46.706373999999954,"o","/"] [46.866298999999955,"o","0"] [47.03625099999995,"o","/"] [47.12607199999995,"o","3"] [47.22573399999996,"o"," "] [47.31469299999996,"o","1"] [47.41072399999996,"o","0"] [47.59072399999996,"o","\u001b[?25l\u001b[15;1H :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:09:48 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vppctl\u001b[K\u001b[31m\u001b[1m\r\n _______ _ \u001b(B\u001b[m _ _____ ___ \u001b[K\u001b[31m\u001b[1m\r\n __/ __/ _ \\ (_)__ \u001b(B\u001b[m | | / / _ \\/ _ \\\u001b[K\u001b[31m\u001b[1m\r\n _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [47.59178699999996,"o","\u001b[?25l\u001b[12ARestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:09:48 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vppctl\u001b[K\u001b[31m\u001b[1m\r\n _______ _ \u001b(B\u001b[m _ _____ ___ \u001b[K\u001b[31m\u001b[1m\r\n __/ __/ _ \\ (_)__ \u001b(B\u001b[m | | / / _ \\/ _ \\\u001b[K\u001b[31m\u001b[1m\r\n _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# \u001b[K\u001b[?12l\u001b[?25h"] [47.59410699999996,"o","\u001b[?25l\u001b[H https://ipng.ch/ :-+#@@@@@@@@@@@@@@@#+-. .-+*%@%*-. \u001b[K\r\n IPng Networks GmbH :=*%@@@@@@@@@@@@@%*- \u001b[K\r\n :=*%@@@@@@@#+-. \u001b[K\r\nRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vim 05-events.py \u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./05-events.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[27;6H"] [49.09410699999996,"o","s"] [49.248460999999956,"o","e"] [49.335102999999954,"o","t"] [49.42130199999995,"o"," "] [49.48303599999995,"o","i"] [49.54177299999996,"o","n"] [49.64261199999995,"o","\u0008\u0008interface "] [49.82261199999995,"o","s"] [50.00261199999995,"o","t"] [50.058636999999955,"o","\u0008\u0008state "] [50.558636999999955,"o","G"] [50.72183599999996,"o","i"] [50.81390599999995,"o","g"] [50.99390599999995,"o","a"] [51.17390599999995,"o","b"] [51.25868599999996,"o","i"] [51.35877899999996,"o","t"] [51.53877899999996,"o","E"] [51.67758799999996,"o","t"] [51.77939999999995,"o","h"] [51.80561799999995,"o","e"] [51.898332999999965,"o","r"] [51.95273599999996,"o","n"] [52.077564999999964,"o","e"] [52.117981999999955,"o","t"] [52.297981999999955,"o","1"] [52.35824499999996,"o","0"] [52.53824499999996,"o","/"] [52.67905399999995,"o","0"] [52.81757899999995,"o","/"] [52.90803299999996,"o","3"] [53.01253399999996,"o"," "] [53.19029899999995,"o","u"] [53.24786099999996,"o","p"] [53.42786099999996,"o","\u001b[?25l\u001b[15;1HAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:09:48 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vppctl\u001b[K\u001b[31m\u001b[1m\r\n _______ _ \u001b(B\u001b[m _ _____ ___ \u001b[K\u001b[31m\u001b[1m\r\n __/ __/ _ \\ (_)__ \u001b(B\u001b[m | | / / _ \\/ _ \\\u001b[K\u001b[31m\u001b[1m\r\n _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [53.42892399999996,"o","vpp# "] [53.438146999999965,"o","\u001b[?25l\u001b[HRestricted access. Authorized users only. :=+-. \u001b[K\r\nAll connections are monitored and recorded. Contact \u003cnoc@ipng.ch\u003e for details.\u001b[K\r\nLast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vim 05-events.py \u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./05-events.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[27;6H"] [53.938146999999965,"o","set interface state GigabitEthernet10/0/3 up"] [54.438146999999965,"o","\u0008 \u0008"] [54.59931799999996,"o","\u0008 \u0008"] [54.77931799999996,"o","\u0008 \u0008"] [54.95931799999996,"o","."] [55.13854199999995,"o","1"] [55.23872299999996,"o","0"] [55.33903599999996,"o"," "] [55.51903599999996,"o","u"] [55.570993999999956,"o","p"] [57.070993999999956,"o","\u001b[?25l\u001b[15;1HLast login: Sun Jan 28 20:09:48 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vppctl\u001b[K\u001b[31m\u001b[1m\r\n _______ _ \u001b(B\u001b[m _ _____ ___ \u001b[K\u001b[31m\u001b[1m\r\n __/ __/ _ \\ (_)__ \u001b(B\u001b[m | | / / _ \\/ _ \\\u001b[K\u001b[31m\u001b[1m\r\n _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# \u001b[K\u001b[?12l\u001b[?25h"] [57.07359299999996,"o","\u001b[?25l\u001b[HLast login: Sun Jan 28 20:07:28 2024 from 198.19.4.4\u001b[K\r\nipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vim 05-events.py \u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./05-events.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP: 1\u003e, deleted=False)\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[27;6H"] [57.25359299999996,"o","d"] [57.38809099999995,"o","e"] [57.53208999999996,"o","l"] [57.56063599999995,"o","e"] [57.71842799999995,"o","\u001b[4Ddelete "] [57.89842799999995,"o","s"] [58.002964999999946,"o","u"] [58.025349999999946,"o","b"] [58.118623999999954,"o","\u001b[3Dsub-interface "] [58.618623999999954,"o","G"] [58.75126699999994,"o","i"] [58.84163999999994,"o","g"] [58.94204399999995,"o","a"] [59.12204399999995,"o","b"] [59.181452999999955,"o","i"] [59.25155599999996,"o","t"] [59.43155599999996,"o","E"] [59.57109899999995,"o","t"] [59.65418099999995,"o","h"] [59.70424899999995,"o","e"] [59.80019499999996,"o","r"] [59.87263499999996,"o","n"] [59.962165999999954,"o","e"] [60.02242699999995,"o","t"] [60.20242699999995,"o","1"] [60.29786699999995,"o","0"] [60.47786699999995,"o","/"] [60.65739899999994,"o","0"] [60.777674999999945,"o","/"] [60.91708099999994,"o","3"] [61.09708099999994,"o","."] [61.26970299999994,"o","1"] [61.37968699999994,"o","0"] [61.55968699999994,"o","\u001b[?25l\u001b[15;1Hipng@vpp0-0:~$ cd vpp_papi_examples\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ vppctl\u001b[K\u001b[31m\u001b[1m\r\n _______ _ \u001b(B\u001b[m _ _____ ___ \u001b[K\u001b[31m\u001b[1m\r\n __/ __/ _ \\ (_)__ \u001b(B\u001b[m | | / / _ \\/ _ \\\u001b[K\u001b[31m\u001b[1m\r\n _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25hvpp# "] [61.569540999999944,"o","\u001b[?25l\u001b[Hipng@vpp0-0:~/vpp_papi_examples$ vim 05-events.py \u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./05-events.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP: 1\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[27;6H"] [63.069540999999944,"o","delete sub-interface GigabitEthernet10/0/3.10"] [63.249540999999944,"o","\u001b[5D \u001b[4D\u001b[19D \u001b[17D"] [63.251133999999944,"o","\u001b[11D \u001b[11D\u001b[6Gset interface state GigabitEthernet10/0/3.10 up"] [63.751133999999944,"o","\u001b[6D \u001b[5D\u001b[19G \u001b[18G"] [63.75249199999994,"o","\u001b[6Gset interface state GigabitEthernet10/0/3 up"] [63.93249199999994,"o","\u0008 \u0008"] [64.09111999999993,"o","\u0008 \u0008"] [64.27111999999994,"o","d"] [64.35991299999993,"o","o"] [64.48042899999994,"o","w"] [64.57010199999993,"o","n"] [64.75010199999994,"o","\u001b[?25l\u001b[15;1Hipng@vpp0-0:~/vpp_papi_examples$ vppctl\u001b[K\u001b[31m\u001b[1m\r\n _______ _ \u001b(B\u001b[m _ _____ ___ \u001b[K\u001b[31m\u001b[1m\r\n __/ __/ _ \\ (_)__ \u001b(B\u001b[m | | / / _ \\/ _ \\\u001b[K\u001b[31m\u001b[1m\r\n _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25hvpp# "] [64.75554099999994,"o","\u001b[?25l\u001b[HVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP: 1\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[27;6H"] [65.25554099999994,"o","\u001b[?25l\u001b[31m\u001b[1m\u001b[15;1H _______ _ \u001b(B\u001b[m _ _____ ___ \u001b[K\u001b[31m\u001b[1m\r\n __/ __/ _ \\ (_)__ \u001b(B\u001b[m | | / / _ \\/ _ \\\u001b[K\u001b[31m\u001b[1m\r\n _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [65.25689399999995,"o","ipng@vpp0-0:~/vpp_papi_examples$ "] [66.75689399999995,"o","\u001b[?25l\u001b[14;1H\u001b[32m───────────────────────────────────────────\u001b[39m─────────────────────────────────────────\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[13;1H"] [66.93689399999995,"o","\u001b[?25l\u001b[Hsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP: 1\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [67.11041799999995,"o","\u001b[?25l\u001b[H\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP: 1\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [67.24394699999995,"o","\u001b[?25l\u001b[Hsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP: 1\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [67.42394699999996,"o","\u001b[?25l\r\n───────────────────────────────────────────\u001b[32m─────────────────────────────────────────\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[27;34H"] [67.92394699999996,"o","#"] [68.07222599999996,"o","#"] [68.19910099999996,"o"," "] [68.33441099999996,"o","R"] [68.49976299999996,"o","e"] [68.55964399999995,"o","m"] [68.70930699999995,"o","m"] [68.88930699999996,"o","\u0008\u001b[K"] [68.99874299999996,"o","e"] [69.09905299999996,"o","m"] [69.27905299999996,"o","b"] [69.34107799999997,"o","e"] [69.40150599999997,"o","r"] [69.46218399999997,"o"," "] [69.56438599999996,"o","t"] [69.66279699999997,"o","h"] [69.72393399999996,"o","a"] [69.82105199999997,"o","t"] [69.92565799999996,"o"," "] [70.42565799999996,"o","0"] [70.48909699999996,"o","4"] [70.66909699999997,"o","-"] [70.84909699999997,"o","v"] [71.02909699999998,"o","x"] [71.10213999999999,"o","l"] [71.19267299999998,"o","a"] [71.24794299999998,"o","n"] [71.42794299999998,"o","."] [71.60794299999999,"o","p"] [71.787943,"o","y"] [71.927904,"o"," "] [72.006228,"o","s"] [72.103602,"o","c"] [72.275883,"o","r"] [72.40750799999999,"o","i"] [72.467647,"o","p"] [72.567112,"o","t"] [72.74341,"o","?"] [72.843574,"o"," "] [72.987376,"o","I"] [73.108739,"o","t"] [73.167819,"o"," "] [73.271959,"o","a"] [73.417324,"o","l"] [73.474932,"o","s"] [73.540927,"o","o"] [73.631439,"o"," "] [73.777089,"o","c"] [73.948098,"o","r"] [74.00838399999999,"o","e"] [74.06759699999999,"o","a"] [74.247597,"o","t"] [74.312249,"o","\u001b[?25l\u001b[31m\u001b[1m\u001b[15;1H __/ __/ _ \\ (_)__ \u001b(B\u001b[m | | / / _ \\/ _ \\\u001b[K\u001b[31m\u001b[1m\r\n _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also create \u001b[K\u001b[?12l\u001b[?25h\r"] [74.492249,"o","s"] [74.67224900000001,"o"," "] [74.85224900000001,"o","a"] [74.94905300000002,"o"," "] [75.04127800000002,"o","f"] [75.18650400000001,"o","e"] [75.24187700000002,"o","w"] [75.34330500000002,"o"," "] [75.40160600000002,"o","i"] [75.47198000000002,"o","n"] [75.50166200000002,"o","t"] [75.65194000000002,"o","e"] [75.68173900000002,"o","r"] [75.86173900000003,"o","f"] [75.92093800000002,"o","a"] [76.03042500000002,"o","c"] [76.11219600000003,"o","e"] [76.28948400000003,"o","s"] [76.42109500000002,"o"," "] [76.48205200000002,"o","."] [76.66205200000003,"o","."] [76.76295100000003,"o","."] [77.26295100000003,"o","\u001b[?25l\u001b[31m\u001b[1m\u001b[15;1H _/ _// // / / / _ \\\u001b(B\u001b[m | |/ / ___/ ___/\u001b[K\u001b[31m\u001b[1m\r\n /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also creates a few interfaces ...\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25hipng@vpp0-0:~/vpp_papi_examples$ "] [77.44295100000004,"o","."] [77.47505300000005,"o","/"] [77.65505300000005,"o","0"] [77.83079600000005,"o","4"] [78.01079600000006,"o","-"] [78.19079600000006,"o","v"] [78.37079600000007,"o","x"] [78.50913100000007,"o","l"] [78.61903900000007,"o","a"] [78.71809500000008,"o","n"] [78.86416200000008,"o",".py "] [80.36416200000008,"o","\u001b[?25l\u001b[31m\u001b[1m\u001b[15;1H /_/ /____(_)_/\\___/\u001b(B\u001b[m |___/_/ /_/ \u001b[K\r\n\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also creates a few interfaces ...\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [80.86416200000008,"o","\u001b[?25l\u001b[12A\u001b[K\r\nvpp# create sub-interfaces GigabitEthernet10/0/3 10\u001b[K\r\nGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also creates a few interfaces ...\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[?25l\u001b[Hsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP: 1\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nsw_interface_"] [80.86434100000008,"o","event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[27d\u001b[?25l\u001b[12AGigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also creates a few interfaces ...\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nCreated VXLAN tunnel with sw_if_index=18\u001b[K\r\n[18] instance 100 vni 8298 src 192.0.2.1:4789 dst 192.0.2.254:4789\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[?25l\u001b[Hsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_inde"] [80.86488900000008,"o","x=4, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\n\u001b[K\u001b[2Bvpp# set interface state GigabitEthernet10/0/3 up\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also creates a few interfaces ...\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nCreated VXLAN tunnel with sw_if_index=18\u001b[K\r\n[18] instance 100 vni 8298 src 192.0.2.1:4789 dst 192.0.2.254:4789\u001b[K\r\nDeleted VXLAN tunnel with sw_if_index=18\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [80.86965100000008,"o","ipng@vpp0-0:~/vpp_papi_examples$ "] [81.36965100000008,"o","\u001b[?25l\u001b[14;1H\u001b[32m───────────────────────────────────────────\u001b[39m─────────────────────────────────────────\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[13;1H"] [81.54965100000008,"o","\u001b[?25l\u001b[H\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [81.65884700000008,"o","\u001b[?25l\u001b[Hsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=4, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=False)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [81.83884700000009,"o","\u001b[?25l\r\n───────────────────────────────────────────\u001b[32m─────────────────────────────────────────\u001b(B\u001b[m\u001b[?12l\u001b[?25h\u001b[27;34H"] [82.0188470000001,"o","\u001b[?25l\u001b[15;1Hvpp# set interface state GigabitEthernet10/0/3.10 up\u001b[K\r\nvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also creates a few interfaces ...\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nCreated VXLAN tunnel with sw_if_index=18\u001b[K\r\n[18] instance 100 vni 8298 src 192.0.2.1:4789 dst 192.0.2.254:4789\u001b[K\r\nDeleted VXLAN tunnel with sw_if_index=18\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ \u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25hipng@vpp0-0:~/vpp_papi_examples$ "] [82.1988470000001,"o","./04-vxlan.py "] [82.3788470000001,"o","\u001b[?25l\u001b[15;1Hvpp# delete sub-interface GigabitEthernet10/0/3.10\u001b[K\r\nvpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also creates a few interfaces ...\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nCreated VXLAN tunnel with sw_if_index=18\u001b[K\r\n[18] instance 100 vni 8298 src 192.0.2.1:4789 dst 192.0.2.254:4789\u001b[K\r\nDeleted VXLAN tunnel with sw_if_index=18\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ \u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h"] [82.8788470000001,"o","\u001b[?25l\u001b[12Avpp# set interface state GigabitEthernet10/0/3 down \u001b[K\r\nvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also creates a few interfaces ...\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nCreated VXLAN tunnel with sw_if_index=18\u001b[K\r\n[18] instance 100 vni 8298 src 192.0.2.1:4789 dst 192.0.2.254:4789\u001b[K\r\nDeleted VXLAN tunnel with sw_if_index=18\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ \u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[?25l\u001b[H\u001b[K\r\n\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18"] [82.87896300000013,"o",", flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\n\u001b[K\u001b[2Bvpp# quit\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ## Remember that 04-vxlan.py script? It also creates a few interfaces ...\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nCreated VXLAN tunnel with sw_if_index=18\u001b[K\r\n[18] instance 100 vni 8298 src 192.0.2.1:4789 dst 192.0.2.254:4789\u001b[K\r\nDeleted VXLAN tunnel with sw_if_index=18\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ \u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nCreated VXLAN tunnel with sw_if_index=18\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[?25l\u001b[12As a few interfaces ...\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nCreated VXLAN tunnel with sw_if_index=18\u001b[K\r\n[18] instance 100 vni 8298 src 192.0.2.1:4789 dst 192.0.2.254:4789\u001b[K\r\nDeleted VXLAN tunnel with sw_if_index=18\u001b[K\r\nipng@vpp0-0:~/vpp_papi_examples$ \u001b[K"] [82.87926100000011,"o","\r\nipng@vpp0-0:~/vpp_papi_examples$ ./04-vxlan.py \u001b[K\r\nVPP version is 24.02-rc0~46-ga16463610\u001b[K\r\nCreated VXLAN tunnel with sw_if_index=18\u001b[K\r\n[18] instance 100 vni 8298 src 192.0.2.1:4789 dst 192.0.2.254:4789\u001b[K\r\nDeleted VXLAN tunnel with sw_if_index=18\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[?25l\u001b[Hsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\n\u001b[K\r\n\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t.IF_STATUS_API_FLAG_ADMIN_UP|IF_STATUS_API_FLAG_LINK_UP: 3\u003e, deleted=False)\u001b[K\r\nsw_interface_event(_0=721, client_index=2147483650, pid=8298, sw_if_index=18, flags=\u003cvl_api_if_status_flags_t: 0\u003e, deleted=True)\u001b[K\r\n\u001b[K\u001b[?12l\u001b[?25h\u001b[27d"] [82.88781500000012,"o","ipng@vpp0-0:~/vpp_papi_examples$ "] [83.38781500000012,"o","#"] [83.51873400000012,"o","#"] [83.64309500000012,"o"," "] [83.7620680000001,"o","T"] [83.90479200000011,"o","h"] [83.96712500000011,"o","e"] [84.08162800000012,"o"," "] [84.2231630000001,"o","V"] [84.36112700000011,"o","P"] [84.54112700000012,"o","P"] [84.62408200000012,"o"," "] [84.80390400000012,"o","A"] [84.98390400000012,"o","P"] [85.08618300000013,"o","I"] [85.26618300000014,"o"," "] [85.43929200000015,"o","E"] [85.61663100000014,"o","v"] [85.64749800000014,"o","e"] [85.75156400000016,"o","n"] [85.83676700000014,"o","t"] [86.01676700000014,"o","s"] [86.15343000000014,"o"," "] [86.25459600000015,"o","s"] [86.34081300000015,"o","y"] [86.41698900000016,"o","s"] [86.58404800000015,"o","t"] [86.63939600000013,"o","e"] [86.68753500000015,"o","m"] [86.78389800000015,"o"," "] [86.88336000000014,"o","i"] [86.94382700000016,"o","n"] [87.00423100000013,"o"," "] [87.16917100000013,"o","P"] [87.34917100000014,"o","y"] [87.45917700000014,"o","t"] [87.53017000000015,"o","h"] [87.65960900000015,"o","o"] [87.75911700000016,"o","n"] [87.93911700000017,"o","."] [88.11042600000015,"o"," "] [88.26833500000016,"o","C"] [88.38845100000016,"o","o"] [88.52020900000015,"o","o"] [88.65188800000014,"o","l"] [88.83188800000015,"o","!"] [90.00000,"o"," "]