{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [],
"source": [
"import pandas as pd\n",
"from pybatfish.client.session import Session\n",
"from pybatfish.datamodel import *\n",
"\n",
"pd.set_option(\"display.width\", 300) \n",
"pd.set_option(\"display.max_columns\", 30) \n",
"pd.set_option(\"display.max_rows\", 1000) \n",
"pd.set_option(\"display.max_colwidth\", None)\n",
"\n",
"# Configure all pybatfish loggers to use WARN level\n",
"import logging\n",
"logging.getLogger('pybatfish').setLevel(logging.WARN)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [],
"source": [
"bf = Session(host=\"localhost\")\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "150b238a",
"metadata": {},
"source": [
"#### Resolving Specifiers"
]
},
{
"cell_type": "markdown",
"id": "12e8ab65",
"metadata": {},
"source": [
"Specifier grammars allow you to specify complex inputs for Batfish questions.\n",
"This category of questions reveals how specifier inputs are resolved\n",
"by Batfish.\n"
]
},
{
"cell_type": "markdown",
"id": "9399a80b",
"metadata": {},
"source": [
"* [Resolve Location Specifier](#Resolve-Location-Specifier)\n",
"* [Resolve Filter Specifier](#Resolve-Filter-Specifier)\n",
"* [Resolve Node Specifier](#Resolve-Node-Specifier)\n",
"* [Resolve Interface Specifier](#Resolve-Interface-Specifier)\n",
"* [Resolve IPs from Location Specifier](#Resolve-IPs-from-Location-Specifier)\n",
"* [Resolve IP Specifier](#Resolve-IP-Specifier)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f3295cd7",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_network('generate_questions')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "02c54c9c",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_snapshot('generate_questions')"
]
},
{
"cell_type": "markdown",
"id": "2f4c601b",
"metadata": {},
"source": [
"##### Resolve Location Specifier"
]
},
{
"cell_type": "markdown",
"id": "f5b4b8fa",
"metadata": {},
"source": [
"Returns the set of locations corresponding to a locationSpec value."
]
},
{
"cell_type": "markdown",
"id": "d29e851e",
"metadata": {},
"source": [
"Helper question that shows how specified locationSpec values resolve to the locations in the network."
]
},
{
"cell_type": "markdown",
"id": "e6bb8e63",
"metadata": {},
"source": [
"###### **Inputs**"
]
},
{
"cell_type": "markdown",
"id": "4dabd29f",
"metadata": {},
"source": [
"Name | Description | Type | Optional | Default Value\n",
"--- | --- | --- | --- | --- \n",
"locations | Input to the LocationSpecifier. | [LocationSpec](../specifiers.md#location-specifier) | False | \n",
"grammarVersion | Version of grammar to use for resolution. | str | True | "
]
},
{
"cell_type": "markdown",
"id": "a1facd9d",
"metadata": {},
"source": [
"###### **Invocation**"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "aad8dcb3",
"metadata": {},
"outputs": [],
"source": [
"result = bf.q.resolveLocationSpecifier(locations='@enter(as2border1[GigabitEthernet2/0])').answer().frame()"
]
},
{
"cell_type": "markdown",
"id": "10bc5255",
"metadata": {},
"source": [
"###### **Return Value**"
]
},
{
"cell_type": "markdown",
"id": "b97f0fe8",
"metadata": {},
"source": [
"Name | Description | Type\n",
"--- | --- | ---\n",
"Location | Location | str"
]
},
{
"cell_type": "markdown",
"id": "3aabdb50",
"metadata": {},
"source": [
"Print the first 5 rows of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "8d5ba5ea",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Location | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" InterfaceLinkLocation{nodeName=as2border1, interfaceName=GigabitEthernet2/0} | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Location\n",
"0 InterfaceLinkLocation{nodeName=as2border1, interfaceName=GigabitEthernet2/0}"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.head(5)"
]
},
{
"cell_type": "markdown",
"id": "3ac1ebdc",
"metadata": {},
"source": [
"Print the first row of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "45f02827",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Location InterfaceLinkLocation{nodeName=as2border1, interfaceName=GigabitEthernet2/0}\n",
"Name: 0, dtype: object"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.iloc[0]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "1fd6a704",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_network('generate_questions')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "caa3d350",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_snapshot('generate_questions')"
]
},
{
"cell_type": "markdown",
"id": "2b3dfae7",
"metadata": {},
"source": [
"##### Resolve Filter Specifier"
]
},
{
"cell_type": "markdown",
"id": "0c255dd6",
"metadata": {},
"source": [
"Returns the set of filters corresponding to a filterSpec value."
]
},
{
"cell_type": "markdown",
"id": "821222e4",
"metadata": {},
"source": [
"Helper question that shows how specified filterSpec values resolve to the filters in the network."
]
},
{
"cell_type": "markdown",
"id": "8b1a608e",
"metadata": {},
"source": [
"###### **Inputs**"
]
},
{
"cell_type": "markdown",
"id": "803449da",
"metadata": {},
"source": [
"Name | Description | Type | Optional | Default Value\n",
"--- | --- | --- | --- | --- \n",
"filters | Input to the FilterSpecifier. | [FilterSpec](../specifiers.md#filter-specifier) | False | \n",
"grammarVersion | Version of grammar to use for resolution. | str | True | \n",
"nodes | Input to the NodeSpecifier that specifies the set of nodes that should be considered. | [NodeSpec](../specifiers.md#node-specifier) | True | /.*/"
]
},
{
"cell_type": "markdown",
"id": "633baca3",
"metadata": {},
"source": [
"###### **Invocation**"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "d604216e",
"metadata": {},
"outputs": [],
"source": [
"result = bf.q.resolveFilterSpecifier(filters='@in(as2border1[GigabitEthernet0/0])').answer().frame()"
]
},
{
"cell_type": "markdown",
"id": "315d6560",
"metadata": {},
"source": [
"###### **Return Value**"
]
},
{
"cell_type": "markdown",
"id": "644e0a90",
"metadata": {},
"source": [
"Name | Description | Type\n",
"--- | --- | ---\n",
"Node | Node | str\n",
"Filter_Name | Filter name | str"
]
},
{
"cell_type": "markdown",
"id": "90973858",
"metadata": {},
"source": [
"Print the first 5 rows of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "6ffec489",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Node | \n",
" Filter_Name | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" as2border1 | \n",
" OUTSIDE_TO_INSIDE | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Node Filter_Name\n",
"0 as2border1 OUTSIDE_TO_INSIDE"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.head(5)"
]
},
{
"cell_type": "markdown",
"id": "57a2979b",
"metadata": {},
"source": [
"Print the first row of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "795cdbea",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Node as2border1\n",
"Filter_Name OUTSIDE_TO_INSIDE\n",
"Name: 0, dtype: object"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.iloc[0]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "d9a1f2c4",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_network('generate_questions')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "fd472cb1",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_snapshot('generate_questions')"
]
},
{
"cell_type": "markdown",
"id": "c9792284",
"metadata": {},
"source": [
"##### Resolve Node Specifier"
]
},
{
"cell_type": "markdown",
"id": "99a34bcc",
"metadata": {},
"source": [
"Returns the set of nodes corresponding to a nodeSpec value."
]
},
{
"cell_type": "markdown",
"id": "daac5fca",
"metadata": {},
"source": [
"Helper question that shows how specified nodeSpec values resolve to the nodes in the network."
]
},
{
"cell_type": "markdown",
"id": "4ed3846f",
"metadata": {},
"source": [
"###### **Inputs**"
]
},
{
"cell_type": "markdown",
"id": "a74a4b6d",
"metadata": {},
"source": [
"Name | Description | Type | Optional | Default Value\n",
"--- | --- | --- | --- | --- \n",
"nodes | Input to the NodeSpecifier. | [NodeSpec](../specifiers.md#node-specifier) | False | \n",
"grammarVersion | Version of grammar to use for resolution. | str | True | "
]
},
{
"cell_type": "markdown",
"id": "faf56ec6",
"metadata": {},
"source": [
"###### **Invocation**"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "9da7462b",
"metadata": {},
"outputs": [],
"source": [
"result = bf.q.resolveNodeSpecifier(nodes='/border/').answer().frame()"
]
},
{
"cell_type": "markdown",
"id": "5d7686f2",
"metadata": {},
"source": [
"###### **Return Value**"
]
},
{
"cell_type": "markdown",
"id": "36bf870d",
"metadata": {},
"source": [
"Name | Description | Type\n",
"--- | --- | ---\n",
"Node | Node | str"
]
},
{
"cell_type": "markdown",
"id": "c9afc28d",
"metadata": {},
"source": [
"Print the first 5 rows of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "fa25d172",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Node | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" as1border1 | \n",
"
\n",
" \n",
" | 1 | \n",
" as1border2 | \n",
"
\n",
" \n",
" | 2 | \n",
" as2border1 | \n",
"
\n",
" \n",
" | 3 | \n",
" as2border2 | \n",
"
\n",
" \n",
" | 4 | \n",
" as3border1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Node\n",
"0 as1border1\n",
"1 as1border2\n",
"2 as2border1\n",
"3 as2border2\n",
"4 as3border1"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.head(5)"
]
},
{
"cell_type": "markdown",
"id": "ef4bfd0d",
"metadata": {},
"source": [
"Print the first row of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "aaf6c9df",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Node as1border1\n",
"Name: 0, dtype: object"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.iloc[0]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "bed27d21",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_network('generate_questions')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "1a6cdc4f",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_snapshot('generate_questions')"
]
},
{
"cell_type": "markdown",
"id": "77f3e17d",
"metadata": {},
"source": [
"##### Resolve Interface Specifier"
]
},
{
"cell_type": "markdown",
"id": "80bd14c7",
"metadata": {},
"source": [
"Returns the set of interfaces corresponding to an interfaceSpec value."
]
},
{
"cell_type": "markdown",
"id": "c67dfaf6",
"metadata": {},
"source": [
"Helper question that shows how specified interfaceSpec values resolve to the interfaces in the network."
]
},
{
"cell_type": "markdown",
"id": "7b4248e5",
"metadata": {},
"source": [
"###### **Inputs**"
]
},
{
"cell_type": "markdown",
"id": "aa5b07a2",
"metadata": {},
"source": [
"Name | Description | Type | Optional | Default Value\n",
"--- | --- | --- | --- | --- \n",
"interfaces | Input to the interfaceSpecifier. | [InterfaceSpec](../specifiers.md#interface-specifier) | False | \n",
"grammarVersion | Version of grammar to use for resolution. | str | True | \n",
"nodes | Input to the NodeSpecifier that specifies the set of nodes that should be considered. | [NodeSpec](../specifiers.md#node-specifier) | True | /.*/"
]
},
{
"cell_type": "markdown",
"id": "d2d4e222",
"metadata": {},
"source": [
"###### **Invocation**"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "d4cd0260",
"metadata": {},
"outputs": [],
"source": [
"result = bf.q.resolveInterfaceSpecifier(interfaces='/border/[.*Ethernet]').answer().frame()"
]
},
{
"cell_type": "markdown",
"id": "dfe6e6e6",
"metadata": {},
"source": [
"###### **Return Value**"
]
},
{
"cell_type": "markdown",
"id": "3ba6ffa3",
"metadata": {},
"source": [
"Name | Description | Type\n",
"--- | --- | ---\n",
"Interface | Interface | [Interface](../datamodel.rst#pybatfish.datamodel.primitives.Interface)"
]
},
{
"cell_type": "markdown",
"id": "45a71e1e",
"metadata": {},
"source": [
"Print the first 5 rows of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "9154131e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Interface | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" as1border1[Ethernet0/0] | \n",
"
\n",
" \n",
" | 1 | \n",
" as1border1[GigabitEthernet0/0] | \n",
"
\n",
" \n",
" | 2 | \n",
" as1border1[GigabitEthernet1/0] | \n",
"
\n",
" \n",
" | 3 | \n",
" as1border2[Ethernet0/0] | \n",
"
\n",
" \n",
" | 4 | \n",
" as1border2[GigabitEthernet0/0] | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Interface\n",
"0 as1border1[Ethernet0/0]\n",
"1 as1border1[GigabitEthernet0/0]\n",
"2 as1border1[GigabitEthernet1/0]\n",
"3 as1border2[Ethernet0/0]\n",
"4 as1border2[GigabitEthernet0/0]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.head(5)"
]
},
{
"cell_type": "markdown",
"id": "8a27447d",
"metadata": {},
"source": [
"Print the first row of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "4c891961",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Interface as1border1[Ethernet0/0]\n",
"Name: 0, dtype: object"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.iloc[0]"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "648049e3",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_network('generate_questions')"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "6d9d130c",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_snapshot('generate_questions')"
]
},
{
"cell_type": "markdown",
"id": "c7f5f1c8",
"metadata": {},
"source": [
"##### Resolve IPs from Location Specifier"
]
},
{
"cell_type": "markdown",
"id": "42143962",
"metadata": {},
"source": [
"Returns IPs that are auto-assigned to locations."
]
},
{
"cell_type": "markdown",
"id": "180fff1b",
"metadata": {},
"source": [
"Helper question that shows IPs that will be assigned to specified locationSpec values by questions are automatically pick IPs based on locations."
]
},
{
"cell_type": "markdown",
"id": "e4f8eed0",
"metadata": {},
"source": [
"###### **Inputs**"
]
},
{
"cell_type": "markdown",
"id": "7d1fefc3",
"metadata": {},
"source": [
"Name | Description | Type | Optional | Default Value\n",
"--- | --- | --- | --- | --- \n",
"locations | Input to the LocationSpecifier. | [LocationSpec](../specifiers.md#location-specifier) | False | \n",
"grammarVersion | Version of grammar to use for resolution. | str | True | "
]
},
{
"cell_type": "markdown",
"id": "54de41f7",
"metadata": {},
"source": [
"###### **Invocation**"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "81fc4a05",
"metadata": {},
"outputs": [],
"source": [
"result = bf.q.resolveIpsOfLocationSpecifier(locations='@enter(as2border1[GigabitEthernet2/0])').answer().frame()"
]
},
{
"cell_type": "markdown",
"id": "89662471",
"metadata": {},
"source": [
"###### **Return Value**"
]
},
{
"cell_type": "markdown",
"id": "e389bf52",
"metadata": {},
"source": [
"Name | Description | Type\n",
"--- | --- | ---\n",
"Locations | Resolution | str\n",
"IP_Space | IP space | str"
]
},
{
"cell_type": "markdown",
"id": "832d839d",
"metadata": {},
"source": [
"Print the first 5 rows of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "8dc7b2d4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Locations | \n",
" IP_Space | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" [InterfaceLinkLocation{nodeName=as2border1, interfaceName=GigabitEthernet2/0}] | \n",
" AclIpSpace{lines=[AclIpSpaceLine{action=DENY, ipSpace=AclIpSpace{lines=[AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.2.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.1.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.3.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.2.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.2.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.1.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.2.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.0.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.2.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.1.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.1.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.3.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.1.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.10.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.10.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.13.22.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.21.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.22.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.12.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.11.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.12.11.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.13.22.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.12.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.22.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.21.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.11.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.12.11.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.14.22.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.23.21.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.12.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.22.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.21.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.11.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.21.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.22.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.12.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.11.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.23.21.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.201.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.101.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.201.4}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.101.4}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=90.90.90.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=90.90.90.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.1.101}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.0.101}}]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[2.12.12.0, 2.12.12.255], whitelist=[2.12.12.0/24]}}]} | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Locations \\\n",
"0 [InterfaceLinkLocation{nodeName=as2border1, interfaceName=GigabitEthernet2/0}] \n",
"\n",
" IP_Space \n",
"0 AclIpSpace{lines=[AclIpSpaceLine{action=DENY, ipSpace=AclIpSpace{lines=[AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.2.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.1.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.3.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.2.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.2.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.1.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.2.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.0.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.2.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.1.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.1.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.3.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.1.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.10.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.10.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.13.22.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.21.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.22.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.12.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.11.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.12.11.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.13.22.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.12.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.22.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.21.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.11.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.12.11.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.14.22.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.23.21.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.12.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.22.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.21.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.11.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.21.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.22.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.12.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.11.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.23.21.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.201.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.101.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.201.4}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.101.4}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=90.90.90.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=90.90.90.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.1.101}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.0.101}}]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[2.12.12.0, 2.12.12.255], whitelist=[2.12.12.0/24]}}]} "
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.head(5)"
]
},
{
"cell_type": "markdown",
"id": "568cd187",
"metadata": {},
"source": [
"Print the first row of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "d6c0d3e0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Locations [InterfaceLinkLocation{nodeName=as2border1, interfaceName=GigabitEthernet2/0}]\n",
"IP_Space AclIpSpace{lines=[AclIpSpaceLine{action=DENY, ipSpace=AclIpSpace{lines=[AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.2.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.1.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.3.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.2.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.2.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.1.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.2.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.0.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.2.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.1.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.0.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.1.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.0.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.3.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.2.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.1.1.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=3.10.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=1.10.1.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.13.22.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.21.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.22.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.12.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.11.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.12.11.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.13.22.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.12.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.22.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.21.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.12.11.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.12.11.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.14.22.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.23.21.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.12.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.22.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.21.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.11.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.21.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.22.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.12.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.23.11.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=10.23.21.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.201.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.101.3}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.201.4}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.34.101.4}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=90.90.90.2}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=90.90.90.1}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.1.101}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpIpSpace{ip=2.128.0.101}}]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[2.12.12.0, 2.12.12.255], whitelist=[2.12.12.0/24]}}]}\n",
"Name: 0, dtype: object"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.iloc[0]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "ba0df672",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_network('generate_questions')"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "8f32a9ad",
"metadata": {
"nbsphinx": "hidden"
},
"outputs": [
{
"data": {
"text/plain": [
"'generate_questions'"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bf.set_snapshot('generate_questions')"
]
},
{
"cell_type": "markdown",
"id": "dc6aa792",
"metadata": {},
"source": [
"##### Resolve IP Specifier"
]
},
{
"cell_type": "markdown",
"id": "3a6c370b",
"metadata": {},
"source": [
"Returns the IP address space corresponding to an ipSpec value."
]
},
{
"cell_type": "markdown",
"id": "20a4447c",
"metadata": {},
"source": [
"Helper question that shows how specified ipSpec values resolve to IPs."
]
},
{
"cell_type": "markdown",
"id": "e66ae598",
"metadata": {},
"source": [
"###### **Inputs**"
]
},
{
"cell_type": "markdown",
"id": "19015700",
"metadata": {},
"source": [
"Name | Description | Type | Optional | Default Value\n",
"--- | --- | --- | --- | --- \n",
"ips | Input to the IP space specifier. | [IpSpec](../specifiers.md#ip-specifier) | False | \n",
"grammarVersion | Version of grammar to use for resolution. | str | True | "
]
},
{
"cell_type": "markdown",
"id": "604ce9e0",
"metadata": {},
"source": [
"###### **Invocation**"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "37d20d1e",
"metadata": {},
"outputs": [],
"source": [
"result = bf.q.resolveIpSpecifier(ips='/border/[.*Ethernet]').answer().frame()"
]
},
{
"cell_type": "markdown",
"id": "559d0244",
"metadata": {},
"source": [
"###### **Return Value**"
]
},
{
"cell_type": "markdown",
"id": "2d9fe877",
"metadata": {},
"source": [
"Name | Description | Type\n",
"--- | --- | ---\n",
"IP_Space | IP space | str"
]
},
{
"cell_type": "markdown",
"id": "64a26393",
"metadata": {},
"source": [
"Print the first 5 rows of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "58d7d0e8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" IP_Space | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" AclIpSpace{lines=[AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[1.0.1.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.12.11.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.13.22.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[1.0.2.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.14.22.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.12.11.2]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.11.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.12.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.23.21.2]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.22.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.21.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[3.0.1.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.23.21.3]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.13.22.3]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[3.0.2.1]}}]} | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" IP_Space\n",
"0 AclIpSpace{lines=[AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[1.0.1.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.12.11.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.13.22.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[1.0.2.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.14.22.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.12.11.2]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.11.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.12.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.23.21.2]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.22.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.21.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[3.0.1.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.23.21.3]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.13.22.3]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[3.0.2.1]}}]}"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.head(5)"
]
},
{
"cell_type": "markdown",
"id": "2fbd4623",
"metadata": {},
"source": [
"Print the first row of the returned Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "365ca46b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"IP_Space AclIpSpace{lines=[AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[1.0.1.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.12.11.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.13.22.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[1.0.2.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.14.22.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.12.11.2]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.11.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.12.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.23.21.2]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.22.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[2.12.21.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[3.0.1.1]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.23.21.3]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[10.13.22.3]}}, AclIpSpaceLine{action=PERMIT, ipSpace=IpWildcardSetIpSpace{blacklist=[], whitelist=[3.0.2.1]}}]}\n",
"Name: 0, dtype: object"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.iloc[0]"
]
}
],
"metadata": {
"celltoolbar": "Edit Metadata",
"hide_input": false,
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.17"
}
},
"nbformat": 4,
"nbformat_minor": 2
}