BGP 扬声器库 API 参考¶
BGPSpeaker 类¶
- class os_ken.services.protocols.bgp.bgpspeaker.BGPSpeaker(as_number, router_id, bgp_server_hosts=('0.0.0.0', '::'), bgp_server_port=179, refresh_stalepath_time=0, refresh_max_eor_time=0, best_path_change_handler=None, adj_rib_in_change_handler=None, peer_down_handler=None, peer_up_handler=None, ssh_console=False, ssh_port=None, ssh_host=None, ssh_host_key=None, label_range=(100, 100000), allow_local_as_in_count=0, cluster_id=None, local_pref=100)¶
用于提供 OSKen BGP 扬声器 API 的类。
as_number指定一个自治系统号。它必须是 1 到 65535 之间的整数。router_id指定 BGP 路由器标识符。它必须是 IPv4 地址的字符串表示形式(例如 10.0.0.1)。bgp_server_host指定 TCP 监听主机地址列表。bgp_server_port指定 TCP 监听端口号。如果未指定,则使用 179。refresh_stalepath_time使 BGP 扬声器在计时器到期后从 BGP 表中删除过时的路由,即使扬声器没有收到路由器刷新 RIB 结束消息。此功能已禁用(尚未实现)。refresh_max_eor_time使 BGP 扬声器生成路由刷新 RIB 结束消息,如果由于路由拍打而无法生成该消息。此功能已禁用(尚未实现)。best_path_change_handler如果指定,则在由于更新消息或远程对等体关闭而更改任何最佳远程路径时调用。处理程序应该接受一个参数,即 EventPrefix 类实例。adj_rib_in_change_handler如果指定,则在由于更新消息或远程对等体关闭而更改任何 adj-RIB-in 路径时调用。给定的处理程序应该接受三个参数,即 EventPrefix 类实例、字符串类型的对等体 IP 地址和整数类型的对等体 AS 号。peer_down_handler如果指定,则在 BGP 对等会话关闭时调用。peer_up_handler如果指定,则在 BGP 对等会话启动时调用。ssh_console指定是否需要启动 SSH CLI。ssh_port指定 SSH CLI 服务器的端口号。默认值为 bgp.operator.ssh.DEFAULT_SSH_PORT。ssh_host指定 SSH CLI 服务器的 IP 地址。默认值为 bgp.operator.ssh.DEFAULT_SSH_HOST。ssh_host_key指定添加到 SSH CLI 服务器使用的密钥列表中的主机密钥的路径。默认值为 bgp.operator.ssh.DEFAULT_SSH_HOST_KEY。label_range指定自动生成的 MPLS 标签的范围。allow_local_as_in_countAS_PATH 中允许的本地 AS 号出现的最大次数。此选项对于例如在共享 AS 号的叶脊架构中的自动 RD/RT 配置很有用。默认值为 0,表示“不允许在 AS_PATH 中使用本地 AS 号”。要允许本地 AS,建议使用 3(Cisco 的默认值)。cluster_id指定路由反射器的集群标识符。它必须是 IPv4 地址的字符串表示形式。如果省略,则使用“router_id”作为此字段。local_pref指定默认本地优先级。它必须是一个整数。- attribute_map_get(address, route_dist=None, route_family='ipv4')¶
此方法获取指定邻居的入站过滤器。
address指定邻居的 IP 地址。route_dist指定具有 attribute_maps 的路由区分符。route_family指定 VRF 的路由族。此参数必须是以下之一。RF_VPN_V4(默认)= 'ipv4'
RF_VPN_V6 = 'ipv6'
返回包含 AttributeMap 实例的列表对象
- attribute_map_set(address, attribute_maps, route_dist=None, route_family='ipv4')¶
此方法将属性映射设置为邻居。当您希望在特定条件下将属性应用于 BGPUpdate 时,可以使用属性映射。
address指定邻居的 IP 地址attribute_maps指定在通告路径之前使用的 attribute_map 列表。列表中的所有项目都必须是 AttributeMap 类的实例route_dist指定添加 attribute_maps 的路由区分符。route_family指定 VRF 的路由族。此参数必须是以下之一。RF_VPN_V4(默认)= 'ipv4'
RF_VPN_V6 = 'ipv6'
我们可以按如下方式将 AttributeMap 设置为邻居
pref_filter = PrefixFilter('192.168.103.0/30', PrefixFilter.POLICY_PERMIT) attribute_map = AttributeMap([pref_filter], AttributeMap.ATTR_LOCAL_PREF, 250) speaker.attribute_map_set('192.168.50.102', [attribute_map])
- bmp_server_add(address, port)¶
此方法注册一个新的 BMP(BGP 监控协议)服务器。BGP 扬声器开始将 BMP 消息发送到服务器。当前,只能注册一个 BMP 服务器。
address指定 BMP 服务器的 IP 地址。port指定 BMP 服务器的监听端口号。
- bmp_server_del(address, port)¶
此方法取消注册已注册的 BMP 服务器。
address指定 BMP 服务器的 IP 地址。port指定 BMP 服务器的监听端口号。
- evpn_prefix_add(route_type, route_dist, esi=0, ethernet_tag_id=None, mac_addr=None, ip_addr=None, ip_prefix=None, gw_ip_addr=None, vni=None, next_hop=None, tunnel_type=None, pmsi_tunnel_type=None, redundancy_mode=None, tunnel_endpoint_ip=None, mac_mobility=None)¶
此方法添加要通告的新 EVPN 路由。
route_type指定 EVPN 路由类型名称之一。此参数必须是以下之一。EVPN_ETH_AUTO_DISCOVERY = 'eth_ad'
EVPN_MAC_IP_ADV_ROUTE = 'mac_ip_adv'
EVPN_MULTICAST_ETAG_ROUTE = 'multicast_etag'
EVPN_ETH_SEGMENT = 'eth_seg'
EVPN_IP_PREFIX_ROUTE = 'ip_prefix'
route_dist指定路由区分符值。esi是一个指定以太网段标识符的值。0 是默认值,表示单宿主站点。如果想要通告其他于 0 的 esi,则必须将其设置为字典类型。如果 esi 是字典类型,则必须设置“type”键,并且指定 ESI 类型。有关支持的 ESI 类型,请参阅os_ken.lib.packet.bgp.EvpnEsi。其余参数与相应类相同。ethernet_tag_id指定以太网标签 ID。mac_addr指定要通告的 MAC 地址。ip_addr指定要通告的 IPv4 或 IPv6 地址。ip_prefix指定要通告的 IPv4 或 IPv6 前缀。gw_ip_addr指定要通告的网关 IPv4 或 IPv6 地址。vni指定 VXLAN 的虚拟网络标识符或 NVGRE 的虚拟子网标识符。如果 tunnel_type 不是 TUNNEL_TYPE_VXLAN 或 TUNNEL_TYPE_NVGRE,则忽略此字段。next_hop指定此前缀的下一跳地址。tunnel_type指定要通告的数据平面封装类型。默认情况下,不通告此属性。支持的封装类型如下:TUNNEL_TYPE_VXLAN = 'vxlan'
TUNNEL_TYPE_NVGRE = 'nvgre'
pmsi_tunnel_type指定用于编码多播隧道标识符的 PMSI 隧道属性的类型。仅当 route_type 为 EVPN_MULTICAST_ETAG_ROUTE 时才通告此属性,并且默认情况下不通告。此属性还可以携带 vni,如果指定了 tunnel_type。PMSI_TYPE_NO_TUNNEL_INFO = 0
PMSI_TYPE_INGRESS_REP = 6
redundancy_mode指定冗余模式类型。仅当 route_type 为 EVPN_ETH_AUTO_DISCOVERY 时才通告此属性,并且默认情况下不通告。支持的冗余模式类型如下:REDUNDANCY_MODE_ALL_ACTIVE = 'all_active'
REDUNDANCY_MODE_SINGLE_ACTIVE = 'single_active'
tunnel_endpoint_ip指定 VTEP IP 地址,而不是本地路由器 ID。仅当 route_type 为 EVPN_MULTICAST_ETAG_ROUTE 时才通告此属性,并且默认值为本地路由器 ID。mac_mobility指定要在 MAC 移动扩展社区字段中使用的可选整数序列号。特殊值“-1”可用于将 STATIC 标志设置为 0 值的序列号。
- evpn_prefix_del(route_type, route_dist, esi=0, ethernet_tag_id=None, mac_addr=None, ip_addr=None, ip_prefix=None)¶
此方法删除通告的 EVPN 路由。
route_type指定 EVPN 路由类型名称之一。route_dist指定路由区分符值。esi是一个指定以太网段标识符的值。ethernet_tag_id指定以太网标签 ID。mac_addr指定要通告的 MAC 地址。ip_addr指定要通告的 IPv4 或 IPv6 地址。ip_prefix指定要通告的 IPv4 或 IPv6 前缀。
- flowspec_prefix_add(flowspec_family, rules, route_dist=None, actions=None)¶
此方法添加一个新的 Flow Specification 前缀进行宣告。
flowspec_family指定 Flow Specification 系列名称之一。此参数必须是以下之一。FLOWSPEC_FAMILY_IPV4 = 'ipv4fs'
FLOWSPEC_FAMILY_IPV6 = 'ipv6fs'
FLOWSPEC_FAMILY_VPNV4 = 'vpnv4fs'
FLOWSPEC_FAMILY_VPNV6 = 'vpnv6fs'
FLOWSPEC_FAMILY_L2VPN = 'l2vpnfs'
rules指定 Flow Specification 的 NLRIs,类型为字典。有关支持的 NLRI 类型和参数,请参阅以下类的 from_user() 方法。route_dist指定路由区分符值。只有当 flowspec_family 是以下地址族之一时,才需要此参数。FLOWSPEC_FAMILY_VPNV4 = 'vpnv4fs'
FLOWSPEC_FAMILY_VPNV6 = 'vpnv6fs'
FLOWSPEC_FAMILY_L2VPN = 'l2vpnfs'
actions指定 Flow Specification 的流量过滤动作,类型为字典。键是每个动作类的 "ACTION_NAME",值用于该类的参数。有关支持的 "ACTION_NAME" 和参数,请参阅下表。ACTION_NAME
动作类
traffic_rate
traffic_action
redirect
traffic_marking
vlan_action
tpid_action
示例(IPv4)
>>> speaker = BGPSpeaker(as_number=65001, router_id='172.17.0.1') >>> speaker.neighbor_add(address='172.17.0.2', ... remote_as=65002, ... enable_ipv4fs=True) >>> speaker.flowspec_prefix_add( ... flowspec_family=FLOWSPEC_FAMILY_IPV4, ... rules={ ... 'dst_prefix': '10.60.1.0/24' ... }, ... actions={ ... 'traffic_marking': { ... 'dscp': 24 ... } ... } ... )
示例(VPNv4)
>>> speaker = BGPSpeaker(as_number=65001, router_id='172.17.0.1') >>> speaker.neighbor_add(address='172.17.0.2', ... remote_as=65002, ... enable_vpnv4fs=True) >>> speaker.vrf_add(route_dist='65001:100', ... import_rts=['65001:100'], ... export_rts=['65001:100'], ... route_family=RF_VPNV4_FLOWSPEC) >>> speaker.flowspec_prefix_add( ... flowspec_family=FLOWSPEC_FAMILY_VPNV4, ... route_dist='65000:100', ... rules={ ... 'dst_prefix': '10.60.1.0/24' ... }, ... actions={ ... 'traffic_marking': { ... 'dscp': 24 ... } ... } ... )
- flowspec_prefix_del(flowspec_family, rules, route_dist=None)¶
此方法删除已宣告的 Flow Specification 路由。
flowspec_family指定 Flow Specification 系列名称之一。rules指定 Flow Specification 的 NLRIs,类型为字典。route_dist指定路由区分符值。
- in_filter_get(address)¶
此方法获取指定邻居的入站过滤器。
address指定邻居的 IP 地址。返回一个列表对象,其中包含 Filter 子类的实例
- in_filter_set(address, filters)¶
此方法将入站过滤器设置为邻居。
address指定邻居的 IP 地址filters指定应用于在将宣告的路径导入全局 rib 之前使用的过滤器列表。列表中的所有项目必须是 Filter 子类的实例。
- neighbor_add(address, remote_as, remote_port=179, enable_ipv4=True, enable_ipv6=False, enable_vpnv4=False, enable_vpnv6=False, enable_evpn=False, enable_ipv4fs=False, enable_ipv6fs=False, enable_vpnv4fs=False, enable_vpnv6fs=False, enable_l2vpnfs=False, enable_enhanced_refresh=False, enable_four_octet_as_number=True, next_hop=None, password=None, multi_exit_disc=None, site_of_origins=None, is_route_server_client=False, is_route_reflector_client=False, is_next_hop_self=False, local_address=None, local_port=None, local_as=None, connect_mode='both')¶
此方法注册一个新的邻居。BGP 扬声器尝试与对等体建立 bgp 会话(接受来自对等体的连接并尝试连接到它)。
address指定对等体的 IP 地址。必须是 IP 地址的字符串表示形式。目前仅支持 IPv4。remote_as指定对等体的 AS 号。必须是 1 到 65535 之间的整数。remote_port指定对等体的 TCP 端口号。enable_ipv4为此邻居启用 IPv4 地址族。enable_ipv6为此邻居启用 IPv6 地址族。enable_vpnv4为此邻居启用 VPNv4 地址族。enable_vpnv6为此邻居启用 VPNv6 地址族。enable_evpn为此邻居启用以太网 VPN 地址族。enable_ipv4fs为此邻居启用 IPv4 流规范地址族。enable_ipv6fs为此邻居启用 IPv6 流规范地址族。enable_vpnv4fs为此邻居启用 VPNv4 流规范地址族。enable_vpnv6fs为此邻居启用 VPNv6 流规范地址族。enable_l2vpnfs为此邻居启用 L2VPN 流规范地址族。enable_enhanced_refresh为此邻居启用增强路由刷新。enable_four_octet_as_number为此邻居启用四字节 AS 号能力。next_hop指定下一跳 IP 地址。如果未指定,则用于访问对等体的宿主 IP 地址。password如果已指定,则用于 MD5 身份验证。默认情况下,MD5 身份验证已禁用。multi_exit_disc指定多出口鉴别器 (MED) 值,类型为 int。如果省略,则不将 MED 发送到邻居。site_of_origins指定 site_of_origin 值。此参数必须是字符串列表。is_route_server_client指定此邻居是否是路由器服务器的客户端。is_route_reflector_client指定此邻居是否是路由器反射器的客户端。is_next_hop_self指定 BGP 扬声器是否将自己的 IP 地址作为路径的下一跳地址宣告给 iBGP 邻居。local_address指定 iBGP 对等连接的环回接口地址。local_port指定 iBGP 对等连接的源 TCP 端口。local_as指定每个对等体的本地 AS 号。如果省略,则使用 BGPSpeaker 实例的 AS 号。connect_mode指定如何连接到此邻居。此参数必须是以下之一。CONNECT_MODE_ACTIVE = 'active'
CONNECT_MODE_PASSIVE = 'passive'
CONNECT_MODE_BOTH (默认) = 'both'
- neighbor_del(address)¶
此方法取消注册已注册的邻居。如果与对等体存在会话,则将关闭该会话。
address指定对等体的 IP 地址。必须是 IP 地址的字符串表示形式。
- neighbor_get(route_type, address, format='json')¶
此方法以 json 格式返回 BGP adj-RIB-in/adj-RIB-out 信息。
route_type此参数仅对于 received-routes 和 sent-routes 是必需的。received-routes:接收到的且未被给定对等体撤回的路径
sent-routes:发送到给定对等体的且未被撤回的路径
address指定对等体的 IP 地址。必须是 IP 地址的字符串表示形式。format指定响应的格式。此参数必须是以下之一。'json' (默认)
'cli'
- neighbor_reset(address)¶
此方法重置已注册的邻居。
address指定对等体的 IP 地址。必须是 IP 地址的字符串表示形式。
- neighbor_state_get(address=None, format='json')¶
此方法以 json 格式返回对等体的状态。
address指定对等体的地址。如果未提供,则返回所有对等体的状态。format指定响应的格式。此参数必须是以下之一。'json' (默认)
'cli'
- neighbor_update(address, conf_type, conf_value)¶
此方法更改邻居配置。
address指定对等体的 IP 地址。conf_type指定要更改的配置类型。目前可以指定 os_ken.services.protocols.bgp.bgpspeaker.MULTI_EXIT_DISC。conf_value指定配置类型的取值。
- neighbors_get(format='json')¶
此方法返回 BGP 邻居列表。
format指定响应的格式。此参数必须是以下之一。'json' (默认)
'cli'
- out_filter_get(address)¶
此方法从指定的邻居获取出站过滤器设置。
address指定对等体的 IP 地址。返回一个列表对象,其中包含 Filter 子类的实例
- out_filter_set(address, filters)¶
此方法将出站过滤器设置为邻居。
address指定对等体的 IP 地址。filters指定用于过滤路径宣告的过滤器列表。内容必须是 Filter 子类的实例如果要定义仅将特定前缀发送到邻居的出站过滤器,则可以按如下方式创建过滤器
p = PrefixFilter('10.5.111.0/24', policy=PrefixFilter.POLICY_PERMIT) all = PrefixFilter('0.0.0.0/0', policy=PrefixFilter.POLICY_DENY) pList = [p, all] self.bgpspeaker.out_filter_set(neighbor_address, pList)
注意
out-filter 按照 pList 中 Filter 的顺序评估路径。
- prefix_add(prefix, next_hop=None, route_dist=None)¶
此方法添加一个新的前缀进行宣告。
prefix必须是 IP 网络的字符串表示形式(例如,10.1.1.0/24)。next_hop指定此前缀的下一跳地址。此参数仅对于 VPNv4 和 VPNv6 地址族是必需的。route_dist指定路由区分符值。此参数仅对于 VPNv4 和 VPNv6 地址族是必需的。
- prefix_del(prefix, route_dist=None)¶
此方法删除一个已通告的前缀。
prefix必须是 IP 网络的字符串表示形式。route_dist指定路由区分符值。
- rib_get(family='all', format='json')¶
此方法以 json 格式返回 BGP 路由信息。 这将很快得到改进。
family指定 RIB 的地址族(例如 'ipv4')。format指定响应的格式。此参数必须是以下之一。'json' (默认)
'cli'
- shutdown()¶
关闭 BGP 扬声器
- vrf_add(route_dist, import_rts, export_rts, site_of_origins=None, route_family='ipv4', multi_exit_disc=None)¶
此方法添加一个用于 VPN 的新 vrf。
route_dist指定路由区分符值。import_rts指定要导入的路由目标列表。export_rts指定要导出的路由目标列表。site_of_origins指定 site_of_origin 值。此参数必须是字符串列表。route_family指定 VRF 的路由族。此参数必须是以下之一。RF_VPN_V4(默认)= 'ipv4'
RF_VPN_V6 = 'ipv6'
RF_L2_EVPN = 'evpn'
RF_VPNV4_FLOWSPEC = 'ipv4fs'
RF_VPNV6_FLOWSPEC = 'ipv6fs'
RF_L2VPN_FLOWSPEC = 'l2vpnfs'
multi_exit_disc指定多出口鉴别器 (MED) 值。 必须是一个整数。
- vrf_del(route_dist)¶
此方法删除现有的 vrf。
route_dist指定路由区分符值。
- vrfs_get(subcommand='routes', route_dist=None, route_family='all', format='json')¶
此方法返回现有的 vrf。
subcommand指定以下之一。'routes': 显示 vrf 的路由
'summary': 显示 vrf 的配置和摘要
route_dist指定路由区分符值。 如果 route_family 不是 'all',则必须指定此值。route_family指定 VRF 的路由族。此参数必须是以下之一。RF_VPN_V4 = 'ipv4'
RF_VPN_V6 = 'ipv6'
RF_L2_EVPN = 'evpn'
'all' (默认)
format指定响应的格式。此参数必须是以下之一。'json' (默认)
'cli'
- class os_ken.services.protocols.bgp.bgpspeaker.EventPrefix(path, is_withdraw)¶
用于将关于最佳远程路径到 best_path_change_handler 的更新传递过去。
属性
描述
remote_as
导致此更改的对等体的 AS 号码
route_dist
对于 IPv4 或 IPv6 族,此值为 None
prefix
更改了一个前缀
nexthop
更改的前缀的下一跳
标签
VPNv4、VPNv6 或 EVPN 前缀的 MPLS 标签
路径
info_base.base.Path子类的实例is_withdraw
如果此前缀已撤回,则为 True,否则为 False
- class os_ken.services.protocols.bgp.info_base.base.PrefixFilter(prefix, policy, ge=None, le=None)¶
用于指定用于过滤的前缀。
我们可以按如下方式创建 PrefixFilter 对象
prefix_filter = PrefixFilter('10.5.111.0/24', policy=PrefixFilter.POLICY_PERMIT)
属性
描述
prefix
用于此过滤器的前缀
policy
以下值之一。
PrefixFilter.POLICY.PERMITPrefixFilter.POLICY_DENYge
将应用于此过滤器的前缀长度。ge 表示大于或等于。
le
将应用于此过滤器的前缀长度。le 表示小于或等于。
例如,如果按如下方式创建 PrefixFilter 对象
p = PrefixFilter('10.5.111.0/24', policy=PrefixFilter.POLICY_DENY, ge=26, le=28)
匹配 10.5.111.0/24 及其长度在 26 到 28 之间的前缀将被过滤。当此过滤器用作出过滤器时,它将由于 POLICY_DENY 而停止将路径发送到邻居。当此过滤器用作入过滤器时,它将由于 POLICY_DENY 而停止将路径导入到全局 rib。 如果您指定 POLICY_PERMIT,则路径将被发送到邻居或导入到全局 rib。
如果您不想发送前缀 10.5.111.64/26 和 10.5.111.32/27 和 10.5.111.16/28,并允许发送其他 10.5.111.0 的前缀,您可以按如下方式执行
p = PrefixFilter('10.5.111.0/24', policy=PrefixFilter.POLICY_DENY, ge=26, le=28).
- clone()¶
此方法克隆 PrefixFilter 对象。
返回与原始对象具有相同值的 PrefixFilter 对象。
- evaluate(path)¶
此方法评估前缀。
返回此对象的策略和匹配结果。 如果指定的前缀与此对象的前缀以及 ge 和 le 条件匹配,则此方法返回 True 作为匹配结果。
path指定具有前缀的路径。
- class os_ken.services.protocols.bgp.info_base.base.ASPathFilter(as_number, policy)¶
用于指定用于 AS_PATH 属性的前缀。
我们可以按如下方式创建 ASPathFilter 对象
as_path_filter = ASPathFilter(65000,policy=ASPathFilter.TOP)
属性
描述
as_number
用于此过滤器的 AS 号码
policy
以下值之一。
ASPathFilter.POLICY_TOPASPathFilter.POLICY_ENDASPathFilter.POLICY_INCLUDEASPathFilter.POLICY_NOT_INCLUDE每种策略的含义如下
策略
描述
POLICY_TOP
过滤器检查指定的 AS 号码是否位于 AS_PATH 属性的顶部。
POLICY_END
过滤器检查指定的 AS 号码是否位于 AS_PATH 属性的末尾。
POLICY_INCLUDE
过滤器检查指定的 AS 号码是否存在于 AS_PATH 属性中。
POLICY_NOT_INCLUDE
POLICY_INCLUDE 的相反。
- clone()¶
此方法克隆 ASPathFilter 对象。
返回与原始对象具有相同值的 ASPathFilter 对象。
- evaluate(path)¶
此方法评估 as_path 列表。
返回此对象的策略和匹配结果。 如果指定的 AS 号码根据策略与此对象的 AS 号码匹配,则此方法返回 True 作为匹配结果。
path指定路径。
- class os_ken.services.protocols.bgp.info_base.base.AttributeMap(filters, attr_type, attr_value)¶
此类用于指定如果路径匹配过滤器,则要添加的属性。 我们可以按如下方式创建 AttributeMap 对象
pref_filter = PrefixFilter('192.168.103.0/30', PrefixFilter.POLICY_PERMIT) attribute_map = AttributeMap([pref_filter], AttributeMap.ATTR_LOCAL_PREF, 250) speaker.attribute_map_set('192.168.50.102', [attribute_map])
AttributeMap.ATTR_LOCAL_PREF 表示如果路径中的 nlri 匹配 pref_filter,则将 250 设置为本地偏好值。
ASPathFilter 也可用作过滤器。 ASPathFilter 检查路径中的 AS_PATH 属性是否与过滤器中的 AS 号码匹配。
属性
描述
filters
一个过滤器列表。 每个对象应该是 Filter 类或其子类
attr_type
要映射到过滤器的属性类型。 当前 AttributeMap.ATTR_LOCAL_PREF 可用。
attr_value
一个属性值
- clone()¶
此方法克隆 AttributeMap 对象。
返回与原始对象具有相同值的 AttributeMap 对象。
- evaluate(path)¶
此方法评估路径的属性。
返回匹配的原因和结果。 原因和结果都从此对象包含的过滤器返回。
path指定路径。