ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/qolsetf.htm

806 lines
34 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Set Filter (QOLSETF) API</title>
<!-- Begin Header Records ========================================== -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Print SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!--File Edited December 2001 -->
<!-- End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!--Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<h2>Set Filter (QOLSETF) API</h2>
<div class="box" style="width: 60%;">
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Return code</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="LEFT" valign="TOP">Reason code</td>
<td align="LEFT" valign="TOP">Output</td>
<td align="LEFT" valign="TOP">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="LEFT" valign="TOP">Error offset</td>
<td align="LEFT" valign="TOP">Output</td>
<td align="LEFT" valign="TOP">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="LEFT" valign="TOP">Communications handle</td>
<td align="LEFT" valign="TOP">Input</td>
<td align="LEFT" valign="TOP">Char(10)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Threadsafe: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Set Filter (QOLSETF) API activates and/or deactivates one or more filters for a link that is currently enabled in the job in which the application program is running. The application program must provide the required filter information in the output buffer that was created when the link was enabled. The output buffer descriptor is not used. See <a href="#HDRSETFFMT">Format of Filter Information</a> for details on the format of the filter information in the output buffer.</p>
<p>Filters contain inbound routing information that user-defined communications support uses to route incoming data to a link that is enabled by an application program. The incoming data that is routed depends on the type of communications line the link is using. On an X.25 communications line, the incoming data is an incoming switched virtual circuit (SVC) call. On a token-ring, Ethernet, wireless, or FDDI communications line, the incoming data is the actual data frame.</p>
<p>The type of filters activated for a link determine the way incoming data is routed to that link.</p>
<blockquote>
<p><strong>Note:</strong> All active filters for a link must be of the same type.</p>
</blockquote>
<p>For links using a token-ring, Ethernet, wireless, or FDDI communications line, there are three types of filters. The following list of filters is from most to least restrictive:</p>
<ul>
<li>Destination service access point (DSAP), source service access point (SSAP), frame type, optional sending adapter address, and protocol (or group) ID.<br><br></li>
<li>Destination service access point (DSAP), source service access point (SSAP), optional frame type, and sending adapter address<br><br></li>
<li>DSAP, SSAP, and optional frame type<br><br></li>
<li>DSAP</li>
</ul>
<p>For links using an X.25 communications line, there are two types of filters. The following list of filters is from most to least restrictive:</p>
<ul>
<li>Protocol identifier (PID) and calling data terminal equipment (DTE) address
<p>The iSeries server treats the first byte of call-user data in an X.25 call request packet as the PID.</p></li>
<li>PID</li>
</ul>
<p>The order for checking filters when multiple links are using the same communications line, is from most to least restrictive. For example, suppose two user-defined communications application programs (application program A and B) in different jobs each have a link enabled that use the same token-ring communications line. Further suppose that application program A has activated a filter on DSAP X'22' and application program B has activated a filter on DSAP X'22' and SSAP X'22'. If a data frame comes in with a DSAP of X'22' and an SSAP of X'22', application program B will receive the frame. If a data frame comes in with a DSAP of X'22' and an SSAP not equal to X'22', application program A will receive the frame.</p>
<br>
<!-- Please NOTE: DO NOT DELETE THIS SECTION if this API has no authorities and locks. -->
<!-- Instead, use the commented out coding below to indicate NONE. -->
<h3>Authorities and Locks</h3>
<!-- Use this if there are no authorities and locks. -->
<p>None.</p>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Return code</strong></dt>
<dd>OUTPUT: BINARY(4)
<p>The recovery action to take. See <a href="#HDRSETFRR">Return and Reason Codes</a>.</p></dd>
<dt><strong>Reason code</strong></dt>
<dd>OUTPUT; BINARY(4)
<p>The error that occurred. See <a href="#HDRSETFRR">Return and Reason Codes</a>.</p></dd>
<dt><strong>Error offset</strong></dt>
<dd>OUTPUT; BINARY(4)
<p>The offset from the top of the output buffer to the incorrect filter header data or to the incorrect filter in the filter list.</p>
<p>The content of this parameter is only valid for 83/1999 and 83/3003 return/reason codes.</p></dd>
<dt><strong>Communications handle</strong></dt>
<dd>INPUT; CHAR(10)
<p>The name of the link on which to perform the filter operation.</p></dd>
</dl>
<br>
<h3><a name="HDRSETFFMT">Format of Filter Information</a></h3>
<p>The application must provide all filter information in the output buffer that was created when the link was enabled. The application should treat the output buffer as one large space with the size equal to the number of data units created for the output buffer multiplied by the size of each data unit. This information is returned by the QOLELINK API when the link was enabled.</p>
<p>The filter information in the output buffer is made up of two parts. The first portion starts at offset 0 from the top of the output buffer and contains filter header data. The second portion of the filter information starts immediately after the filter header data in the output buffer and contains the filters that make up the filter list.</p>
<p><strong>Filter Header Data</strong></p>
<table border width="80%">
<tr>
<th valign="TOP">Field</th>
<th valign="TOP">Type</th>
<th valign="TOP">Description</th>
</tr>
<tr>
<td align="LEFT" valign="TOP" width="15%">Function</td>
<td align="LEFT" valign="TOP" width="15%">CHAR(1)</td>
<td align="LEFT" valign="TOP" width="70%">The filter function to perform. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'</em></td>
<td valign="top">Deactivate all filters that are currently active for this link and activate the filters specified in the filter list for this link.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'01'</em></td>
<td valign="top">Activate the filters specified in the filter list for this link. All filters currently active for this link will remain active.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'02'</em></td>
<td valign="top">Deactivate the filters specified in the filter list that are currently active for this link.</td>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Filter type</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The type of the filters in the filter list. All filters in the filter list must be of this type. In addition, this must be the same type as the filters currently active for this link, if any. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'</em></td>
<td valign="top">PID.
<p>This filter type is only applicable for links using an X.25 communications line and only applies to incoming SVC calls.</p></td>
</tr>
<tr>
<td align="left" valign="top"><em>X'01'</em></td>
<td valign="top">PID and calling DTE address.
<p>This filter type is only applicable for links using an X.25 communications line and only applies to incoming SVC calls.</p></td>
</tr>
<tr>
<td align="left" valign="top"><em>X'02'</em></td>
<td valign="top">DSAP.
<p>This filter type is only applicable for links using a token-ring, Ethernet, wireless, or FDDI communications line.</p></td>
</tr>
<tr>
<td align="left" valign="top"><em>X'03'</em></td>
<td valign="top">DSAP, SSAP, and optional frame type.
<p>This filter type is only applicable for links using a token-ring, Ethernet, wireless, or FDDI communications line.</p></td>
</tr>
<tr>
<td align="left" valign="top"><em>X'04'</em></td>
<td valign="top">DSAP, SSAP, optional frame type, and sending adapter address.
<p>This filter type is only applicable for links using a token-ring, Ethernet, wireless, or FDDI communications line.</p></td>
</tr>
<tr>
<td align="left" valign="top"><em>X'08'</em></td>
<td valign="top">DSAP, SSAP, frame type, optional and sending adapter address, and protocol identifier (or organization ID).
<p>This filter type is only applicable for links using a LAN communications line.</p></td>
</tr>
</table>
<p><strong>Note:</strong> The filter type field must be set even if there are no filters in the filter list.</p>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Number of filters</td>
<td align="LEFT" valign="TOP">BINARY(2)</td>
<td align="LEFT" valign="TOP">The number of filters in the filter list. Any value between 0 and 256 may be used.
<p><strong>Note:</strong> The maximum number of filters that can be specified in the filter list is also limited by the total size of the output buffer which may accommodate less than 256 filters.</p>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Filter length</td>
<td align="LEFT" valign="TOP">BINARY(2)</td>
<td align="LEFT" valign="TOP">The length of each filter in the filter list. This value must be 16 for filter types X'00' and X'01', and 14 for filter types X'02', X'03', and X'04', and 25 for filter type X'08'.
<p><strong>Note:</strong> The filter length field must be set even if there are no filters in the filter list.</p>
</td>
</tr>
</table>
<p>The format of each filter in the previous list of filters is described in the following table. All filters in the list of filters must be contiguous with each other and be of the type specified in the filter type field in the filter header data.</p>
<p><strong>X.25 Filters (Filter Types X'00' and X'01')</strong></p>
<table border width="80%">
<tr>
<th valign="TOP">Field</th>
<th valign="TOP">Type</th>
<th valign="TOP">Description</th>
</tr>
<tr>
<td align="LEFT" valign="TOP" width="15%">PID length</td>
<td align="LEFT" valign="TOP" width="15%">CHAR(1)</td>
<td align="LEFT" valign="TOP" width="70%">The length of the PID on which to route incoming calls. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'</em></td>
<td valign="top">Route incoming calls with no PID specified. That is, with no call user data in the call request packet.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'01'</em></td>
<td valign="top">Route incoming calls with the PID being treated as the first byte of call user data in the call request packet.</td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">PID</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The PID on which to route incoming calls. This should be set to X'00' when the PID length field is set to X'00'. Otherwise, any value may be used.
<p><strong>Note:</strong> Care should be taken when setting the PID field to an SNA PID (X'C3', X'C6', X'CB', X'CE'), asynchronous PID (X'01', X'C0'), or TCP/IP PID (X'CC'). See the <a href="../books/sc415405.pdf" target="_blank">X.25 Network Support</a> <img src="wbpdf.gif" alt="Link to PDF"> book for more information.</p>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Calling DTE address length</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">Specifies, in hexadecimal, the number of binary coded decimal (BCD) digits in the calling DTE address on which to route incoming calls. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'</em></td>
<td valign="top">For filter type X'00'.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'01'-X'0F'</em></td>
<td valign="top">For filter type X'01' when extended network addressing is not configured in the line description. See <a href="qolqlind.htm">Query Line Description (QOLQLIND) API</a> to determine if extended network addressing is configured for this line.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'01'-X'11'</em></td>
<td valign="top">For filter type X'01' when extended network addressing is configured in the line description. See <a href="qolqlind.htm">Query Line Description (QOLQLIND) API</a> to determine if extended network addressing is configured for this line.</td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Calling DTE address</td>
<td align="LEFT" valign="TOP">CHAR(12)</td>
<td align="LEFT" valign="TOP">Specifies, in binary coded decimal (BCD), the calling DTE address on which to route incoming calls. This should be set to BCD zeros when the calling DTE address length field is set to X'00'. Otherwise, any valid DTE address left-justified and padded on the right with BCD zeros may be used.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Additional routing data</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">Specifies additional data on which to route incoming calls. This field is applicable for all X.25 filter types and is bit-sensitive with bit 0 (leftmost bit) defined for reverse charging options and bit 1 defined for fast select options. The remaining bits are undefined and should be set off ('0'B).
<p>The valid values for bit 0 are as follows:</p>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>'0'B</em></td>
<td valign="top">Accept reverse charging.</td>
</tr>
<tr>
<td align="left" valign="top"><em>'1'B</em></td>
<td valign="top">Do not accept reverse charging.</td>
</tr>
</table>
<p>The valid values for bit 1 are as follows:</p>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>'0'B</em></td>
<td valign="top">Accept fast select.</td>
</tr>
<tr>
<td align="left" valign="top"><em>'1'B</em></td>
<td valign="top">Do not accept fast select.</td>
</tr>
</table>
<p>For example, consider the following values for the additional routing data field:</p>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'</em></td>
<td valign="top">Accept reverse charging and accept fast select.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'40'</em></td>
<td valign="top">Accept reverse charging and do not accept fast select.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'80'</em></td>
<td valign="top">Do not accept reverse charging and accept fast select.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'C0'</em></td>
<td valign="top">Do not accept reverse charging and do not accept fast select.</td>
</tr>
</table>
</td>
</tr>
</table>
<p><strong>LAN Filters (Filter Types X'02', X'03', and X'04')</strong></p>
<table border width="80%">
<tr>
<th valign="TOP">Field</th>
<th valign="TOP">Type</th>
<th valign="TOP">Description</th>
</tr>
<tr>
<td align="LEFT" valign="TOP" width="15%">DSAP address length</td>
<td align="LEFT" valign="TOP" width="15%">CHAR(1)</td>
<td align="LEFT" valign="TOP" width="70%">The length of the DSAP address on which to route incoming frames. This must be set to X'01'.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">DSAP address</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The DSAP address on which to route incoming frames. The DSAP address is the service access point on which the incoming frame arrived. Any service access point configured in the token-ring, Ethernet, wireless, or FDDI line description as *NONSNA may be used.
<p><strong>Note:</strong> The Ethernet Version 2 standard does not use logical link control, which utilizes SAPs. Therefore, to receive Ethernet Version 2 frames, a null DSAP address (X'00') must be specified in the DSAP address field. Also, the Ethernet Standard (ETHSTD) parameter in the Ethernet line description must be configured as either *ETHV2 or *ALL.</p>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">SSAP address length</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The length of the SSAP address on which to route incoming frames. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'</em></td>
<td valign="top">For filter type X'02'.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'01'</em></td>
<td valign="top">For filter types X'03' and X'04'.</td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">SSAP address</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The SSAP address on which to route incoming frames. The SSAP address is the service access point on which the incoming frame was sent. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'</em></td>
<td valign="top">For filter type X'02'.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'00'-X'FF'</em></td>
<td valign="top">For filter types X'03' and X'04'.
<p><strong>Note:</strong> The Ethernet Version 2 standard does not use logical link control, which utilizes SAPs. Therefore, to receive Ethernet Version 2 frames, a null SSAP address (X'00') must be specified in the SSAP address field. Also, the Ethernet Standard (ETHSTD) parameter in the Ethernet line description must be configured as either *ETHV2 or *ALL.</p></td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Frame type length</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The length of the frame type on which to route incoming frames. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'</em></td>
<td valign="top">For filter type X'02'. Also for filter types X'03' and X'04' when the DSAP address and SSAP address fields are not both set to X'00'.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'00' or X'02'</em></td>
<td valign="top">For filter types X'03' and X'04' when the 'DSAP address' and SSAP address fields are both set to X'00'.</td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Frame type</td>
<td align="LEFT" valign="TOP">CHAR(2)</td>
<td align="LEFT" valign="TOP">The frame type on which to route incoming frames. The frame type is defined in an Ethernet Version 2 frame to indicate the upper layer protocol being used. This must be set to X'0000' when the frame type length field is set to X'00'. Otherwise, any value except X'80D5' (encapsulated LLC) may be used, but should be in the range of X'05DD'-X'FFFF'.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Sending adapter address length</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">Specifies, in hexadecimal, the length of the sending adapter address on which to route incoming frames. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'</em></td>
<td valign="top">For filter types X'02' and X'03'.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'06'</em></td>
<td valign="top">For filter type X'04'.</td>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Sending adapter address</td>
<td align="LEFT" valign="TOP">CHAR(6)</td>
<td align="LEFT" valign="TOP">Specifies, in packed form, the sending adapter address on which to route incoming frames. This must be set to X'000000000000' when the sending adapter address length field is set to X'00'. Otherwise, any valid adapter address may be used.</td>
</tr>
</table>
<p><strong>LAN Filters (Filter Type X'08')</strong></p>
<table border width="80%">
<tr>
<th valign="TOP">Field</th>
<th valign="TOP">Type</th>
<th valign="TOP">Description</th>
</tr>
<tr>
<td align="LEFT" valign="TOP" width="15%">DSAP address length</td>
<td align="LEFT" valign="TOP" width="15%">CHAR(1)</td>
<td align="LEFT" valign="TOP" width="70%">The length of the DSAP address on which to route incoming frames. This must be set to X'01'.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">DSAP address</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The DSAP address on which to route incoming frames. The DSAP address is the service access point on which the incoming frame arrived. Any service access point configured in the token-ring, Ethernet, wireless, or FDDI line description as *NONSNA may be used.
<p><strong>Note:</strong> The Ethernet Version 2 standard does not use logical link control, which utilizes SAPs. Therefore, to receive Ethernet Version 2 frames, a null DSAP address (X'00') must be specified in the DSAP address field. Also, the Ethernet Standard (ETHSTD) parameter in the Ethernet line description must be configured as either *ETHV2 or *ALL.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP">SSAP address length</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The length of the SSAP address on which to route incoming frames. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'01'</em></td>
<td valign="top">For filter type X'08'.</td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">SSAP address</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The SSAP address on which to route incoming frames. The SSAP address is the service access point on which the incoming frame was sent. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00'-X'FF'</em></td>
<td valign="top">For filter type X'08'.
<p><strong>Note:</strong> The Ethernet Version 2 standard does not use logical link control, which utilizes SAPs. Therefore, to receive Ethernet Version 2 frames, a null SSAP address (X'00') must be specified in the SSAP address field. Also, the Ethernet Standard (ETHSTD) parameter in the Ethernet line description must be configured as either *ETHV2 or *ALL.</p></td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Frame type length</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">The length of the frame type on which to route incoming frames. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'02'</em></td>
<td valign="top">For filter type X'08'.</td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Frame type</td>
<td align="LEFT" valign="TOP">CHAR(2)</td>
<td align="LEFT" valign="TOP">The frame type on which to route incoming frames. The frame type is defined in an Ethernet Version 2 frame to indicate the upper layer protocol being used. This must be set to X'0000' when the frame type length field is set to X'00'. Otherwise, any value except X'80D5' (encapsulated LLC) may be used, but should be in the range of X'05DD'-X'FFFF'.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Sending adapter address length</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">In hexadecimal, the length of the sending adapter address on which to route incoming frames. The valid values are as follows:<br><br>
<table cellpadding="3">
<tr>
<td align="left" valign="top"><em>X'00' or</em></td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top"><em>X'06'</em></td>
<td valign="top">For filter type X'08'.</td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Sending adapter address</td>
<td align="LEFT" valign="TOP">CHAR(6)</td>
<td align="LEFT" valign="TOP">In packed form, the sending adapter address on which to route incoming frames. This must be set to X'000000000000' when the sending adapter address length field is set to X'00'. Otherwise, any valid adapter address may be used.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Protocol ID length</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">In hexadecimal, the length of the protocol ID on which to route incoming frames. This must be set to X'03'.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Protocol ID</td>
<td align="LEFT" valign="TOP">CHAR(3)</td>
<td align="LEFT" valign="TOP">In hexadecimal, the protocol ID (or organization ID) to route incoming frames.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Reserved field</td>
<td align="LEFT" valign="TOP">CHAR(7)</td>
<td align="LEFT" valign="TOP">This field must be initialized to hexadecimal zeros, X'00000000000000'.</td>
</tr>
</table>
<br><br>
<h3>General Rules for Using Filters</h3>
<p>The following is a list of rules for activating and deactivating filters:</p>
<ul>
<li>All active filters for a link must be of the same type<br><br></li>
<li>A link can have a maximum of 256 active filters<br><br></li>
<li>The maximum number of filters that can be specified in the filter list can be no more than 256, and may be less, depending on the size of the output buffer<br><br></li>
<li>A request to activate a filter for a link that already has the same filter active will be successful, but the filter will only be activated once<br><br></li>
<li>A request to deactivate a filter for a link that has no such filter active will be successful<br><br></li>
<li>If the return and reason code from the QOLSETF API is not 0/0, none of the specified filters were activated or deactivated<br><br></li>
<li>Once a filter is activated, it will remain active until one of the following occurs:<br><br>
<ul>
<li>It is deactivated by explicitly calling the QOLSETF API<br><br></li>
<li>The link that the filter was active for is disabled</li>
</ul></li>
</ul>
<br>
<h3><a name="HDRSETFRR">Return and Reason Codes</a></h3>
<table border width="80%">
<tr>
<th valign="top">Return/Reason Code</th>
<th valign="top">Meaning</th>
<th valign="top">Recovery</th>
</tr>
<tr>
<td align="center" valign="TOP" width="15%">0/0</td>
<td align="LEFT" valign="TOP" width="40%">Operation successful.</td>
<td align="LEFT" valign="TOP" width="45%">Continue processing.</td>
</tr>
<tr>
<td align="center" valign="TOP">80/2200</td>
<td align="LEFT" valign="TOP">Queue error detected. Escape message CPF91F1 will be sent to the application program when this return and reason code is received.</td>
<td align="LEFT" valign="TOP">Ensure the link is disabled and see messages in the job log for further information. Then correct the error, enable the link, and try the request again.</td>
</tr>
<tr>
<td align="center" valign="TOP">80/2401</td>
<td align="LEFT" valign="TOP">Output buffer error detected. Escape message CPF91F1 will be sent to the application program when this return and reason code is received.</td>
<td align="LEFT" valign="TOP">Ensure the link is disabled and see messages in the job log for further information. Then correct the error, enable the link, and try the request again.</td>
</tr>
<tr>
<td align="center" valign="TOP">80/3002</td>
<td align="LEFT" valign="TOP">A previous error occurred on this link that was reported to the application program by escape message CPF91F0 or CPF91F1. However, the application program has attempted another operation.</td>
<td align="LEFT" valign="TOP">Ensure the link is disabled and see messages in the job log for further information. If escape message CPF91F0 was sent to the application program, then report the problem using the ANZPRB command. Otherwise, correct the error, enable the link, and try the request again.</td>
</tr>
<tr>
<td align="center" valign="TOP">80/4000</td>
<td align="LEFT" valign="TOP">Error recovery has been canceled for this link.</td>
<td align="LEFT" valign="TOP">Ensure the link is disabled and see messages in the job log for further information. Then correct the condition, enable the link, and try the request again.</td>
</tr>
<tr>
<td align="center" valign="TOP">80/9999</td>
<td align="LEFT" valign="TOP">Internal system error detected. Escape message CPF91F0 will be sent to the application program when this return and reason code is received.</td>
<td align="LEFT" valign="TOP">See messages in the job log for further information. Then, report the problem using the ANZPRB command.</td>
</tr>
<tr>
<td align="center" valign="TOP">83/1998</td>
<td align="LEFT" valign="TOP">The size of the output buffer is not large enough for the specified number of filters.</td>
<td align="LEFT" valign="TOP">Reduce the number of filters in the filter list so that the size of the filter list plus the size of the filter header data is less than or equal to the size of the output buffer. Try the request again.</td>
</tr>
<tr>
<td align="center" valign="TOP">83/1999</td>
<td align="LEFT" valign="TOP">Incorrect filter header data or incorrect filter in the filter list. If the filter header data is incorrect, the error offset parameter will point to the field in error. If a filter in the filter list is incorrect, the error offset parameter will point to the beginning of the incorrect filter.</td>
<td align="LEFT" valign="TOP">Correct the incorrect filter header data or the incorrect filter in the filter list. Try the request again.</td>
</tr>
<tr>
<td align="center" valign="TOP">83/3001</td>
<td align="LEFT" valign="TOP">Link not enabled.</td>
<td align="LEFT" valign="TOP">Correct the communications handle parameter. Try the request again.</td>
</tr>
<tr>
<td align="center" valign="TOP">83/3003</td>
<td align="LEFT" valign="TOP">One of the following is true of a filter in the filter list. The error offset parameter will point to the beginning of the offending filter.
<ul>
<li>The filter is already activated by another job using the same communications line<br><br></li>
<li>The service access point, specified in the DSAP address field of the filter, is not configured in the token-ring, Ethernet, wireless, or FDDI line description<br><br></li>
<li>The DSAP address field of the filter contains the null DSAP address (X'00'), but the Ethernet Standard (ETHSTD) parameter in the Ethernet line description is not configured as *ETHV2 or *ALL<br><br></li>
<li>The service access point, specified in the DSAP address field of the filter, is configured in the token-ring, Ethernet, wireless, or FDDI line description for SNA use only (*SNA)</li>
</ul>
</td>
<td align="LEFT" valign="TOP">Do one of the following, and try the request again:
<ul>
<li>End the job that has already activated the filter<br><br></li>
<li>Configure the service access point in the token-ring, Ethernet, wireless, or FDDI line description<br><br></li>
<li>Delete the Ethernet line description, and create another Ethernet line description specifying *ETHV2 or *ALL in the Ethernet Standard (ETHSTD) parameter<br><br></li>
<li>Change the service access point in the token-ring, Ethernet, or wireless line description to non-SNA use (*NONSNA)</li>
</ul>
</td>
</tr>
<tr>
<td align="center" valign="TOP">83/3004</td>
<td align="LEFT" valign="TOP">Link is enabling.</td>
<td align="LEFT" valign="TOP">Wait for the enable-complete entry to be sent to the data queue or user queue. If the link was successfully enabled, try the request again.</td>
</tr>
<tr>
<td align="center" valign="TOP">83/3200</td>
<td align="LEFT" valign="TOP">All resources are currently in use by asynchronous operations that have not yet completed.
<p><strong>Note:</strong> This return and reason code is only possible for links using an X.25 communications line. See <a href="qolsend.htm">Send Data (QOLSEND) API</a> for more information.</p></td>
<td align="LEFT" valign="TOP">Wait for at least one of the asynchronous operations to complete. Notification of completion of these operations will be received from the QOLRECV API. Try the request again.</td>
</tr>
<tr>
<td align="center" valign="TOP">83/4001</td>
<td align="LEFT" valign="TOP">Link failure, system starting error recovery for this link.</td>
<td align="LEFT" valign="TOP">Wait for the link to recover. Try the request again.</td>
</tr>
</table>
<br><br>
<h3>Error Messages</h3>
<table width="100%" cellpadding="3">
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td align="left" valign="top">CPF3C90 E</td>
<td valign="top">Literal value cannot be changed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF91F0 E</td>
<td valign="top">Internal system error.</td>
</tr>
<tr>
<td align="left" valign="top">CPF91F1 E</td>
<td valign="top">User-defined communications application error.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9872 E</td>
<td valign="top">Program or service program &amp;1 in library &amp;2 ended. Reason code &amp;3.</td>
</tr>
</table>
<br>
<hr>
API introduced: V2R1
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center"><td valign="middle" align="center">
<a href="#Top_Of_Page">Top</a>
| <a href="comm.htm">Communications APIs</a>
| <a href="aplist.htm">APIs by category</a>
</td></tr>
</table>
</center>
</body>
</html>