本节将列出可用于 L4 SSL DataScript 的 API。

数据路径 DS API

以下是数据路径 API:

数据路径 API

描述

buffered = avi.l4.collect("x")

此 DataScript 将收集套接字缓冲区中的“x”字节量。此 API 可以放弃并恢复。根据哪个 DS 事件调用该 API 来确定套接字缓冲区(客户端 sockbuf 用于 L4 请求,服务器 sockbuf 用于 L4 响应)。API 的返回值是 sockbuf 中存在的数据量。

payload = avi.l4.read("xBytes", offset, "client"/"server")

从套接字缓冲区中读取 xBytes,并将其作为十六进制流呈现给 DataScript。方向决定要从哪个 sockbuf 中读取数据。

avi.l4.discard("xBytes", offset, "client"/"server")

使用指定的偏移放弃 sockbuf 中的 xBytes。

avi.l4.modify(payload2, offset, "client"/"server")

在 sockbuf 的偏移处插入 payload2。

avi.l4.pause("xBytes”)

  • 在以自然代理方向发送 xBytes 后暂停 Tx。

  • 目前,无法在同一事件中使用多个暂停 API。

  • 目前,暂停后无法使用任何可能会导致放弃的 API。

avi.l4.send(payload2)

  • 将超出边界的数据发送到客户端/服务器。

  • “发送 API”的优先级将始终高于“恢复 API”,这意味着,如果您同时使用发送和恢复,则“恢复 API”发布的数据将始终在“发送 API”中的数据之后发送。

  • 如果在 L4 请求中调用,则会将 OOB 数据发送到客户端。

  • 如果在 L4 响应中调用,则会将 OOB 数据发送到服务器。

avi.l4.resume("xBytes")

  • 恢复对等 sockbuf 以释放“xBytes”数据量。(xBytes 等于零表示释放所有数据)如果在 L4 请求中调用,将释放响应端数据。

  • 如果在 L4 响应中调用,将释放请求端数据。

  • 目前,无法在同一事件中使用多个恢复 API。

  • 目前,恢复后无法使用任何可能会导致放弃的 API。

avi.vs.ds_done()

停止调用连接的当前 Datascript。

负载均衡 API

如果已完成负载均衡,则 avi.pool.selectavi.vs.persist 将为“无操作”。

所有操作 API 都位于底层套接字缓冲区的当前快照上。

每个 API 都是相对于先前的 API 的,例如,avi.l4.discard 将放弃负载的某些部分。成功的 API(例如,avi.l4.modify)将用于因 avi.l4.discard 而获取的新负载集。

FIX API

  • avi.fix.parse - 使用 FIX 解析程序 C 库解析提供的负载。

  • avi.fix.getTagValue - 获取当前消息上下文中的 TAG 值。

SSL API

  • avi.ssl.protocol

  • avi.ssl.disable_ssl()

  • avi.ssl.enable_ssl()

  • avi.ssl.server_name

  • avi.ssl.client_cert

  • avi.ssl.cipher

  • avi.ssl.clear_error - 清除在 SSL 上下文中由 OpenSSL 设置的错误位图,以在 SSL 握手时忽略某些错误(例如,允许过期的证书等)。

VS API

  • avi.vs.log

  • avi.vs.debug

  • avi.vs.client_ip

  • avi.vs.client_port

  • avi.vs.vip_ip

  • avi.vs.vip_port

  • avi.vs.name

  • avi.vs.table_insert

  • avi.vs.table_lookup

  • avi.vs.table_remove

  • avi.vs.close_conn

  • avi.vs.done

池 API

  • avi.pool.select

组 API

  • avi.ipgroup.contains

  • avi.stringgroup.contains{_CASE}

  • avi.stringgroup.equals{_CASE}

  • avi.stringgroup.beginswith{_CASE}

  • avi.stringgroup.endswith{_CASE}