Make sure notebook is using correct dict key

This commit is contained in:
Marek Wolan
2024-03-15 14:03:37 +00:00
parent d9b6506572
commit 33dd6e4dcd

View File

@@ -352,7 +352,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {
"tags": []
},
@@ -364,7 +364,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"metadata": {
"tags": []
},
@@ -389,9 +389,154 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 3,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"env created successfully\n",
"{'ACL': {1: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 0,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0},\n",
" 2: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 1,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0},\n",
" 3: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 2,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0},\n",
" 4: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 3,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0},\n",
" 5: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 4,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0},\n",
" 6: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 5,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0},\n",
" 7: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 6,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0},\n",
" 8: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 7,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0},\n",
" 9: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 8,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0},\n",
" 10: {'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'permission': 0,\n",
" 'position': 9,\n",
" 'protocol': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0}},\n",
" 'ICS': 0,\n",
" 'LINKS': {1: {'PROTOCOLS': {'ALL': 1}},\n",
" 2: {'PROTOCOLS': {'ALL': 1}},\n",
" 3: {'PROTOCOLS': {'ALL': 1}},\n",
" 4: {'PROTOCOLS': {'ALL': 1}},\n",
" 5: {'PROTOCOLS': {'ALL': 1}},\n",
" 6: {'PROTOCOLS': {'ALL': 1}},\n",
" 7: {'PROTOCOLS': {'ALL': 1}},\n",
" 8: {'PROTOCOLS': {'ALL': 1}},\n",
" 9: {'PROTOCOLS': {'ALL': 1}},\n",
" 10: {'PROTOCOLS': {'ALL': 0}}},\n",
" 'NODES': {1: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}},\n",
" 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 1}},\n",
" 'operating_status': 1},\n",
" 2: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}},\n",
" 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 1}},\n",
" 'operating_status': 1},\n",
" 3: {'FOLDERS': {1: {'FILES': {1: {'health_status': 1}},\n",
" 'health_status': 1}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 4: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}},\n",
" 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 5: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}},\n",
" 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 6: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}},\n",
" 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 7: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}},\n",
" 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0},\n",
" 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1}}}\n"
]
}
],
"source": [
"# create the env\n",
"with open(data_manipulation_config_path(), 'r') as f:\n",
@@ -419,7 +564,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
@@ -437,9 +582,51 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 5,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"step: 1, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 2, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 3, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 4, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 5, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 6, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 7, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 8, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 9, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 10, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 11, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 12, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 13, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 14, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 15, Red action: DO NOTHING, Blue reward:0.90\n",
"step: 16, Red action: DO NOTHING, Blue reward:0.95\n",
"step: 17, Red action: DO NOTHING, Blue reward:0.95\n",
"step: 18, Red action: DO NOTHING, Blue reward:0.95\n",
"step: 19, Red action: DO NOTHING, Blue reward:0.95\n",
"step: 20, Red action: DO NOTHING, Blue reward:1.00\n",
"step: 21, Red action: DO NOTHING, Blue reward:1.00\n",
"step: 22, Red action: DO NOTHING, Blue reward:1.00\n",
"step: 23, Red action: DO NOTHING, Blue reward:1.00\n",
"step: 24, Red action: DO NOTHING, Blue reward:1.00\n",
"step: 25, Red action: DO NOTHING, Blue reward:1.00\n",
"step: 26, Red action: ATTACK from client 1, Blue reward:0.20\n",
"step: 27, Red action: DO NOTHING, Blue reward:-0.30\n",
"step: 28, Red action: DO NOTHING, Blue reward:-0.80\n",
"step: 29, Red action: DO NOTHING, Blue reward:-0.80\n",
"step: 30, Red action: DO NOTHING, Blue reward:-0.80\n",
"step: 31, Red action: DO NOTHING, Blue reward:-0.80\n",
"step: 32, Red action: DO NOTHING, Blue reward:-0.80\n",
"step: 33, Red action: DO NOTHING, Blue reward:-0.80\n",
"step: 34, Red action: DO NOTHING, Blue reward:-0.80\n",
"step: 35, Red action: DO NOTHING, Blue reward:-0.80\n"
]
}
],
"source": [
"for step in range(35):\n",
" obs, reward, terminated, truncated, info = env.step(0)\n",
@@ -455,9 +642,51 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 6,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{1: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 1}},\n",
" 'operating_status': 1},\n",
" 2: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 1}},\n",
" 'operating_status': 1},\n",
" 3: {'FOLDERS': {1: {'FILES': {1: {'health_status': 1}}, 'health_status': 1}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 4: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 5: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 6: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 7: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1}}\n"
]
}
],
"source": [
"pprint(obs['NODES'])"
]
@@ -471,9 +700,51 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 7,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{1: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 1}},\n",
" 'operating_status': 1},\n",
" 2: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 3, 'operating_status': 1}},\n",
" 'operating_status': 1},\n",
" 3: {'FOLDERS': {1: {'FILES': {1: {'health_status': 2}}, 'health_status': 1}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 4: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 5: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 6: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1},\n",
" 7: {'FOLDERS': {1: {'FILES': {1: {'health_status': 0}}, 'health_status': 0}},\n",
" 'NICS': {1: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 1},\n",
" 2: {'NMNE': {'inbound': 0, 'outbound': 0}, 'nic_status': 0}},\n",
" 'SERVICES': {1: {'health_status': 0, 'operating_status': 0}},\n",
" 'operating_status': 1}}\n"
]
}
],
"source": [
"obs, reward, terminated, truncated, info = env.step(9) # scan database file\n",
"obs, reward, terminated, truncated, info = env.step(1) # scan webapp service\n",
@@ -504,9 +775,21 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"step: 38\n",
"Red action: DONOTHING\n",
"Green action: NODE_APPLICATION_EXECUTE\n",
"Green action: NODE_APPLICATION_EXECUTE\n",
"Blue reward:-0.8\n"
]
}
],
"source": [
"obs, reward, terminated, truncated, info = env.step(13) # patch the database\n",
"print(f\"step: {env.game.step_counter}\")\n",
@@ -529,9 +812,21 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 18,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"step: 48\n",
"Red action: DONOTHING\n",
"Green action: timestep=47 action='NODE_APPLICATION_EXECUTE' parameters={'node_id': 0, 'application_id': 0} request=['network', 'node', 'client_2', 'application', 'WebBrowser', 'execute'] response=RequestResponse(status='failure', data={})\n",
"Green action: timestep=47 action='NODE_APPLICATION_EXECUTE' parameters={'node_id': 0, 'application_id': 0} request=['network', 'node', 'client_1', 'application', 'WebBrowser', 'execute'] response=RequestResponse(status='failure', data={})\n",
"Blue reward:-0.80\n"
]
}
],
"source": [
"obs, reward, terminated, truncated, info = env.step(0) # do nothing\n",
"print(f\"step: {env.game.step_counter}\")\n",
@@ -552,9 +847,27 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 19,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"step: 49, Red action: DONOTHING, Blue reward:-0.80\n",
"step: 50, Red action: DONOTHING, Blue reward:-0.80\n",
"step: 51, Red action: DONOTHING, Blue reward:-0.80\n",
"step: 52, Red action: DONOTHING, Blue reward:1.00\n",
"step: 53, Red action: DONOTHING, Blue reward:0.90\n",
"step: 54, Red action: DONOTHING, Blue reward:0.90\n",
"step: 55, Red action: DONOTHING, Blue reward:0.90\n",
"step: 56, Red action: DONOTHING, Blue reward:0.90\n",
"step: 57, Red action: DONOTHING, Blue reward:0.90\n",
"step: 58, Red action: DONOTHING, Blue reward:0.90\n",
"step: 59, Red action: DONOTHING, Blue reward:0.80\n"
]
}
],
"source": [
"env.step(13) # Patch the database\n",
"print(f\"step: {env.game.step_counter}, Red action: {info['agent_actions']['data_manipulation_attacker'].action}, Blue reward:{reward:.2f}\" )\n",
@@ -576,7 +889,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, even though the red agent executes an attack, the reward stays at 0.8."
"Now, even though the red agent executes an attack, the reward will stay at 0.8."
]
},
{
@@ -588,9 +901,89 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 20,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"{1: {'position': 0,\n",
" 'permission': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0,\n",
" 'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'protocol': 0},\n",
" 2: {'position': 1,\n",
" 'permission': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0,\n",
" 'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'protocol': 0},\n",
" 3: {'position': 2,\n",
" 'permission': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0,\n",
" 'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'protocol': 0},\n",
" 4: {'position': 3,\n",
" 'permission': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0,\n",
" 'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'protocol': 0},\n",
" 5: {'position': 4,\n",
" 'permission': 2,\n",
" 'source_node_id': 7,\n",
" 'source_port': 1,\n",
" 'dest_node_id': 4,\n",
" 'dest_port': 1,\n",
" 'protocol': 3},\n",
" 6: {'position': 5,\n",
" 'permission': 2,\n",
" 'source_node_id': 8,\n",
" 'source_port': 1,\n",
" 'dest_node_id': 4,\n",
" 'dest_port': 1,\n",
" 'protocol': 3},\n",
" 7: {'position': 6,\n",
" 'permission': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0,\n",
" 'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'protocol': 0},\n",
" 8: {'position': 7,\n",
" 'permission': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0,\n",
" 'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'protocol': 0},\n",
" 9: {'position': 8,\n",
" 'permission': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0,\n",
" 'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'protocol': 0},\n",
" 10: {'position': 9,\n",
" 'permission': 0,\n",
" 'source_node_id': 0,\n",
" 'source_port': 0,\n",
" 'dest_node_id': 0,\n",
" 'dest_port': 0,\n",
" 'protocol': 0}}"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"obs['ACL']"
]
@@ -604,9 +997,18 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 23,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"blocking client 1\n",
"\n"
]
}
],
"source": [
"env.step(58) # Remove the ACL rule that blocks client 1\n",
"env.step(57) # Remove the ACL rule that blocks client 2\n",
@@ -616,12 +1018,12 @@
" tries += 1\n",
" obs, reward, terminated, truncated, info = env.step(0)\n",
"\n",
" if obs['NODES'][6]['NETWORK_INTERFACES'][1]['nmne']['outbound'] == 1:\n",
" if obs['NODES'][6]['NICS'][1]['NMNE']['outbound'] == 1:\n",
" # client 1 has NMNEs, let's block it\n",
" obs, reward, terminated, truncated, info = env.step(50) # block client 1\n",
" print(\"blocking client 1\")\n",
" break\n",
" elif obs['NODES'][7]['NETWORK_INTERFACES'][1]['nmne']['outbound'] == 1:\n",
" elif obs['NODES'][7]['NICS'][1]['NMNE']['outbound'] == 1:\n",
" # client 2 has NMNEs, so let's block it\n",
" obs, reward, terminated, truncated, info = env.step(51) # block client 2\n",
" print(\"blocking client 2\")\n",
@@ -643,9 +1045,56 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 24,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"step: 90, Red action: DONOTHING, Blue reward:0.00\n",
"step: 91, Red action: DONOTHING, Blue reward:1.00\n",
"step: 92, Red action: DONOTHING, Blue reward:1.00\n",
"step: 93, Red action: DONOTHING, Blue reward:1.00\n",
"step: 94, Red action: DONOTHING, Blue reward:1.00\n",
"step: 95, Red action: DONOTHING, Blue reward:1.00\n",
"step: 96, Red action: DONOTHING, Blue reward:0.90\n",
"step: 97, Red action: DONOTHING, Blue reward:0.90\n",
"step: 98, Red action: DONOTHING, Blue reward:0.90\n",
"step: 99, Red action: DONOTHING, Blue reward:0.90\n",
"step: 100, Red action: DONOTHING, Blue reward:0.90\n",
"step: 101, Red action: DONOTHING, Blue reward:0.90\n",
"step: 102, Red action: DONOTHING, Blue reward:0.90\n",
"step: 103, Red action: DONOTHING, Blue reward:0.90\n",
"step: 104, Red action: DONOTHING, Blue reward:0.90\n",
"step: 105, Red action: DONOTHING, Blue reward:0.90\n",
"step: 106, Red action: NODE_APPLICATION_EXECUTE, Blue reward:0.90\n",
"step: 107, Red action: DONOTHING, Blue reward:0.90\n",
"step: 108, Red action: DONOTHING, Blue reward:0.90\n",
"step: 109, Red action: DONOTHING, Blue reward:0.90\n",
"step: 110, Red action: DONOTHING, Blue reward:0.90\n",
"step: 111, Red action: DONOTHING, Blue reward:0.90\n",
"step: 112, Red action: DONOTHING, Blue reward:0.90\n",
"step: 113, Red action: DONOTHING, Blue reward:0.90\n",
"step: 114, Red action: DONOTHING, Blue reward:0.90\n",
"step: 115, Red action: DONOTHING, Blue reward:0.90\n",
"step: 116, Red action: DONOTHING, Blue reward:0.90\n",
"step: 117, Red action: DONOTHING, Blue reward:0.90\n",
"step: 118, Red action: DONOTHING, Blue reward:0.90\n",
"step: 119, Red action: DONOTHING, Blue reward:0.90\n",
"step: 120, Red action: DONOTHING, Blue reward:0.90\n",
"step: 121, Red action: DONOTHING, Blue reward:0.90\n",
"step: 122, Red action: DONOTHING, Blue reward:0.90\n",
"step: 123, Red action: DONOTHING, Blue reward:0.90\n",
"step: 124, Red action: DONOTHING, Blue reward:0.90\n",
"step: 125, Red action: DONOTHING, Blue reward:0.90\n",
"step: 126, Red action: DONOTHING, Blue reward:0.90\n",
"step: 127, Red action: DONOTHING, Blue reward:0.90\n",
"step: 128, Red action: NODE_APPLICATION_EXECUTE, Blue reward:0.90\n",
"step: 129, Red action: DONOTHING, Blue reward:0.90\n"
]
}
],
"source": [
"\n",
"for step in range(40):\n",