sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget#/translations/zh_CN/networking/tipcmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/zh_TW/networking/tipcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/it_IT/networking/tipcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ja_JP/networking/tipcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ko_KR/networking/tipcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/sp_SP/networking/tipcmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh=/var/lib/git/docbuild/linux/Documentation/networking/tipc.rsthKubhsection)}(hhh](htitle)}(hLinux Kernel TIPCh]hLinux Kernel TIPC}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Introductionh]h Introduction}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hXTIPC (Transparent Inter Process Communication) is a protocol that is specially designed for intra-cluster communication. It can be configured to transmit messages either on UDP or directly across Ethernet. Message delivery is sequence guaranteed, loss free and flow controlled. Latency times are shorter than with any other known protocol, while maximal throughput is comparable to that of TCP.h]hXTIPC (Transparent Inter Process Communication) is a protocol that is specially designed for intra-cluster communication. It can be configured to transmit messages either on UDP or directly across Ethernet. Message delivery is sequence guaranteed, loss free and flow controlled. Latency times are shorter than with any other known protocol, while maximal throughput is comparable to that of TCP.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(h TIPC Featuresh]h TIPC Features}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh bullet_list)}(hhh](h list_item)}(hXSCluster wide IPC service Have you ever wished you had the convenience of Unix Domain Sockets even when transmitting data between cluster nodes? Where you yourself determine the addresses you want to bind to and use? Where you don't have to perform DNS lookups and worry about IP addresses? Where you don't have to start timers to monitor the continuous existence of peer sockets? And yet without the downsides of that socket type, such as the risk of lingering inodes? Welcome to the Transparent Inter Process Communication service, TIPC in short, which gives you all of this, and a lot more. h](h)}(hCluster wide IPC serviceh]hCluster wide IPC service}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hXHave you ever wished you had the convenience of Unix Domain Sockets even when transmitting data between cluster nodes? Where you yourself determine the addresses you want to bind to and use? Where you don't have to perform DNS lookups and worry about IP addresses? Where you don't have to start timers to monitor the continuous existence of peer sockets? And yet without the downsides of that socket type, such as the risk of lingering inodes?h]hXHave you ever wished you had the convenience of Unix Domain Sockets even when transmitting data between cluster nodes? Where you yourself determine the addresses you want to bind to and use? Where you don’t have to perform DNS lookups and worry about IP addresses? Where you don’t have to start timers to monitor the continuous existence of peer sockets? And yet without the downsides of that socket type, such as the risk of lingering inodes?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h{Welcome to the Transparent Inter Process Communication service, TIPC in short, which gives you all of this, and a lot more.h]h{Welcome to the Transparent Inter Process Communication service, TIPC in short, which gives you all of this, and a lot more.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubj)}(hService Addressing A fundamental concept in TIPC is that of Service Addressing which makes it possible for a programmer to chose his own address, bind it to a server socket and let client programs use only that address for sending messages. h](h)}(hService Addressingh]hService Addressing}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hj6ubh)}(hA fundamental concept in TIPC is that of Service Addressing which makes it possible for a programmer to chose his own address, bind it to a server socket and let client programs use only that address for sending messages.h]hA fundamental concept in TIPC is that of Service Addressing which makes it possible for a programmer to chose his own address, bind it to a server socket and let client programs use only that address for sending messages.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hj6ubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubj)}(hXService Tracking A client wanting to wait for the availability of a server, uses the Service Tracking mechanism to subscribe for binding and unbinding/close events for sockets with the associated service address. The service tracking mechanism can also be used for Cluster Topology Tracking, i.e., subscribing for availability/non-availability of cluster nodes. Likewise, the service tracking mechanism can be used for Cluster Connectivity Tracking, i.e., subscribing for up/down events for individual links between cluster nodes. h](h)}(hService Trackingh]hService Tracking}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hj\ubh)}(hA client wanting to wait for the availability of a server, uses the Service Tracking mechanism to subscribe for binding and unbinding/close events for sockets with the associated service address.h]hA client wanting to wait for the availability of a server, uses the Service Tracking mechanism to subscribe for binding and unbinding/close events for sockets with the associated service address.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hj\ubh)}(hThe service tracking mechanism can also be used for Cluster Topology Tracking, i.e., subscribing for availability/non-availability of cluster nodes.h]hThe service tracking mechanism can also be used for Cluster Topology Tracking, i.e., subscribing for availability/non-availability of cluster nodes.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hj\ubh)}(hLikewise, the service tracking mechanism can be used for Cluster Connectivity Tracking, i.e., subscribing for up/down events for individual links between cluster nodes.h]hLikewise, the service tracking mechanism can be used for Cluster Connectivity Tracking, i.e., subscribing for up/down events for individual links between cluster nodes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hj\ubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubj)}(hXTransmission Modes Using a service address, a client can send datagram messages to a server socket. Using the same address type, it can establish a connection towards an accepting server socket. It can also use a service address to create and join a Communication Group, which is the TIPC manifestation of a brokerless message bus. Multicast with very good performance and scalability is available both in datagram mode and in communication group mode. h](h)}(hTransmission Modesh]hTransmission Modes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubh)}(hPUsing a service address, a client can send datagram messages to a server socket.h]hPUsing a service address, a client can send datagram messages to a server socket.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjubh)}(h^Using the same address type, it can establish a connection towards an accepting server socket.h]h^Using the same address type, it can establish a connection towards an accepting server socket.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubh)}(hIt can also use a service address to create and join a Communication Group, which is the TIPC manifestation of a brokerless message bus.h]hIt can also use a service address to create and join a Communication Group, which is the TIPC manifestation of a brokerless message bus.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjubh)}(hxMulticast with very good performance and scalability is available both in datagram mode and in communication group mode.h]hxMulticast with very good performance and scalability is available both in datagram mode and in communication group mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hjubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubj)}(hInter Node Links Communication between any two nodes in a cluster is maintained by one or two Inter Node Links, which both guarantee data traffic integrity and monitor the peer node's availability. h](h)}(hInter Node Linksh]hInter Node Links}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjubh)}(hCommunication between any two nodes in a cluster is maintained by one or two Inter Node Links, which both guarantee data traffic integrity and monitor the peer node's availability.h]hCommunication between any two nodes in a cluster is maintained by one or two Inter Node Links, which both guarantee data traffic integrity and monitor the peer node’s availability.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubj)}(hXCluster Scalability By applying the Overlapping Ring Monitoring algorithm on the inter node links it is possible to scale TIPC clusters up to 1000 nodes with a maintained neighbor failure discovery time of 1-2 seconds. For smaller clusters this time can be made much shorter. h](h)}(hCluster Scalabilityh]hCluster Scalability}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhjubh)}(hBy applying the Overlapping Ring Monitoring algorithm on the inter node links it is possible to scale TIPC clusters up to 1000 nodes with a maintained neighbor failure discovery time of 1-2 seconds. For smaller clusters this time can be made much shorter.h]hBy applying the Overlapping Ring Monitoring algorithm on the inter node links it is possible to scale TIPC clusters up to 1000 nodes with a maintained neighbor failure discovery time of 1-2 seconds. For smaller clusters this time can be made much shorter.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhjubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubj)}(hNeighbor Discovery Neighbor Node Discovery in the cluster is done by Ethernet broadcast or UDP multicast, when any of those services are available. If not, configured peer IP addresses can be used. h](h)}(hNeighbor Discoveryh]hNeighbor Discovery}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhj:ubh)}(hNeighbor Node Discovery in the cluster is done by Ethernet broadcast or UDP multicast, when any of those services are available. If not, configured peer IP addresses can be used.h]hNeighbor Node Discovery in the cluster is done by Ethernet broadcast or UDP multicast, when any of those services are available. If not, configured peer IP addresses can be used.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhj:ubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubj)}(hXKConfiguration When running TIPC in single node mode no configuration whatsoever is needed. When running in cluster mode TIPC must as a minimum be given a node address (before Linux 4.17) and told which interface to attach to. The "tipc" configuration tool makes is possible to add and maintain many more configuration parameters. h](h)}(h Configurationh]h Configuration}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj`ubh)}(hX;When running TIPC in single node mode no configuration whatsoever is needed. When running in cluster mode TIPC must as a minimum be given a node address (before Linux 4.17) and told which interface to attach to. The "tipc" configuration tool makes is possible to add and maintain many more configuration parameters.h]hX?When running TIPC in single node mode no configuration whatsoever is needed. When running in cluster mode TIPC must as a minimum be given a node address (before Linux 4.17) and told which interface to attach to. The “tipc” configuration tool makes is possible to add and maintain many more configuration parameters.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhj`ubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubj)}(hXPerformance TIPC message transfer latency times are better than in any other known protocol. Maximal byte throughput for inter-node connections is still somewhat lower than for TCP, while they are superior for intra-node and inter-container throughput on the same host. h](h)}(h Performanceh]h Performance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjubh)}(hXTIPC message transfer latency times are better than in any other known protocol. Maximal byte throughput for inter-node connections is still somewhat lower than for TCP, while they are superior for intra-node and inter-container throughput on the same host.h]hXTIPC message transfer latency times are better than in any other known protocol. Maximal byte throughput for inter-node connections is still somewhat lower than for TCP, while they are superior for intra-node and inter-container throughput on the same host.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubj)}(hULanguage Support The TIPC user API has support for C, Python, Perl, Ruby, D and Go. h](h)}(hLanguage Supporth]hLanguage Support}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjubh)}(hBThe TIPC user API has support for C, Python, Perl, Ruby, D and Go.h]hBThe TIPC user API has support for C, Python, Perl, Ruby, D and Go.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhjubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1hhhhKhhhhubeh}(h] tipc-featuresah ]h"] tipc featuresah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hMore Informationh]hMore Information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKgubh)}(hhh](j)}(h9How to set up TIPC: http://tipc.io/getting_started.html h](h)}(hHow to set up TIPC:h]hHow to set up TIPC:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubh)}(h#http://tipc.io/getting_started.htmlh]h reference)}(hj h]h#http://tipc.io/getting_started.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurij uh1j hjubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h;How to program with TIPC: http://tipc.io/programming.html h](h)}(hHow to program with TIPC:h]hHow to program with TIPC:}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhj(ubh)}(hhttp://tipc.io/programming.htmlh]j )}(hj<h]hhttp://tipc.io/programming.html}(hj>hhhNhNubah}(h]h ]h"]h$]h&]refurij<uh1j hj:ubah}(h]h ]h"]h$]h&]uh1hhhhKohj(ubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h9How to contribute to TIPC: http://tipc.io/contacts.html h](h)}(hHow to contribute to TIPC:h]hHow to contribute to TIPC:}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjXubh)}(hhttp://tipc.io/contacts.htmlh]j )}(hjlh]hhttp://tipc.io/contacts.html}(hjnhhhNhNubah}(h]h ]h"]h$]h&]refurijluh1j hjjubah}(h]h ]h"]h$]h&]uh1hhhhKshjXubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hFMore details about TIPC specification: http://tipc.io/protocol.html h](h)}(h&More details about TIPC specification:h]h&More details about TIPC specification:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjubh)}(hhttp://tipc.io/protocol.htmlh]j )}(hjh]hhttp://tipc.io/protocol.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubah}(h]h ]h"]h$]h&]uh1hhhhKwhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKihjhhubeh}(h]more-informationah ]h"]more informationah$]h&]uh1hhhhhhhhKgubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hImplementationh]hImplementation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK{ubh)}(h>TIPC is implemented as a kernel module in net/tipc/ directory.h]h>TIPC is implemented as a kernel module in net/tipc/ directory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hjhhubh)}(hhh](h)}(hTIPC Base Typesh]hTIPC Base Types}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singletipc_subscription (C struct)c.tipc_subscriptionhNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(htipc_subscriptionh]hdesc_signature_line)}(hstruct tipc_subscriptionh](hdesc_sig_keyword)}(hstructh]hstruct}(hj"hhhNhNubah}(h]h ]kah"]h$]h&]uh1j hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhKubhdesc_sig_space)}(h h]h }(hj4hhhNhNubah}(h]h ]wah"]h$]h&]uh1j2hjhhhj1hKubh desc_name)}(htipc_subscriptionh]h desc_sig_name)}(hjh]htipc_subscription}(hjKhhhNhNubah}(h]h ]nah"]h$]h&]uh1jIhjEubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jChjhhhj1hKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jsphinx_line_type declaratorhjhhhj1hKubah}(h]j ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhj1hKhjhhubh desc_content)}(hhh]h)}(h)TIPC network topology subscription objecth]h)TIPC network topology subscription object}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK3hjwhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj1hKubeh}(h]h ](cstructeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jhhhjhNhNubh container)}(hX**Definition**:: struct tipc_subscription { struct tipc_subscr s; struct tipc_event evt; struct kref kref; struct net *net; struct timer_list timer; struct list_head service_list; struct list_head sub_list; int conid; bool inactive; spinlock_t lock; }; **Members** ``s`` host-endian copy of the user subscription ``evt`` template for events generated by subscription ``kref`` reference count for this subscription ``net`` network namespace associated with subscription ``timer`` timer governing subscription duration (optional) ``service_list`` adjacent subscriptions in name sequence's subscription list ``sub_list`` adjacent subscriptions in subscriber's subscription list ``conid`` connection identifier of topology server ``inactive`` true if this subscription is inactive ``lock`` serialize up/down and timer eventsh](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK7hjubh literal_block)}(hXstruct tipc_subscription { struct tipc_subscr s; struct tipc_event evt; struct kref kref; struct net *net; struct timer_list timer; struct list_head service_list; struct list_head sub_list; int conid; bool inactive; spinlock_t lock; };h]hXstruct tipc_subscription { struct tipc_subscr s; struct tipc_event evt; struct kref kref; struct net *net; struct timer_list timer; struct list_head service_list; struct list_head sub_list; int conid; bool inactive; spinlock_t lock; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK9hjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhKFhjubhdefinition_list)}(hhh](hdefinition_list_item)}(h0``s`` host-endian copy of the user subscription h](hterm)}(h``s``h]hliteral)}(hjh]hs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK5hjubh definition)}(hhh]h)}(h)host-endian copy of the user subscriptionh]h)host-endian copy of the user subscription}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK5hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK5hjubj)}(h6``evt`` template for events generated by subscription h](j)}(h``evt``h]j)}(hj7h]hevt}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK6hj1ubj)}(hhh]h)}(h-template for events generated by subscriptionh]h-template for events generated by subscription}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhK6hjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhK6hjubj)}(h/``kref`` reference count for this subscription h](j)}(h``kref``h]j)}(hjph]hkref}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK7hjjubj)}(hhh]h)}(h%reference count for this subscriptionh]h%reference count for this subscription}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK7hjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjhK7hjubj)}(h7``net`` network namespace associated with subscription h](j)}(h``net``h]j)}(hjh]hnet}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK8hjubj)}(hhh]h)}(h.network namespace associated with subscriptionh]h.network namespace associated with subscription}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjubj)}(h;``timer`` timer governing subscription duration (optional) h](j)}(h ``timer``h]j)}(hjh]htimer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK9hjubj)}(hhh]h)}(h0timer governing subscription duration (optional)h]h0timer governing subscription duration (optional)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK9hjubj)}(hM``service_list`` adjacent subscriptions in name sequence's subscription list h](j)}(h``service_list``h]j)}(hjh]h service_list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK:hjubj)}(hhh]h)}(h;adjacent subscriptions in name sequence's subscription listh]h=adjacent subscriptions in name sequence’s subscription list}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hK:hj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hK:hjubj)}(hF``sub_list`` adjacent subscriptions in subscriber's subscription list h](j)}(h ``sub_list``h]j)}(hjTh]hsub_list}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK;hjNubj)}(hhh]h)}(h8adjacent subscriptions in subscriber's subscription listh]h:adjacent subscriptions in subscriber’s subscription list}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihK;hjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihK;hjubj)}(h3``conid`` connection identifier of topology server h](j)}(h ``conid``h]j)}(hjh]hconid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK=hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_media_addr (C struct)c.tipc_media_addrhNtauh1jhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhNubj)}(hhh](j)}(htipc_media_addrh]j)}(hstruct tipc_media_addrh](j!)}(hj$h]hstruct}(hjZhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjVhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKubj3)}(h h]h }(hjhhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjVhhhjghKubjD)}(htipc_media_addrh]jJ)}(hjTh]htipc_media_addr}(hjzhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjvubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjVhhhjghKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjRhhhjghKubah}(h]jLah ](jmjneh"]h$]h&]jrjs)jthuh1jhjghKhjOhhubjv)}(hhh]h)}(h(destination address used by TIPC bearersh]h(destination address used by TIPC bearers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKHhjhhubah}(h]h ]h"]h$]h&]uh1juhjOhhhjghKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhjNhNubj)}(hX&**Definition**:: struct tipc_media_addr { u8 value[TIPC_MEDIA_INFO_SIZE]; u8 media_id; u8 broadcast; }; **Members** ``value`` address info (format defined by media) ``media_id`` TIPC media type identifier ``broadcast`` non-zero if address is a broadcast addressh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKLhjubj)}(hbstruct tipc_media_addr { u8 value[TIPC_MEDIA_INFO_SIZE]; u8 media_id; u8 broadcast; };h]hbstruct tipc_media_addr { u8 value[TIPC_MEDIA_INFO_SIZE]; u8 media_id; u8 broadcast; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKNhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKThjubj)}(hhh](j)}(h1``value`` address info (format defined by media) h](j)}(h ``value``h]j)}(hj h]hvalue}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKJhjubj)}(hhh]h)}(h&address info (format defined by media)h]h&address info (format defined by media)}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKJhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjubj)}(h(``media_id`` TIPC media type identifier h](j)}(h ``media_id``h]j)}(hjBh]hmedia_id}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKKhj<ubj)}(hhh]h)}(hTIPC media type identifierh]hTIPC media type identifier}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhKKhjXubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhKKhjubj)}(h8``broadcast`` non-zero if address is a broadcast addressh](j)}(h ``broadcast``h]j)}(hj{h]h broadcast}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKKhjuubj)}(hhh]h)}(h*non-zero if address is a broadcast addressh]h*non-zero if address is a broadcast address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKLhjubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjhKKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_media (C struct) c.tipc_mediahNtauh1jhjhhhjNhNubj)}(hhh](j)}(h tipc_mediah]j)}(hstruct tipc_mediah](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKRubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKRubjD)}(h tipc_mediah]jJ)}(hjh]h tipc_media}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKRubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKRubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKRhjhhubjv)}(hhh]h)}(h3Media specific info exposed to generic bearer layerh]h3Media specific info exposed to generic bearer layer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKVhj hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKRubeh}(h]h ](jstructeh"]h$]h&]jjjj/ jj/ jjjuh1jhhhjhjNhNubj)}(hX**Definition**:: struct tipc_media { int (*send_msg)(struct net *net, struct sk_buff *buf,struct tipc_bearer *b, struct tipc_media_addr *dest); int (*enable_media)(struct net *net, struct tipc_bearer *b, struct nlattr *attr[]); void (*disable_media)(struct tipc_bearer *b); int (*addr2str)(struct tipc_media_addr *addr,char *strbuf, int bufsz); int (*addr2msg)(char *msg, struct tipc_media_addr *addr); int (*msg2addr)(struct tipc_bearer *b,struct tipc_media_addr *addr, char *msg); int (*raw2addr)(struct tipc_bearer *b,struct tipc_media_addr *addr, const char *raw); u32 priority; u32 tolerance; u32 min_win; u32 max_win; u32 mtu; u32 type_id; u32 hwaddr_len; char name[TIPC_MAX_MEDIA_NAME]; }; **Members** ``send_msg`` routine which handles buffer transmission ``enable_media`` routine which enables a media ``disable_media`` routine which disables a media ``addr2str`` convert media address format to string ``addr2msg`` convert from media addr format to discovery msg addr format ``msg2addr`` convert from discovery msg addr format to media addr format ``raw2addr`` convert from raw addr format to media addr format ``priority`` default link (and bearer) priority ``tolerance`` default time (in ms) before declaring link failure ``min_win`` minimum window (in packets) before declaring link congestion ``max_win`` maximum window (in packets) before declaring link congestion ``mtu`` max packet size bearer can support for media type not dependent on underlying device MTU ``type_id`` TIPC media identifier ``hwaddr_len`` TIPC media address len ``name`` media nameh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7 ubh:}(hj7 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKZhj3 ubj)}(hXstruct tipc_media { int (*send_msg)(struct net *net, struct sk_buff *buf,struct tipc_bearer *b, struct tipc_media_addr *dest); int (*enable_media)(struct net *net, struct tipc_bearer *b, struct nlattr *attr[]); void (*disable_media)(struct tipc_bearer *b); int (*addr2str)(struct tipc_media_addr *addr,char *strbuf, int bufsz); int (*addr2msg)(char *msg, struct tipc_media_addr *addr); int (*msg2addr)(struct tipc_bearer *b,struct tipc_media_addr *addr, char *msg); int (*raw2addr)(struct tipc_bearer *b,struct tipc_media_addr *addr, const char *raw); u32 priority; u32 tolerance; u32 min_win; u32 max_win; u32 mtu; u32 type_id; u32 hwaddr_len; char name[TIPC_MAX_MEDIA_NAME]; };h]hXstruct tipc_media { int (*send_msg)(struct net *net, struct sk_buff *buf,struct tipc_bearer *b, struct tipc_media_addr *dest); int (*enable_media)(struct net *net, struct tipc_bearer *b, struct nlattr *attr[]); void (*disable_media)(struct tipc_bearer *b); int (*addr2str)(struct tipc_media_addr *addr,char *strbuf, int bufsz); int (*addr2msg)(char *msg, struct tipc_media_addr *addr); int (*msg2addr)(struct tipc_bearer *b,struct tipc_media_addr *addr, char *msg); int (*raw2addr)(struct tipc_bearer *b,struct tipc_media_addr *addr, const char *raw); u32 priority; u32 tolerance; u32 min_win; u32 max_win; u32 mtu; u32 type_id; u32 hwaddr_len; char name[TIPC_MAX_MEDIA_NAME]; };}hjT sbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK\hj3 ubh)}(h **Members**h]j)}(hje h]hMembers}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKnhj3 ubj)}(hhh](j)}(h7``send_msg`` routine which handles buffer transmission h](j)}(h ``send_msg``h]j)}(hj h]hsend_msg}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKXhj~ ubj)}(hhh]h)}(h)routine which handles buffer transmissionh]h)routine which handles buffer transmission}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKXhj ubah}(h]h ]h"]h$]h&]uh1jhj~ ubeh}(h]h ]h"]h$]h&]uh1jhj hKXhj{ ubj)}(h/``enable_media`` routine which enables a media h](j)}(h``enable_media``h]j)}(hj h]h enable_media}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKYhj ubj)}(hhh]h)}(hroutine which enables a mediah]hroutine which enables a media}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKYhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKYhj{ ubj)}(h1``disable_media`` routine which disables a media h](j)}(h``disable_media``h]j)}(hj h]h disable_media}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKZhj ubj)}(hhh]h)}(hroutine which disables a mediah]hroutine which disables a media}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKZhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKZhj{ ubj)}(h4``addr2str`` convert media address format to string h](j)}(h ``addr2str``h]j)}(hj/ h]haddr2str}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj- ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK[hj) ubj)}(hhh]h)}(h&convert media address format to stringh]h&convert media address format to string}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD hK[hjE ubah}(h]h ]h"]h$]h&]uh1jhj) ubeh}(h]h ]h"]h$]h&]uh1jhjD hK[hj{ ubj)}(hI``addr2msg`` convert from media addr format to discovery msg addr format h](j)}(h ``addr2msg``h]j)}(hjh h]haddr2msg}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK\hjb ubj)}(hhh]h)}(h;convert from media addr format to discovery msg addr formath]h;convert from media addr format to discovery msg addr format}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj} hK\hj~ ubah}(h]h ]h"]h$]h&]uh1jhjb ubeh}(h]h ]h"]h$]h&]uh1jhj} hK\hj{ ubj)}(hI``msg2addr`` convert from discovery msg addr format to media addr format h](j)}(h ``msg2addr``h]j)}(hj h]hmsg2addr}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK]hj ubj)}(hhh]h)}(h;convert from discovery msg addr format to media addr formath]h;convert from discovery msg addr format to media addr format}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK]hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hK]hj{ ubj)}(h?``raw2addr`` convert from raw addr format to media addr format h](j)}(h ``raw2addr``h]j)}(hj h]hraw2addr}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK^hj ubj)}(hhh]h)}(h1convert from raw addr format to media addr formath]h1convert from raw addr format to media addr format}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK^hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hK^hj{ ubj)}(h0``priority`` default link (and bearer) priority h](j)}(h ``priority``h]j)}(hj h]hpriority}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK_hj ubj)}(hhh]h)}(h"default link (and bearer) priorityh]h"default link (and bearer) priority}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj( hK_hj) ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj( hK_hj{ ubj)}(hA``tolerance`` default time (in ms) before declaring link failure h](j)}(h ``tolerance``h]j)}(hjL h]h tolerance}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK`hjF ubj)}(hhh]h)}(h2default time (in ms) before declaring link failureh]h2default time (in ms) before declaring link failure}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1hhja hK`hjb ubah}(h]h ]h"]h$]h&]uh1jhjF ubeh}(h]h ]h"]h$]h&]uh1jhja hK`hj{ ubj)}(hI``min_win`` minimum window (in packets) before declaring link congestion h](j)}(h ``min_win``h]j)}(hj h]hmin_win}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKahj ubj)}(hhh]h)}(hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKhj6ubj)}(hhh]h)}(hencap headers lengthh]hencap headers length}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhKhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhKhj ubj)}(h``up`` bearer up flag (bit 0) h](j)}(h``up``h]j)}(hjuh]hup}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKhjoubj)}(hhh]h)}(hbearer up flag (bit 0)h]hbearer up flag (bit 0)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhKhj ubj)}(h(``refcnt`` tipc_bearer reference counterh](j)}(h ``refcnt``h]j)}(hjh]hrefcnt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKhjubj)}(hhh]h)}(htipc_bearer reference counterh]htipc_bearer reference counter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj ubeh}(h]h ]h"]h$]h&]uh1jhj[ ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjNhNubh)}(h**Note**h]j)}(hjh]hNote}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKhjhhubh)}(hmedia-specific code is responsible for initialization of the fields indicated below when a bearer is enabled; TIPC's generic bearer code takes care of initializing all other fields.h]hmedia-specific code is responsible for initialization of the fields indicated below when a bearer is enabled; TIPC’s generic bearer code takes care of initializing all other fields.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j publication (C struct) c.publicationhNtauh1jhjhhhNhNubj)}(hhh](j)}(h publicationh]j)}(hstruct publicationh](j!)}(hj$h]hstruct}(hj/hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj+hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKubj3)}(h h]h }(hj=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj+hhhj<hKubjD)}(h publicationh]jJ)}(hj)h]h publication}(hjOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjKubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj+hhhj<hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj'hhhj<hKubah}(h]j"ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj<hKhj$hhubjv)}(hhh]h)}(h/info about a published service address or rangeh]h/info about a published service address or range}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK9hjnhhubah}(h]h ]h"]h$]h&]uh1juhj$hhhj<hKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX**Definition**:: struct publication { struct tipc_service_range sr; struct tipc_socket_addr sk; u16 scope; u32 key; u32 id; struct list_head binding_node; struct list_head binding_sock; struct list_head local_publ; struct list_head all_publ; struct list_head list; struct rcu_head rcu; }; **Members** ``sr`` service range represented by this publication ``sk`` address of socket bound to this publication ``scope`` scope of publication, TIPC_NODE_SCOPE or TIPC_CLUSTER_SCOPE ``key`` publication key, unique across the cluster ``id`` publication id ``binding_node`` all publications from the same node which bound this one - Remote publications: in node->publ_list; Used by node/name distr to withdraw publications when node is lost - Local/node scope publications: in name_table->node_scope list - Local/cluster scope publications: in name_table->cluster_scope list ``binding_sock`` all publications from the same socket which bound this one Used by socket to withdraw publications when socket is unbound/released ``local_publ`` list of identical publications made from this node Used by closest_first and multicast receive lookup algorithms ``all_publ`` all publications identical to this one, whatever node and scope Used by round-robin lookup algorithm ``list`` to form a list of publications in temporal order ``rcu`` RCU callback head used for deferred freeingh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK=hjubj)}(hX;struct publication { struct tipc_service_range sr; struct tipc_socket_addr sk; u16 scope; u32 key; u32 id; struct list_head binding_node; struct list_head binding_sock; struct list_head local_publ; struct list_head all_publ; struct list_head list; struct rcu_head rcu; };h]hX;struct publication { struct tipc_service_range sr; struct tipc_socket_addr sk; u16 scope; u32 key; u32 id; struct list_head binding_node; struct list_head binding_sock; struct list_head local_publ; struct list_head all_publ; struct list_head list; struct rcu_head rcu; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK?hjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKMhjubj)}(hhh](j)}(h5``sr`` service range represented by this publication h](j)}(h``sr``h]j)}(hjh]hsr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK;hjubj)}(hhh]h)}(h-service range represented by this publicationh]h-service range represented by this publication}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK;hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjubj)}(h3``sk`` address of socket bound to this publication h](j)}(h``sk``h]j)}(hjh]hsk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKhjubj)}(hhh]h)}(h*publication key, unique across the clusterh]h*publication key, unique across the cluster}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK>hjubj)}(h``id`` publication id h](j)}(h``id``h]j)}(hjh]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK?hjubj)}(hhh]h)}(hpublication idh]hpublication id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK?hjubj)}(hX>``binding_node`` all publications from the same node which bound this one - Remote publications: in node->publ_list; Used by node/name distr to withdraw publications when node is lost - Local/node scope publications: in name_table->node_scope list - Local/cluster scope publications: in name_table->cluster_scope list h](j)}(h``binding_node``h]j)}(hjh]h binding_node}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKDhjubj)}(hhh]h)}(hX,all publications from the same node which bound this one - Remote publications: in node->publ_list; Used by node/name distr to withdraw publications when node is lost - Local/node scope publications: in name_table->node_scope list - Local/cluster scope publications: in name_table->cluster_scope listh]hX,all publications from the same node which bound this one - Remote publications: in node->publ_list; Used by node/name distr to withdraw publications when node is lost - Local/node scope publications: in name_table->node_scope list - Local/cluster scope publications: in name_table->cluster_scope list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK@hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKDhjubj)}(h``binding_sock`` all publications from the same socket which bound this one Used by socket to withdraw publications when socket is unbound/released h](j)}(h``binding_sock``h]j)}(hj5h]h binding_sock}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKFhj/ubj)}(hhh]h)}(hall publications from the same socket which bound this one Used by socket to withdraw publications when socket is unbound/releasedh]hall publications from the same socket which bound this one Used by socket to withdraw publications when socket is unbound/released}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKEhjKubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhjJhKFhjubj)}(h``local_publ`` list of identical publications made from this node Used by closest_first and multicast receive lookup algorithms h](j)}(h``local_publ``h]j)}(hjoh]h local_publ}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKHhjiubj)}(hhh]h)}(hplist of identical publications made from this node Used by closest_first and multicast receive lookup algorithmsh]hplist of identical publications made from this node Used by closest_first and multicast receive lookup algorithms}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKGhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhKHhjubj)}(hr``all_publ`` all publications identical to this one, whatever node and scope Used by round-robin lookup algorithm h](j)}(h ``all_publ``h]j)}(hjh]hall_publ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKJhjubj)}(hhh]h)}(hdall publications identical to this one, whatever node and scope Used by round-robin lookup algorithmh]hdall publications identical to this one, whatever node and scope Used by round-robin lookup algorithm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKIhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjubj)}(h:``list`` to form a list of publications in temporal order h](j)}(h``list``h]j)}(hjh]hlist}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKKhjubj)}(hhh]h)}(h0to form a list of publications in temporal orderh]h0to form a list of publications in temporal order}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKKhjubj)}(h3``rcu`` RCU callback head used for deferred freeingh](j)}(h``rcu``h]j)}(hjh]hrcu}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKKhjubj)}(hhh]h)}(h+RCU callback head used for deferred freeingh]h+RCU callback head used for deferred freeing}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKLhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hKKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j name_table (C struct) c.name_tablehNtauh1jhjhhhNhNubj)}(hhh](j)}(h name_tableh]j)}(hstruct name_tableh](j!)}(hj$h]hstruct}(hjvhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjrhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKRubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjrhhhjhKRubjD)}(h name_tableh]jJ)}(hjph]h name_table}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjrhhhjhKRubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjnhhhjhKRubah}(h]jiah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKRhjkhhubjv)}(hhh]h)}(h4table containing all existing port name publicationsh]h4table containing all existing port name publications}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK\hjhhubah}(h]h ]h"]h$]h&]uh1juhjkhhhjhKRubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX**Definition**:: struct name_table { struct rcu_head rcu; struct hlist_head services[TIPC_NAMETBL_SIZE]; struct list_head node_scope; struct list_head cluster_scope; rwlock_t cluster_scope_lock; u32 local_publ_count; u32 rc_dests; u32 snd_nxt; }; **Members** ``rcu`` RCU callback head used for deferred freeing ``services`` name sequence hash lists ``node_scope`` all local publications with node scope - used by name_distr during re-init of name table ``cluster_scope`` all local publications with cluster scope - used by name_distr to send bulk updates to new nodes - used by name_distr during re-init of name table ``cluster_scope_lock`` lock for accessing **cluster_scope** ``local_publ_count`` number of publications issued by this node ``rc_dests`` destination node counter ``snd_nxt`` next sequence number to be usedh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK`hjubj)}(hXstruct name_table { struct rcu_head rcu; struct hlist_head services[TIPC_NAMETBL_SIZE]; struct list_head node_scope; struct list_head cluster_scope; rwlock_t cluster_scope_lock; u32 local_publ_count; u32 rc_dests; u32 snd_nxt; };h]hXstruct name_table { struct rcu_head rcu; struct hlist_head services[TIPC_NAMETBL_SIZE]; struct list_head node_scope; struct list_head cluster_scope; rwlock_t cluster_scope_lock; u32 local_publ_count; u32 rc_dests; u32 snd_nxt; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKbhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKmhjubj)}(hhh](j)}(h4``rcu`` RCU callback head used for deferred freeing h](j)}(h``rcu``h]j)}(hj%h]hrcu}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK^hjubj)}(hhh]h)}(h+RCU callback head used for deferred freeingh]h+RCU callback head used for deferred freeing}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hK^hj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj:hK^hjubj)}(h&``services`` name sequence hash lists h](j)}(h ``services``h]j)}(hj^h]hservices}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK_hjXubj)}(hhh]h)}(hname sequence hash listsh]hname sequence hash lists}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshK_hjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshK_hjubj)}(hh``node_scope`` all local publications with node scope - used by name_distr during re-init of name table h](j)}(h``node_scope``h]j)}(hjh]h node_scope}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKahjubj)}(hhh]h)}(hXall local publications with node scope - used by name_distr during re-init of name tableh]hXall local publications with node scope - used by name_distr during re-init of name table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKahjubj)}(h``cluster_scope`` all local publications with cluster scope - used by name_distr to send bulk updates to new nodes - used by name_distr during re-init of name table h](j)}(h``cluster_scope``h]j)}(hjh]h cluster_scope}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKdhjubj)}(hhh]h)}(hall local publications with cluster scope - used by name_distr to send bulk updates to new nodes - used by name_distr during re-init of name tableh]hall local publications with cluster scope - used by name_distr to send bulk updates to new nodes - used by name_distr during re-init of name table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKbhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKdhjubj)}(h<``cluster_scope_lock`` lock for accessing **cluster_scope** h](j)}(h``cluster_scope_lock``h]j)}(hj h]hcluster_scope_lock}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKehjubj)}(hhh]h)}(h$lock for accessing **cluster_scope**h](hlock for accessing }(hj$hhhNhNubj)}(h**cluster_scope**h]h cluster_scope}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1hhj hKehj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKehjubj)}(h@``local_publ_count`` number of publications issued by this node h](j)}(h``local_publ_count``h]j)}(hjRh]hlocal_publ_count}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKfhjLubj)}(hhh]h)}(h*number of publications issued by this nodeh]h*number of publications issued by this node}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghKfhjhubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjghKfhjubj)}(h&``rc_dests`` destination node counter h](j)}(h ``rc_dests``h]j)}(hjh]hrc_dests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKghjubj)}(hhh]h)}(hdestination node counterh]hdestination node counter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKghjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKghjubj)}(h+``snd_nxt`` next sequence number to be usedh](j)}(h ``snd_nxt``h]j)}(hjh]hsnd_nxt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKghjubj)}(hhh]h)}(hnext sequence number to be usedh]hnext sequence number to be used}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKghjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j distr_item (C struct) c.distr_itemhNtauh1jhjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhNubj)}(hhh](j)}(h distr_itemh]j)}(hstruct distr_itemh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhKubj3)}(h h]h }(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj,hKubjD)}(h distr_itemh]jJ)}(hjh]h distr_item}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj;ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj,hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj,hKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj,hKhjhhubjv)}(hhh]h)}(h+publication info distributed to other nodesh]h+publication info distributed to other nodes}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK-hj^hhubah}(h]h ]h"]h$]h&]uh1juhjhhhj,hKubeh}(h]h ](jstructeh"]h$]h&]jjjjyjjyjjjuh1jhhhjhjhNubj)}(hXG**Definition**:: struct distr_item { __be32 type; __be32 lower; __be32 upper; __be32 port; __be32 key; }; **Members** ``type`` name sequence type ``lower`` name sequence lower bound ``upper`` name sequence upper bound ``port`` publishing port reference ``key`` publication keyh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK1hj}ubj)}(hlstruct distr_item { __be32 type; __be32 lower; __be32 upper; __be32 port; __be32 key; };h]hlstruct distr_item { __be32 type; __be32 lower; __be32 upper; __be32 port; __be32 key; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK3hj}ubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK;hj}ubj)}(hhh](j)}(h``type`` name sequence type h](j)}(h``type``h]j)}(hjh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK/hjubj)}(hhh]h)}(hname sequence typeh]hname sequence type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK/hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK/hjubj)}(h$``lower`` name sequence lower bound h](j)}(h ``lower``h]j)}(hjh]hlower}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK0hjubj)}(hhh]h)}(hname sequence lower boundh]hname sequence lower bound}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK0hjubj)}(h$``upper`` name sequence upper bound h](j)}(h ``upper``h]j)}(hj@h]hupper}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK1hj:ubj)}(hhh]h)}(hname sequence upper boundh]hname sequence upper bound}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhK1hjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhK1hjubj)}(h#``port`` publishing port reference h](j)}(h``port``h]j)}(hjyh]hport}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK2hjsubj)}(hhh]h)}(hpublishing port referenceh]hpublishing port reference}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK2hjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhK2hjubj)}(h``key`` publication keyh](j)}(h``key``h]j)}(hjh]hkey}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK2hjubj)}(hhh]h)}(hpublication keyh]hpublication key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK2hjubeh}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK6hjhhubh)}(h6===> All fields are stored in network byte order. <===h]h6===> All fields are stored in network byte order. <===}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK4hjhhubh)}(hFirst 3 fields identify (name or) name sequence being published. Reference field uniquely identifies port that published name sequence. Key field uniquely identifies publication, in the event a port has multiple publications of the same name sequence.h]hFirst 3 fields identify (name or) name sequence being published. Reference field uniquely identifies port that published name sequence. Key field uniquely identifies publication, in the event a port has multiple publications of the same name sequence.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK6hjhhubh)}(h**Note**h]j)}(hj+h]hNote}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK;hjhhubh)}(hThere is no field that identifies the publishing node because it is the same for all items contained within a publication message.h]hThere is no field that identifies the publishing node because it is the same for all items contained within a publication message.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK;hjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_bc_base (C struct)c.tipc_bc_basehNtauh1jhjhhhNhNubj)}(hhh](j)}(h tipc_bc_baseh]j)}(hstruct tipc_bc_baseh](j!)}(hj$h]hstruct}(hjihhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjehhhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chKubj3)}(h h]h }(hjwhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjehhhjvhKubjD)}(h tipc_bc_baseh]jJ)}(hjch]h tipc_bc_base}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjehhhjvhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjahhhjvhKubah}(h]j\ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjvhKhj^hhubjv)}(hhh]h)}(h/base structure for keeping broadcast send stateh]h/base structure for keeping broadcast send state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK4hjhhubah}(h]h ]h"]h$]h&]uh1juhj^hhhjvhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX**Definition**:: struct tipc_bc_base { struct tipc_link *link; struct sk_buff_head inputq; int dests[MAX_BEARERS]; int primary_bearer; bool bcast_support; bool force_bcast; bool rcast_support; bool force_rcast; int rc_ratio; int bc_threshold; }; **Members** ``link`` broadcast send link structure ``inputq`` data input queue; will only carry SOCK_WAKEUP messages ``dests`` array keeping number of reachable destinations per bearer ``primary_bearer`` a bearer having links to all broadcast destinations, if any ``bcast_support`` indicates if primary bearer, if any, supports broadcast ``force_bcast`` forces broadcast for multicast traffic ``rcast_support`` indicates if all peer nodes support replicast ``force_rcast`` forces replicast for multicast traffic ``rc_ratio`` dest count as percentage of cluster size where send method changes ``bc_threshold`` calculated from rc_ratio; if dests > threshold use broadcasth](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK8hjubj)}(hX struct tipc_bc_base { struct tipc_link *link; struct sk_buff_head inputq; int dests[MAX_BEARERS]; int primary_bearer; bool bcast_support; bool force_bcast; bool rcast_support; bool force_rcast; int rc_ratio; int bc_threshold; };h]hX struct tipc_bc_base { struct tipc_link *link; struct sk_buff_head inputq; int dests[MAX_BEARERS]; int primary_bearer; bool bcast_support; bool force_bcast; bool rcast_support; bool force_rcast; int rc_ratio; int bc_threshold; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK:hjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chKGhjubj)}(hhh](j)}(h'``link`` broadcast send link structure h](j)}(h``link``h]j)}(hjh]hlink}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK6hjubj)}(hhh]h)}(hbroadcast send link structureh]hbroadcast send link structure}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hK6hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hK6hjubj)}(hB``inputq`` data input queue; will only carry SOCK_WAKEUP messages h](j)}(h ``inputq``h]j)}(hjQh]hinputq}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK7hjKubj)}(hhh]h)}(h6data input queue; will only carry SOCK_WAKEUP messagesh]h6data input queue; will only carry SOCK_WAKEUP messages}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhK7hjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhK7hjubj)}(hD``dests`` array keeping number of reachable destinations per bearer h](j)}(h ``dests``h]j)}(hjh]hdests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK8hjubj)}(hhh]h)}(h9array keeping number of reachable destinations per bearerh]h9array keeping number of reachable destinations per bearer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjubj)}(hO``primary_bearer`` a bearer having links to all broadcast destinations, if any h](j)}(h``primary_bearer``h]j)}(hjh]hprimary_bearer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK9hjubj)}(hhh]h)}(h;a bearer having links to all broadcast destinations, if anyh]h;a bearer having links to all broadcast destinations, if any}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK9hjubj)}(hJ``bcast_support`` indicates if primary bearer, if any, supports broadcast h](j)}(h``bcast_support``h]j)}(hjh]h bcast_support}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK:hjubj)}(hhh]h)}(h7indicates if primary bearer, if any, supports broadcasth]h7indicates if primary bearer, if any, supports broadcast}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK:hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK:hjubj)}(h7``force_bcast`` forces broadcast for multicast traffic h](j)}(h``force_bcast``h]j)}(hj5h]h force_bcast}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK;hj/ubj)}(hhh]h)}(h&forces broadcast for multicast traffich]h&forces broadcast for multicast traffic}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhK;hjKubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhjJhK;hjubj)}(h@``rcast_support`` indicates if all peer nodes support replicast h](j)}(h``rcast_support``h]j)}(hjnh]h rcast_support}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chKhjubj)}(hhh]h)}(hBdest count as percentage of cluster size where send method changesh]hBdest count as percentage of cluster size where send method changes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK>hjubj)}(hM``bc_threshold`` calculated from rc_ratio; if dests > threshold use broadcasth](j)}(h``bc_threshold``h]j)}(hjh]h bc_threshold}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK>hjubj)}(hhh]h)}(h threshold use broadcasth]h threshold use broadcast}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK?hj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hK>hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]tipc-base-typesah ]h"]tipc base typesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Bearer Interfacesh]hTIPC Bearer Interfaces}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_media_find (C function)c.tipc_media_findhNtauh1jhjbhhhNhNubj)}(hhh](j)}(h6struct tipc_media * tipc_media_find (const char *name)h]j)}(h4struct tipc_media *tipc_media_find(const char *name)h](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKMubh)}(hhh]jJ)}(h tipc_mediah]h tipc_media}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jtipc_media_findsbc.tipc_media_findasbuh1hhjhhhjhKMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKMubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjhhhjhKMubjD)}(htipc_media_findh]jJ)}(hjh]htipc_media_find}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKMubhdesc_parameterlist)}(h(const char *name)h]hdesc_parameter)}(hconst char *nameh](j!)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj$hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubhdesc_sig_keyword_type)}(hcharh]hchar}(hj4hhhNhNubah}(h]h ]ktah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hnameh]hname}(hj^hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKMhjhhubjv)}(hhh]h)}(h&locates specified media object by nameh]h&locates specified media object by name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKJhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjbhNhNubj)}(h5**Parameters** ``const char *name`` name to locateh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKNhjubj)}(hhh]j)}(h#``const char *name`` name to locateh](j)}(h``const char *name``h]j)}(hjh]hconst char *name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKPhjubj)}(hhh]h)}(hname to locateh]hname to locate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKPhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j media_find_id (C function)c.media_find_idhNtauh1jhjbhhhNhNubj)}(hhh](j)}(h+struct tipc_media * media_find_id (u8 type)h]j)}(h)struct tipc_media *media_find_id(u8 type)h](j!)}(hj$h]hstruct}(hj#hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chK\ubj3)}(h h]h }(hj1hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj0hK\ubh)}(hhh]jJ)}(h tipc_mediah]h tipc_media}(hjBhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j)}j media_find_idsbc.media_find_idasbuh1hhjhhhj0hK\ubj3)}(h h]h }(hjchhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj0hK\ubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj0hK\ubjD)}(h media_find_idh]jJ)}(hj`h]h media_find_id}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj~ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj0hK\ubj )}(h (u8 type)h]j)}(hu8 typeh](h)}(hhh]jJ)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j^c.media_find_idasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(htypeh]htype}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjhhhj0hK\ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj0hK\ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj0hK\hjhhubjv)}(hhh]h)}(h1locates specified media object by type identifierh]h1locates specified media object by type identifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKYhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj0hK\ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1jhhhjbhNhNubj)}(h7**Parameters** ``u8 type`` type identifier to locateh](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chK]hj ubj)}(hhh]j)}(h%``u8 type`` type identifier to locateh](j)}(h ``u8 type``h]j)}(hj7 h]hu8 type}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5 ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chK_hj1 ubj)}(hhh]h)}(htype identifier to locateh]htype identifier to locate}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKZhjM ubah}(h]h ]h"]h$]h&]uh1jhj1 ubeh}(h]h ]h"]h$]h&]uh1jhjL hK_hj. ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j #tipc_media_addr_printf (C function)c.tipc_media_addr_printfhNtauh1jhjbhhhNhNubj)}(hhh](j)}(hJint tipc_media_addr_printf (char *buf, int len, struct tipc_media_addr *a)h]j)}(hIint tipc_media_addr_printf(char *buf, int len, struct tipc_media_addr *a)h](j3)}(hinth]hint}(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKmubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhj hKmubjD)}(htipc_media_addr_printfh]jJ)}(htipc_media_addr_printfh]htipc_media_addr_printf}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj hhhj hKmubj )}(h/(char *buf, int len, struct tipc_media_addr *a)h](j)}(h char *bufh](j3)}(hcharh]hchar}(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(hbufh]hbuf}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hint lenh](j3)}(hinth]hint}(hj!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj !ubj3)}(h h]h }(hj!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj !ubjJ)}(hlenh]hlen}(hj,!hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj !ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hstruct tipc_media_addr *ah](j!)}(hj$h]hstruct}(hjE!hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjA!ubj3)}(h h]h }(hjR!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjA!ubh)}(hhh]jJ)}(htipc_media_addrh]htipc_media_addr}(hjc!hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj`!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetje!modnameN classnameNjj)}j]j)}jj sbc.tipc_media_addr_printfasbuh1hhjA!ubj3)}(h h]h }(hj!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjA!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA!ubjJ)}(hah]ha}(hj!hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjA!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1j hj hhhj hKmubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj hhhj hKmubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hKmhj hhubjv)}(hhh]h)}(h$record media address in print bufferh]h$record media address in print buffer}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhhj!hhubah}(h]h ]h"]h$]h&]uh1juhj hhhj hKmubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1jhhhjbhNhNubj)}(h**Parameters** ``char *buf`` output buffer ``int len`` output buffer size remaining ``struct tipc_media_addr *a`` input media addressh](h)}(h**Parameters**h]j)}(hj!h]h Parameters}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKlhj!ubj)}(hhh](j)}(h``char *buf`` output buffer h](j)}(h ``char *buf``h]j)}(hj "h]h char *buf}(hj "hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKihj"ubj)}(hhh]h)}(h output bufferh]h output buffer}(hj""hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hKihj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hKihj"ubj)}(h)``int len`` output buffer size remaining h](j)}(h ``int len``h]j)}(hjB"h]hint len}(hjD"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@"ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKjhj<"ubj)}(hhh]h)}(houtput buffer size remainingh]houtput buffer size remaining}(hj["hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjW"hKjhjX"ubah}(h]h ]h"]h$]h&]uh1jhj<"ubeh}(h]h ]h"]h$]h&]uh1jhjW"hKjhj"ubj)}(h1``struct tipc_media_addr *a`` input media addressh](j)}(h``struct tipc_media_addr *a``h]j)}(hj{"h]hstruct tipc_media_addr *a}(hj}"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy"ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKlhju"ubj)}(hhh]h)}(hinput media addressh]hinput media address}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKkhj"ubah}(h]h ]h"]h$]h&]uh1jhju"ubeh}(h]h ]h"]h$]h&]uh1jhj"hKlhj"ubeh}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j !bearer_name_validate (C function)c.bearer_name_validatehNtauh1jhjbhhhNhNubj)}(hhh](j)}(hQint bearer_name_validate (const char *name, struct tipc_bearer_names *name_parts)h]j)}(hPint bearer_name_validate(const char *name, struct tipc_bearer_names *name_parts)h](j3)}(hinth]hint}(hj"hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKubj3)}(h h]h }(hj"hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"hhhj"hKubjD)}(hbearer_name_validateh]jJ)}(hbearer_name_validateh]hbearer_name_validate}(hj"hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj"ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj"hhhj"hKubj )}(h8(const char *name, struct tipc_bearer_names *name_parts)h](j)}(hconst char *nameh](j!)}(hjh]hconst}(hj#hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj#ubj3)}(h h]h }(hj#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#ubj3)}(hcharh]hchar}(hj-#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#ubj3)}(h h]h }(hj;#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#ubj)}(hjh]h*}(hjI#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubjJ)}(hnameh]hname}(hjV#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj #ubj)}(h$struct tipc_bearer_names *name_partsh](j!)}(hj$h]hstruct}(hjo#hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjk#ubj3)}(h h]h }(hj|#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjk#ubh)}(hhh]jJ)}(htipc_bearer_namesh]htipc_bearer_names}(hj#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]j)}jj"sbc.bearer_name_validateasbuh1hhjk#ubj3)}(h h]h }(hj#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjk#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjk#ubjJ)}(h name_partsh]h name_parts}(hj#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjk#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj #ubeh}(h]h ]h"]h$]h&]hhuh1j hj"hhhj"hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj"hhhj"hKubah}(h]j"ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj"hKhj"hhubjv)}(hhh]h)}(h/validate & (optionally) deconstruct bearer nameh]h/validate & (optionally) deconstruct bearer name}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj#hhubah}(h]h ]h"]h$]h&]uh1juhj"hhhj"hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj $jj $jjjuh1jhhhjbhNhNubj)}(h**Parameters** ``const char *name`` ptr to bearer name string ``struct tipc_bearer_names *name_parts`` ptr to area for bearer name components (or NULL if not needed) **Return** 1 if bearer name is valid, otherwise 0.h](h)}(h**Parameters**h]j)}(hj$h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj$ubj)}(hhh](j)}(h/``const char *name`` ptr to bearer name string h](j)}(h``const char *name``h]j)}(hj3$h]hconst char *name}(hj5$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1$ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj-$ubj)}(hhh]h)}(hptr to bearer name stringh]hptr to bearer name string}(hjL$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH$hKhjI$ubah}(h]h ]h"]h$]h&]uh1jhj-$ubeh}(h]h ]h"]h$]h&]uh1jhjH$hKhj*$ubj)}(hh``struct tipc_bearer_names *name_parts`` ptr to area for bearer name components (or NULL if not needed) h](j)}(h(``struct tipc_bearer_names *name_parts``h]j)}(hjl$h]h$struct tipc_bearer_names *name_parts}(hjn$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj$ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhjf$ubj)}(hhh]h)}(h>ptr to area for bearer name components (or NULL if not needed)h]h>ptr to area for bearer name components (or NULL if not needed)}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hKhj$ubah}(h]h ]h"]h$]h&]uh1jhjf$ubeh}(h]h ]h"]h$]h&]uh1jhj$hKhj*$ubeh}(h]h ]h"]h$]h&]uh1jhj$ubh)}(h **Return**h]j)}(hj$h]hReturn}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj$ubh)}(h'1 if bearer name is valid, otherwise 0.h]h'1 if bearer name is valid, otherwise 0.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_bearer_find (C function)c.tipc_bearer_findhNtauh1jhjbhhhNhNubj)}(hhh](j)}(hIstruct tipc_bearer * tipc_bearer_find (struct net *net, const char *name)h]j)}(hGstruct tipc_bearer *tipc_bearer_find(struct net *net, const char *name)h](j!)}(hj$h]hstruct}(hj$hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj$hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKubj3)}(h h]h }(hj$hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$hhhj$hKubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hj %hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj %modnameN classnameNjj)}j]j)}jtipc_bearer_findsbc.tipc_bearer_findasbuh1hhj$hhhj$hKubj3)}(h h]h }(hj,%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$hhhj$hKubj)}(hjh]h*}(hj:%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj$hKubjD)}(htipc_bearer_findh]jJ)}(hj)%h]htipc_bearer_find}(hjK%hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjG%ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj$hhhj$hKubj )}(h#(struct net *net, const char *name)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjf%hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjb%ubj3)}(h h]h }(hjs%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjb%ubh)}(hhh]jJ)}(hneth]hnet}(hj%hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j'%c.tipc_bearer_findasbuh1hhjb%ubj3)}(h h]h }(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjb%ubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb%ubjJ)}(hneth]hnet}(hj%hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjb%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^%ubj)}(hconst char *nameh](j!)}(hjh]hconst}(hj%hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj%ubj3)}(h h]h }(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%ubj3)}(hcharh]hchar}(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%ubj3)}(h h]h }(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%ubj)}(hjh]h*}(hj &hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubjJ)}(hnameh]hname}(hj&hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^%ubeh}(h]h ]h"]h$]h&]hhuh1j hj$hhhj$hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj$hhhj$hKubah}(h]j$ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj$hKhj$hhubjv)}(hhh]h)}(h/locates bearer object with matching bearer nameh]h/locates bearer object with matching bearer name}(hjD&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhjA&hhubah}(h]h ]h"]h$]h&]uh1juhj$hhhj$hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\&jj\&jjjuh1jhhhjbhNhNubj)}(hp**Parameters** ``struct net *net`` the applicable net namespace ``const char *name`` bearer name to locateh](h)}(h**Parameters**h]j)}(hjf&h]h Parameters}(hjh&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd&ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj`&ubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j)}(h``struct net *net``h]j)}(hj&h]hstruct net *net}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj&ubj)}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hKhj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hKhj|&ubj)}(h*``const char *name`` bearer name to locateh](j)}(h``const char *name``h]j)}(hj&h]hconst char *name}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj&ubj)}(hhh]h)}(hbearer name to locateh]hbearer name to locate}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hKhj|&ubeh}(h]h ]h"]h$]h&]uh1jhj`&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_enable_bearer (C function)c.tipc_enable_bearerhNtauh1jhjbhhhNhNubj)}(hhh](j)}(hint tipc_enable_bearer (struct net *net, const char *name, u32 disc_domain, u32 prio, struct nlattr *attr[], struct netlink_ext_ack *extack)h]j)}(hint tipc_enable_bearer(struct net *net, const char *name, u32 disc_domain, u32 prio, struct nlattr *attr[], struct netlink_ext_ack *extack)h](j3)}(hinth]hint}(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKubj3)}(h h]h }(hj''hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'hhhj&'hKubjD)}(htipc_enable_bearerh]jJ)}(htipc_enable_bearerh]htipc_enable_bearer}(hj9'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj5'ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj'hhhj&'hKubj )}(hu(struct net *net, const char *name, u32 disc_domain, u32 prio, struct nlattr *attr[], struct netlink_ext_ack *extack)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjU'hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjQ'ubj3)}(h h]h }(hjb'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjQ'ubh)}(hhh]jJ)}(hneth]hnet}(hjs'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjp'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetju'modnameN classnameNjj)}j]j)}jj;'sbc.tipc_enable_bearerasbuh1hhjQ'ubj3)}(h h]h }(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjQ'ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ'ubjJ)}(hneth]hnet}(hj'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjQ'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjM'ubj)}(hconst char *nameh](j!)}(hjh]hconst}(hj'hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj'ubj3)}(h h]h }(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'ubj3)}(hcharh]hchar}(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'ubj3)}(h h]h }(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubjJ)}(hnameh]hname}(hj (hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjM'ubj)}(hu32 disc_domainh](h)}(hhh]jJ)}(hu32h]hu32}(hj'(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)(modnameN classnameNjj)}j]j'c.tipc_enable_bearerasbuh1hhj (ubj3)}(h h]h }(hjE(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj (ubjJ)}(h disc_domainh]h disc_domain}(hjS(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj (ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjM'ubj)}(hu32 prioh](h)}(hhh]jJ)}(hu32h]hu32}(hjo(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjl(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjq(modnameN classnameNjj)}j]j'c.tipc_enable_bearerasbuh1hhjh(ubj3)}(h h]h }(hj(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjh(ubjJ)}(hprioh]hprio}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjh(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjM'ubj)}(hstruct nlattr *attr[]h](j!)}(hj$h]hstruct}(hj(hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj(ubj3)}(h h]h }(hj(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj(ubh)}(hhh]jJ)}(hnlattrh]hnlattr}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j'c.tipc_enable_bearerasbuh1hhj(ubj3)}(h h]h }(hj(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubjJ)}(hattrh]hattr}(hj )hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubj)}(h[h]h[}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj)}(h]h]h]}(hj')hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjM'ubj)}(hstruct netlink_ext_ack *extackh](j!)}(hj$h]hstruct}(hj@)hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj<)ubj3)}(h h]h }(hjM)hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj<)ubh)}(hhh]jJ)}(hnetlink_ext_ackh]hnetlink_ext_ack}(hj^)hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj[)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`)modnameN classnameNjj)}j]j'c.tipc_enable_bearerasbuh1hhj<)ubj3)}(h h]h }(hj|)hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj<)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<)ubjJ)}(hextackh]hextack}(hj)hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj<)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjM'ubeh}(h]h ]h"]h$]h&]hhuh1j hj'hhhj&'hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj'hhhj&'hKubah}(h]j 'ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj&'hKhj 'hhubjv)}(hhh]h)}(h!enable bearer with the given nameh]h!enable bearer with the given name}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj)hhubah}(h]h ]h"]h$]h&]uh1juhj 'hhhj&'hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj)jj)jjjuh1jhhhjbhNhNubj)}(hX**Parameters** ``struct net *net`` the applicable net namespace ``const char *name`` bearer name to enable ``u32 disc_domain`` bearer domain ``u32 prio`` bearer priority ``struct nlattr *attr[]`` nlattr array ``struct netlink_ext_ack *extack`` netlink extended ackh](h)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj)ubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j)}(h``struct net *net``h]j)}(hj*h]hstruct net *net}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj)ubj)}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj*ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj*hKhj)ubj)}(h+``const char *name`` bearer name to enable h](j)}(h``const char *name``h]j)}(hj;*h]hconst char *name}(hj=*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9*ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj5*ubj)}(hhh]h)}(hbearer name to enableh]hbearer name to enable}(hjT*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP*hKhjQ*ubah}(h]h ]h"]h$]h&]uh1jhj5*ubeh}(h]h ]h"]h$]h&]uh1jhjP*hKhj)ubj)}(h"``u32 disc_domain`` bearer domain h](j)}(h``u32 disc_domain``h]j)}(hjt*h]hu32 disc_domain}(hjv*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr*ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhjn*ubj)}(hhh]h)}(h bearer domainh]h bearer domain}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj*ubah}(h]h ]h"]h$]h&]uh1jhjn*ubeh}(h]h ]h"]h$]h&]uh1jhj*hKhj)ubj)}(h``u32 prio`` bearer priority h](j)}(h ``u32 prio``h]j)}(hj*h]hu32 prio}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj*ubj)}(hhh]h)}(hbearer priorityh]hbearer priority}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hKhj)ubj)}(h'``struct nlattr *attr[]`` nlattr array h](j)}(h``struct nlattr *attr[]``h]j)}(hj*h]hstruct nlattr *attr[]}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj*ubj)}(hhh]h)}(h nlattr arrayh]h nlattr array}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hKhj)ubj)}(h7``struct netlink_ext_ack *extack`` netlink extended ackh](j)}(h"``struct netlink_ext_ack *extack``h]j)}(hj+h]hstruct netlink_ext_ack *extack}(hj!+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj+ubj)}(hhh]h)}(hnetlink extended ackh]hnetlink extended ack}(hj8+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj5+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj4+hKhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_reset_bearer (C function)c.tipc_reset_bearerhNtauh1jhjbhhhNhNubj)}(hhh](j)}(h>int tipc_reset_bearer (struct net *net, struct tipc_bearer *b)h]j)}(h=int tipc_reset_bearer(struct net *net, struct tipc_bearer *b)h](j3)}(hinth]hint}(hjy+hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hju+hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chM}ubj3)}(h h]h }(hj+hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hju+hhhj+hM}ubjD)}(htipc_reset_bearerh]jJ)}(htipc_reset_bearerh]htipc_reset_bearer}(hj+hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj+ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChju+hhhj+hM}ubj )}(h((struct net *net, struct tipc_bearer *b)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj+hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj+ubj3)}(h h]h }(hj+hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj+ubh)}(hhh]jJ)}(hneth]hnet}(hj+hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]j)}jj+sbc.tipc_reset_bearerasbuh1hhj+ubj3)}(h h]h }(hj+hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj+ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubjJ)}(hneth]hnet}(hj,hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj+ubj)}(hstruct tipc_bearer *bh](j!)}(hj$h]hstruct}(hj(,hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj$,ubj3)}(h h]h }(hj5,hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$,ubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hjF,hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjC,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjH,modnameN classnameNjj)}j]j+c.tipc_reset_bearerasbuh1hhj$,ubj3)}(h h]h }(hjd,hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$,ubj)}(hjh]h*}(hjr,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$,ubjJ)}(hbh]hb}(hj,hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj+ubeh}(h]h ]h"]h$]h&]hhuh1j hju+hhhj+hM}ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjq+hhhj+hM}ubah}(h]jl+ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj+hM}hjn+hhubjv)}(hhh]h)}(h,Reset all links established over this bearerh]h,Reset all links established over this bearer}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMyhj,hhubah}(h]h ]h"]h$]h&]uh1juhjn+hhhj+hM}ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1jhhhjbhNhNubj)}(hq**Parameters** ``struct net *net`` the applicable net namespace ``struct tipc_bearer *b`` the target bearerh](h)}(h**Parameters**h]j)}(hj,h]h Parameters}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chM}hj,ubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j)}(h``struct net *net``h]j)}(hj,h]hstruct net *net}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMzhj,ubj)}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMzhj-ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,hMzhj,ubj)}(h+``struct tipc_bearer *b`` the target bearerh](j)}(h``struct tipc_bearer *b``h]j)}(hj#-h]hstruct tipc_bearer *b}(hj%-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!-ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chM|hj-ubj)}(hhh]h)}(hthe target bearerh]hthe target bearer}(hj<-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chM{hj9-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj8-hM|hj,ubeh}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j bearer_disable (C function)c.bearer_disablehNtauh1jhjbhhhNhNubj)}(hhh](j)}(h``struct notifier_block *nb`` the context of the notification h](j)}(h``struct notifier_block *nb``h]j)}(hj 8h]hstruct notifier_block *nb}(hj 8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 8ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMhj8ubj)}(hhh]h)}(hthe context of the notificationh]hthe context of the notification}(hj$8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj 8hMhj!8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj 8hMhj8ubj)}(h(``unsigned long evt`` the type of event h](j)}(h``unsigned long evt``h]j)}(hjD8h]hunsigned long evt}(hjF8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB8ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMhj>8ubj)}(hhh]h)}(hthe type of eventh]hthe type of event}(hj]8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY8hMhjZ8ubah}(h]h ]h"]h$]h&]uh1jhj>8ubeh}(h]h ]h"]h$]h&]uh1jhjY8hMhj8ubj)}(h3``void *ptr`` the net device that the event was on h](j)}(h ``void *ptr``h]j)}(hj}8h]h void *ptr}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{8ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMhjw8ubj)}(hhh]h)}(h$the net device that the event was onh]h$the net device that the event was on}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjw8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhj8ubeh}(h]h ]h"]h$]h&]uh1jhj7ubh)}(h**Description**h]j)}(hj8h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMhj7ubh)}(hLThis function is called by the Ethernet driver in case of link change event.h]hLThis function is called by the Ethernet driver in case of link change event.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j udp_media_addr (C struct)c.udp_media_addrhNtauh1jhjbhhhNhNubj)}(hhh](j)}(hudp_media_addrh]j)}(hstruct udp_media_addrh](j!)}(hj$h]hstruct}(hj8hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj8hhhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKubj3)}(h h]h }(hj 9hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj8hhhj 9hKubjD)}(hudp_media_addrh]jJ)}(hj8h]hudp_media_addr}(hj9hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj9ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj8hhhj 9hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj8hhhj 9hKubah}(h]j8ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj 9hKhj8hhubjv)}(hhh]h)}(hIP/UDP addressing informationh]hIP/UDP addressing information}(hj?9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK?hj<9hhubah}(h]h ]h"]h$]h&]uh1juhj8hhhj 9hKubeh}(h]h ](jstructeh"]h$]h&]jjjjW9jjW9jjjuh1jhhhjbhNhNubj)}(hXg**Definition**:: struct udp_media_addr { __be16 proto; __be16 port; union { struct in_addr ipv4; struct in6_addr ipv6; }; }; **Members** ``proto`` Ethernet protocol in use ``port`` port being used ``{unnamed_union}`` anonymous ``ipv4`` IPv4 address of neighbor ``ipv6`` IPv6 address of neighborh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjc9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_9ubh:}(hj_9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKChj[9ubj)}(hstruct udp_media_addr { __be16 proto; __be16 port; union { struct in_addr ipv4; struct in6_addr ipv6; }; };h]hstruct udp_media_addr { __be16 proto; __be16 port; union { struct in_addr ipv4; struct in6_addr ipv6; }; };}hj|9sbah}(h]h ]h"]h$]h&]hhuh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKEhj[9ubh)}(h **Members**h]j)}(hj9h]hMembers}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKNhj[9ubj)}(hhh](j)}(h#``proto`` Ethernet protocol in use h](j)}(h ``proto``h]j)}(hj9h]hproto}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKEhj9ubj)}(hhh]h)}(hEthernet protocol in useh]hEthernet protocol in use}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKEhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hKEhj9ubj)}(h``port`` port being used h](j)}(h``port``h]j)}(hj9h]hport}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKFhj9ubj)}(hhh]h)}(hport being usedh]hport being used}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKFhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hKFhj9ubj)}(h``{unnamed_union}`` anonymous h](j)}(h``{unnamed_union}``h]j)}(hj:h]h{unnamed_union}}(hj :hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKIhj:ubj)}(hhh]h)}(h anonymoush]h anonymous}(hj7:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3:hKIhj4:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj3:hKIhj9ubj)}(h"``ipv4`` IPv4 address of neighbor h](j)}(h``ipv4``h]j)}(hjW:h]hipv4}(hjY:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU:ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKGhjQ:ubj)}(hhh]h)}(hIPv4 address of neighborh]hIPv4 address of neighbor}(hjp:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl:hKGhjm:ubah}(h]h ]h"]h$]h&]uh1jhjQ:ubeh}(h]h ]h"]h$]h&]uh1jhjl:hKGhj9ubj)}(h!``ipv6`` IPv6 address of neighborh](j)}(h``ipv6``h]j)}(hj:h]hipv6}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKGhj:ubj)}(hhh]h)}(hIPv6 address of neighborh]hIPv6 address of neighbor}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKHhj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hKGhj9ubeh}(h]h ]h"]h$]h&]uh1jhj[9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubh)}(h**Description**h]j)}(hj:h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKKhjbhhubh)}(hThis is the bearer level originating address used in neighbor discovery messages, and all fields should be in network byte orderh]hThis is the bearer level originating address used in neighbor discovery messages, and all fields should be in network byte order}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK@hjbhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j udp_bearer (C struct) c.udp_bearerhNtauh1jhjbhhhNhNubj)}(hhh](j)}(h udp_bearerh]j)}(hstruct udp_bearerh](j!)}(hj$h]hstruct}(hj;hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj ;hhhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKFubj3)}(h h]h }(hj;hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ;hhhj;hKFubjD)}(h udp_bearerh]jJ)}(hj ;h]h udp_bearer}(hj1;hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj-;ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj ;hhhj;hKFubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj ;hhhj;hKFubah}(h]j;ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj;hKFhj;hhubjv)}(hhh]h)}(hip/udp bearer data structureh]hip/udp bearer data structure}(hjS;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK[hjP;hhubah}(h]h ]h"]h$]h&]uh1juhj;hhhj;hKFubeh}(h]h ](jstructeh"]h$]h&]jjjjk;jjk;jjjuh1jhhhjbhNhNubj)}(hX**Definition**:: struct udp_bearer { struct tipc_bearer __rcu *bearer; struct socket *ubsock; u32 ifindex; struct work_struct work; struct udp_replicast rcast; }; **Members** ``bearer`` associated generic tipc bearer ``ubsock`` bearer associated socket ``ifindex`` local address scope ``work`` used to schedule deferred work on a bearer ``rcast`` associated udp_replicast containerh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjw;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs;ubh:}(hjs;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK_hjo;ubj)}(hstruct udp_bearer { struct tipc_bearer __rcu *bearer; struct socket *ubsock; u32 ifindex; struct work_struct work; struct udp_replicast rcast; };h]hstruct udp_bearer { struct tipc_bearer __rcu *bearer; struct socket *ubsock; u32 ifindex; struct work_struct work; struct udp_replicast rcast; };}hj;sbah}(h]h ]h"]h$]h&]hhuh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKahjo;ubh)}(h **Members**h]j)}(hj;h]hMembers}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKihjo;ubj)}(hhh](j)}(h*``bearer`` associated generic tipc bearer h](j)}(h ``bearer``h]j)}(hj;h]hbearer}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK]hj;ubj)}(hhh]h)}(hassociated generic tipc bearerh]hassociated generic tipc bearer}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hK]hj;ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;hK]hj;ubj)}(h$``ubsock`` bearer associated socket h](j)}(h ``ubsock``h]j)}(hj;h]hubsock}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK^hj;ubj)}(hhh]h)}(hbearer associated socketh]hbearer associated socket}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hK^hj<ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj<hK^hj;ubj)}(h ``ifindex`` local address scope h](j)}(h ``ifindex``h]j)}(hj2<h]hifindex}(hj4<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0<ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK_hj,<ubj)}(hhh]h)}(hlocal address scopeh]hlocal address scope}(hjK<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG<hK_hjH<ubah}(h]h ]h"]h$]h&]uh1jhj,<ubeh}(h]h ]h"]h$]h&]uh1jhjG<hK_hj;ubj)}(h4``work`` used to schedule deferred work on a bearer h](j)}(h``work``h]j)}(hjk<h]hwork}(hjm<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji<ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK`hje<ubj)}(hhh]h)}(h*used to schedule deferred work on a bearerh]h*used to schedule deferred work on a bearer}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hK`hj<ubah}(h]h ]h"]h$]h&]uh1jhje<ubeh}(h]h ]h"]h$]h&]uh1jhj<hK`hj;ubj)}(h,``rcast`` associated udp_replicast containerh](j)}(h ``rcast``h]j)}(hj<h]hrcast}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK`hj<ubj)}(hhh]h)}(h"associated udp_replicast containerh]h"associated udp_replicast container}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKahj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj<hK`hj;ubeh}(h]h ]h"]h$]h&]uh1jhjo;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_parse_udp_addr (C function)c.tipc_parse_udp_addrhNtauh1jhjbhhhNhNubj)}(hhh](j)}(hXint tipc_parse_udp_addr (struct nlattr *nla, struct udp_media_addr *addr, u32 *scope_id)h]j)}(hWint tipc_parse_udp_addr(struct nlattr *nla, struct udp_media_addr *addr, u32 *scope_id)h](j3)}(hinth]hint}(hj<hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj<hhhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMHubj3)}(h h]h }(hj =hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj<hhhj =hMHubjD)}(htipc_parse_udp_addrh]jJ)}(htipc_parse_udp_addrh]htipc_parse_udp_addr}(hj=hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj<hhhj =hMHubj )}(h@(struct nlattr *nla, struct udp_media_addr *addr, u32 *scope_id)h](j)}(hstruct nlattr *nlah](j!)}(hj$h]hstruct}(hj;=hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj7=ubj3)}(h h]h }(hjH=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7=ubh)}(hhh]jJ)}(hnlattrh]hnlattr}(hjY=hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjV=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[=modnameN classnameNjj)}j]j)}jj!=sbc.tipc_parse_udp_addrasbuh1hhj7=ubj3)}(h h]h }(hjy=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7=ubjJ)}(hnlah]hnla}(hj=hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj7=ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj3=ubj)}(hstruct udp_media_addr *addrh](j!)}(hj$h]hstruct}(hj=hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj=ubj3)}(h h]h }(hj=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj=ubh)}(hhh]jJ)}(hudp_media_addrh]hudp_media_addr}(hj=hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]ju=c.tipc_parse_udp_addrasbuh1hhj=ubj3)}(h h]h }(hj=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubjJ)}(haddrh]haddr}(hj>hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj3=ubj)}(h u32 *scope_idh](h)}(hhh]jJ)}(hu32h]hu32}(hj >hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj">modnameN classnameNjj)}j]ju=c.tipc_parse_udp_addrasbuh1hhj>ubj3)}(h h]h }(hj>>hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj>ubj)}(hjh]h*}(hjL>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubjJ)}(hscope_idh]hscope_id}(hjY>hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj3=ubeh}(h]h ]h"]h$]h&]hhuh1j hj<hhhj =hMHubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj<hhhj =hMHubah}(h]j<ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj =hMHhj<hhubjv)}(hhh]h)}(h)build udp media address from netlink datah]h)build udp media address from netlink data}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMChj>hhubah}(h]h ]h"]h$]h&]uh1juhj<hhhj =hMHubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1jhhhjbhNhNubj)}(hX**Parameters** ``struct nlattr *nla`` netlink attribute containing sockaddr storage aligned address ``struct udp_media_addr *addr`` tipc media address to fill with address, port and protocol type ``u32 *scope_id`` IPv6 scope id pointer, not NULL indicates it's requiredh](h)}(h**Parameters**h]j)}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMGhj>ubj)}(hhh](j)}(hU``struct nlattr *nla`` netlink attribute containing sockaddr storage aligned address h](j)}(h``struct nlattr *nla``h]j)}(hj>h]hstruct nlattr *nla}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMDhj>ubj)}(hhh]h)}(h=netlink attribute containing sockaddr storage aligned addressh]h=netlink attribute containing sockaddr storage aligned address}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hMDhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hMDhj>ubj)}(h```struct udp_media_addr *addr`` tipc media address to fill with address, port and protocol type h](j)}(h``struct udp_media_addr *addr``h]j)}(hj>h]hstruct udp_media_addr *addr}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMEhj>ubj)}(hhh]h)}(h?tipc media address to fill with address, port and protocol typeh]h?tipc media address to fill with address, port and protocol type}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMEhj?ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj?hMEhj>ubj)}(hI``u32 *scope_id`` IPv6 scope id pointer, not NULL indicates it's requiredh](j)}(h``u32 *scope_id``h]j)}(hj6?h]h u32 *scope_id}(hj8?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4?ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMGhj0?ubj)}(hhh]h)}(h7IPv6 scope id pointer, not NULL indicates it's requiredh]h9IPv6 scope id pointer, not NULL indicates it’s required}(hjO?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMFhjL?ubah}(h]h ]h"]h$]h&]uh1jhj0?ubeh}(h]h ]h"]h$]h&]uh1jhjK?hMGhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_udp_enable (C function)c.tipc_udp_enablehNtauh1jhjbhhhNhNubj)}(hhh](j)}(hTint tipc_udp_enable (struct net *net, struct tipc_bearer *b, struct nlattr *attrs[])h]j)}(hSint tipc_udp_enable(struct net *net, struct tipc_bearer *b, struct nlattr *attrs[])h](j3)}(hinth]hint}(hj?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?hhhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMubj3)}(h h]h }(hj?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?hhhj?hMubjD)}(htipc_udp_enableh]jJ)}(htipc_udp_enableh]htipc_udp_enable}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj?hhhj?hMubj )}(h@(struct net *net, struct tipc_bearer *b, struct nlattr *attrs[])h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj?hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj?ubj3)}(h h]h }(hj?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?ubh)}(hhh]jJ)}(hneth]hnet}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jj?sbc.tipc_udp_enableasbuh1hhj?ubj3)}(h h]h }(hj @hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?ubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubjJ)}(hneth]hnet}(hj&@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?ubj)}(hstruct tipc_bearer *bh](j!)}(hj$h]hstruct}(hj?@hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj;@ubj3)}(h h]h }(hjL@hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj;@ubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hj]@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZ@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_@modnameN classnameNjj)}j]j@c.tipc_udp_enableasbuh1hhj;@ubj3)}(h h]h }(hj{@hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj;@ubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;@ubjJ)}(hj,h]hb}(hj@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj;@ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?ubj)}(hstruct nlattr *attrs[]h](j!)}(hj$h]hstruct}(hj@hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj@ubj3)}(h h]h }(hj@hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@ubh)}(hhh]jJ)}(hnlattrh]hnlattr}(hj@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j@c.tipc_udp_enableasbuh1hhj@ubj3)}(h h]h }(hj@hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@ubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubjJ)}(hattrsh]hattrs}(hjAhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj@ubj)}(hj)h]h[}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hj))h]h]}(hj AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?ubeh}(h]h ]h"]h$]h&]hhuh1j hj?hhhj?hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj?hhhj?hMubah}(h]j?ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj?hMhj?hhubjv)}(hhh]h)}(h,callback to create a new udp bearer instanceh]h,callback to create a new udp bearer instance}(hjIAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjFAhhubah}(h]h ]h"]h$]h&]uh1juhj?hhhj?hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjaAjjaAjjjuh1jhhhjbhNhNubj)}(hX**Parameters** ``struct net *net`` network namespace ``struct tipc_bearer *b`` pointer to generic tipc_bearer ``struct nlattr *attrs[]`` netlink bearer configuration **Description** validate the bearer parameters and initialize the udp bearer rtnl_lock should be heldh](h)}(h**Parameters**h]j)}(hjkAh]h Parameters}(hjmAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiAubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjeAubj)}(hhh](j)}(h&``struct net *net`` network namespace h](j)}(h``struct net *net``h]j)}(hjAh]hstruct net *net}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjAubj)}(hhh]h)}(hnetwork namespaceh]hnetwork namespace}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjAubj)}(h9``struct tipc_bearer *b`` pointer to generic tipc_bearer h](j)}(h``struct tipc_bearer *b``h]j)}(hjAh]hstruct tipc_bearer *b}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjAubj)}(hhh]h)}(hpointer to generic tipc_bearerh]hpointer to generic tipc_bearer}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjAubj)}(h8``struct nlattr *attrs[]`` netlink bearer configuration h](j)}(h``struct nlattr *attrs[]``h]j)}(hjAh]hstruct nlattr *attrs[]}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjAubj)}(hhh]h)}(hnetlink bearer configurationh]hnetlink bearer configuration}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhMhjBubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjBhMhjAubeh}(h]h ]h"]h$]h&]uh1jhjeAubh)}(h**Description**h]j)}(hj7Bh]h Description}(hj9BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5Bubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjeAubh)}(hUvalidate the bearer parameters and initialize the udp bearer rtnl_lock should be heldh]hUvalidate the bearer parameters and initialize the udp bearer rtnl_lock should be held}(hjMBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjeAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjbhhhNhNubeh}(h]tipc-bearer-interfacesah ]h"]tipc bearer interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Crypto Interfacesh]hTIPC Crypto Interfaces}(hjnBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkBhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_tfm (C struct) c.tipc_tfmhNtauh1jhjkBhhhNhNubj)}(hhh](j)}(htipc_tfmh]j)}(hstruct tipc_tfmh](j!)}(hj$h]hstruct}(hjBhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjBhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKubj3)}(h h]h }(hjBhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjBhhhjBhKubjD)}(htipc_tfmh]jJ)}(hjBh]htipc_tfm}(hjBhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjBubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjBhhhjBhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjBhhhjBhKubah}(h]jBah ](jmjneh"]h$]h&]jrjs)jthuh1jhjBhKhjBhhubjv)}(hhh]h)}(h)TIPC TFM structure to form a list of TFMsh]h)TIPC TFM structure to form a list of TFMs}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chK}hjBhhubah}(h]h ]h"]h$]h&]uh1juhjBhhhjBhKubeh}(h]h ](jstructeh"]h$]h&]jjjjBjjBjjjuh1jhhhjkBhNhNubj)}(h**Definition**:: struct tipc_tfm { struct crypto_aead *tfm; struct list_head list; }; **Members** ``tfm`` cipher handle/key ``list`` linked list of TFMsh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubh:}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjBubj)}(hLstruct tipc_tfm { struct crypto_aead *tfm; struct list_head list; };h]hLstruct tipc_tfm { struct crypto_aead *tfm; struct list_head list; };}hjCsbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjBubh)}(h **Members**h]j)}(hj%Ch]hMembers}(hj'ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Cubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjBubj)}(hhh](j)}(h``tfm`` cipher handle/key h](j)}(h``tfm``h]j)}(hjDCh]htfm}(hjFChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBCubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj>Cubj)}(hhh]h)}(hcipher handle/keyh]hcipher handle/key}(hj]ChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYChKhjZCubah}(h]h ]h"]h$]h&]uh1jhj>Cubeh}(h]h ]h"]h$]h&]uh1jhjYChKhj;Cubj)}(h``list`` linked list of TFMsh](j)}(h``list``h]j)}(hj}Ch]hlist}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Cubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjwCubj)}(hhh]h)}(hlinked list of TFMsh]hlinked list of TFMs}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjCubah}(h]h ]h"]h$]h&]uh1jhjwCubeh}(h]h ]h"]h$]h&]uh1jhjChKhj;Cubeh}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_aead (C struct) c.tipc_aeadhNtauh1jhjkBhhhNhNubj)}(hhh](j)}(h tipc_aeadh]j)}(hstruct tipc_aeadh](j!)}(hj$h]hstruct}(hjChhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjChhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKubj3)}(h h]h }(hjChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjChhhjChKubjD)}(h tipc_aeadh]jJ)}(hjCh]h tipc_aead}(hjChhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjChhhjChKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjChhhjChKubah}(h]jCah ](jmjneh"]h$]h&]jrjs)jthuh1jhjChKhjChhubjv)}(hhh]h)}(hTIPC AEAD key structureh]hTIPC AEAD key structure}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjDhhubah}(h]h ]h"]h$]h&]uh1juhjChhhjChKubeh}(h]h ](jstructeh"]h$]h&]jjjj1Djj1Djjjuh1jhhhjkBhNhNubj)}(hX**Definition**:: struct tipc_aead { #define TIPC_AEAD_HINT_LEN (5); struct tipc_tfm * __percpu *tfm_entry; struct tipc_crypto *crypto; struct tipc_aead *cloned; atomic_t users; u32 salt; u8 authsize; u8 mode; char hint[2 * TIPC_AEAD_HINT_LEN + 1]; struct rcu_head rcu; struct tipc_aead_key *key; u16 gen; atomic64_t seqno ; refcount_t refcnt ; }; **Members** ``tfm_entry`` per-cpu pointer to one entry in TFM list ``crypto`` TIPC crypto owns this key ``cloned`` reference to the source key in case cloning ``users`` the number of the key users (TX/RX) ``salt`` the key's SALT value ``authsize`` authentication tag size (max = 16) ``mode`` crypto mode is applied to the key ``hint`` a hint for user key ``rcu`` struct rcu_head ``key`` the aead key ``gen`` the key's generation ``seqno`` the key seqno (cluster scope) ``refcnt`` the key reference counterh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj=DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Dubh:}(hj9DhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj5Dubj)}(hX}struct tipc_aead { #define TIPC_AEAD_HINT_LEN (5); struct tipc_tfm * __percpu *tfm_entry; struct tipc_crypto *crypto; struct tipc_aead *cloned; atomic_t users; u32 salt; u8 authsize; u8 mode; char hint[2 * TIPC_AEAD_HINT_LEN + 1]; struct rcu_head rcu; struct tipc_aead_key *key; u16 gen; atomic64_t seqno ; refcount_t refcnt ; };h]hX}struct tipc_aead { #define TIPC_AEAD_HINT_LEN (5); struct tipc_tfm * __percpu *tfm_entry; struct tipc_crypto *crypto; struct tipc_aead *cloned; atomic_t users; u32 salt; u8 authsize; u8 mode; char hint[2 * TIPC_AEAD_HINT_LEN + 1]; struct rcu_head rcu; struct tipc_aead_key *key; u16 gen; atomic64_t seqno ; refcount_t refcnt ; };}hjVDsbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj5Dubh)}(h **Members**h]j)}(hjgDh]hMembers}(hjiDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeDubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj5Dubj)}(hhh](j)}(h7``tfm_entry`` per-cpu pointer to one entry in TFM list h](j)}(h ``tfm_entry``h]j)}(hjDh]h tfm_entry}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjDubj)}(hhh]h)}(h(per-cpu pointer to one entry in TFM listh]h(per-cpu pointer to one entry in TFM list}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhKhjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhKhj}Dubj)}(h%``crypto`` TIPC crypto owns this key h](j)}(h ``crypto``h]j)}(hjDh]hcrypto}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjDubj)}(hhh]h)}(hTIPC crypto owns this keyh]hTIPC crypto owns this key}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhKhjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhKhj}Dubj)}(h7``cloned`` reference to the source key in case cloning h](j)}(h ``cloned``h]j)}(hjDh]hcloned}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjDubj)}(hhh]h)}(h+reference to the source key in case cloningh]h+reference to the source key in case cloning}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj EhKhjEubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj EhKhj}Dubj)}(h.``users`` the number of the key users (TX/RX) h](j)}(h ``users``h]j)}(hj1Eh]husers}(hj3EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/Eubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj+Eubj)}(hhh]h)}(h#the number of the key users (TX/RX)h]h#the number of the key users (TX/RX)}(hjJEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFEhKhjGEubah}(h]h ]h"]h$]h&]uh1jhj+Eubeh}(h]h ]h"]h$]h&]uh1jhjFEhKhj}Dubj)}(h``salt`` the key's SALT value h](j)}(h``salt``h]j)}(hjjEh]hsalt}(hjlEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhEubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjdEubj)}(hhh]h)}(hthe key's SALT valueh]hthe key’s SALT value}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhKhjEubah}(h]h ]h"]h$]h&]uh1jhjdEubeh}(h]h ]h"]h$]h&]uh1jhjEhKhj}Dubj)}(h0``authsize`` authentication tag size (max = 16) h](j)}(h ``authsize``h]j)}(hjEh]hauthsize}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjEubj)}(hhh]h)}(h"authentication tag size (max = 16)h]h"authentication tag size (max = 16)}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhKhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhKhj}Dubj)}(h+``mode`` crypto mode is applied to the key h](j)}(h``mode``h]j)}(hjEh]hmode}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjEubj)}(hhh]h)}(h!crypto mode is applied to the keyh]h!crypto mode is applied to the key}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhKhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhKhj}Dubj)}(h``hint`` a hint for user key h](j)}(h``hint``h]j)}(hjFh]hhint}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjFubj)}(hhh]h)}(ha hint for user keyh]ha hint for user key}(hj.FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*FhKhj+Fubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhj*FhKhj}Dubj)}(h``rcu`` struct rcu_head h](j)}(h``rcu``h]j)}(hjNFh]hrcu}(hjPFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLFubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjHFubj)}(hhh]h)}(hstruct rcu_headh]hstruct rcu_head}(hjgFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcFhKhjdFubah}(h]h ]h"]h$]h&]uh1jhjHFubeh}(h]h ]h"]h$]h&]uh1jhjcFhKhj}Dubj)}(h``key`` the aead key h](j)}(h``key``h]j)}(hjFh]hkey}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjFubj)}(hhh]h)}(h the aead keyh]h the aead key}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhKhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhKhj}Dubj)}(h``gen`` the key's generation h](j)}(h``gen``h]j)}(hjFh]hgen}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjFubj)}(hhh]h)}(hthe key's generationh]hthe key’s generation}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhKhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhKhj}Dubj)}(h(``seqno`` the key seqno (cluster scope) h](j)}(h ``seqno``h]j)}(hjFh]hseqno}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjFubj)}(hhh]h)}(hthe key seqno (cluster scope)h]hthe key seqno (cluster scope)}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhKhjGubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjGhKhj}Dubj)}(h$``refcnt`` the key reference counterh](j)}(h ``refcnt``h]j)}(hj2Gh]hrefcnt}(hj4GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0Gubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj,Gubj)}(hhh]h)}(hthe key reference counterh]hthe key reference counter}(hjKGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjHGubah}(h]h ]h"]h$]h&]uh1jhj,Gubeh}(h]h ]h"]h$]h&]uh1jhjGGhKhj}Dubeh}(h]h ]h"]h$]h&]uh1jhj5Dubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_crypto_stats (C struct)c.tipc_crypto_statshNtauh1jhjkBhhhNhNubj)}(hhh](j)}(htipc_crypto_statsh]j)}(hstruct tipc_crypto_statsh](j!)}(hj$h]hstruct}(hjGhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjGhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKubj3)}(h h]h }(hjGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjGhhhjGhKubjD)}(htipc_crypto_statsh]jJ)}(hjGh]htipc_crypto_stats}(hjGhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjGubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjGhhhjGhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjGhhhjGhKubah}(h]jGah ](jmjneh"]h$]h&]jrjs)jthuh1jhjGhKhjGhhubjv)}(hhh]h)}(hTIPC Crypto statisticsh]hTIPC Crypto statistics}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjGhhubah}(h]h ]h"]h$]h&]uh1juhjGhhhjGhKubeh}(h]h ](jstructeh"]h$]h&]jjjjGjjGjjjuh1jhhhjkBhNhNubj)}(h**Definition**:: struct tipc_crypto_stats { unsigned int stat[MAX_STATS]; }; **Members** ``stat`` array of crypto statisticsh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh:}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjGubj)}(h?struct tipc_crypto_stats { unsigned int stat[MAX_STATS]; };h]h?struct tipc_crypto_stats { unsigned int stat[MAX_STATS]; };}hj Hsbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjGubh)}(h **Members**h]j)}(hjHh]hMembers}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjGubj)}(hhh]j)}(h#``stat`` array of crypto statisticsh](j)}(h``stat``h]j)}(hj;Hh]hstat}(hj=HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Hubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj5Hubj)}(hhh]h)}(harray of crypto statisticsh]harray of crypto statistics}(hjTHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjQHubah}(h]h ]h"]h$]h&]uh1jhj5Hubeh}(h]h ]h"]h$]h&]uh1jhjPHhKhj2Hubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_crypto (C struct) c.tipc_cryptohNtauh1jhjkBhhhNhNubj)}(hhh](j)}(h tipc_cryptoh]j)}(hstruct tipc_cryptoh](j!)}(hj$h]hstruct}(hjHhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjHhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKubj3)}(h h]h }(hjHhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjHhhhjHhKubjD)}(h tipc_cryptoh]jJ)}(hjHh]h tipc_crypto}(hjHhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjHubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjHhhhjHhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjHhhhjHhKubah}(h]jHah ](jmjneh"]h$]h&]jrjs)jthuh1jhjHhKhjHhhubjv)}(hhh]h)}(hTIPC TX/RX crypto structureh]hTIPC TX/RX crypto structure}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjHhhubah}(h]h ]h"]h$]h&]uh1juhjHhhhjHhKubeh}(h]h ](jstructeh"]h$]h&]jjjjHjjHjjjuh1jhhhjkBhNhNubj)}(hX9**Definition**:: struct tipc_crypto { struct net *net; struct tipc_node *node; struct tipc_aead __rcu *aead[KEY_MAX + 1]; atomic_t peer_rx_active; u16 key_gen; struct tipc_key key; u8 skey_mode; struct tipc_aead_key *skey; struct workqueue_struct *wq; struct delayed_work work; #define KEY_DISTR_SCHED 1; #define KEY_DISTR_COMPL 2; atomic_t key_distr; u32 rekeying_intv; struct tipc_crypto_stats __percpu *stats; char name[48]; atomic64_t sndnxt ; unsigned long timer1; unsigned long timer2; union { struct { u8 working:1; u8 key_master:1; u8 legacy_user:1; u8 nokey: 1; }; u8 flags; }; spinlock_t lock; }; **Members** ``net`` struct net ``node`` TIPC node (RX) ``aead`` array of pointers to AEAD keys for encryption/decryption ``peer_rx_active`` replicated peer RX active key index ``key_gen`` TX/RX key generation ``key`` the key states ``skey_mode`` session key's mode ``skey`` received session key ``wq`` common workqueue on TX crypto ``work`` delayed work sched for TX/RX ``key_distr`` key distributing state ``rekeying_intv`` rekeying interval (in minutes) ``stats`` the crypto statistics ``name`` the crypto name ``sndnxt`` the per-peer sndnxt (TX) ``timer1`` general timer 1 (jiffies) ``timer2`` general timer 2 (jiffies) ``{unnamed_union}`` anonymous ``{unnamed_struct}`` anonymous ``working`` the crypto is working or not ``key_master`` flag indicates if master key exists ``legacy_user`` flag indicates if a peer joins w/o master key (for bwd comp.) ``nokey`` no key indication ``flags`` combined flags field ``lock`` tipc_key lockh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubh:}(hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjHubj)}(hXstruct tipc_crypto { struct net *net; struct tipc_node *node; struct tipc_aead __rcu *aead[KEY_MAX + 1]; atomic_t peer_rx_active; u16 key_gen; struct tipc_key key; u8 skey_mode; struct tipc_aead_key *skey; struct workqueue_struct *wq; struct delayed_work work; #define KEY_DISTR_SCHED 1; #define KEY_DISTR_COMPL 2; atomic_t key_distr; u32 rekeying_intv; struct tipc_crypto_stats __percpu *stats; char name[48]; atomic64_t sndnxt ; unsigned long timer1; unsigned long timer2; union { struct { u8 working:1; u8 key_master:1; u8 legacy_user:1; u8 nokey: 1; }; u8 flags; }; spinlock_t lock; };h]hXstruct tipc_crypto { struct net *net; struct tipc_node *node; struct tipc_aead __rcu *aead[KEY_MAX + 1]; atomic_t peer_rx_active; u16 key_gen; struct tipc_key key; u8 skey_mode; struct tipc_aead_key *skey; struct workqueue_struct *wq; struct delayed_work work; #define KEY_DISTR_SCHED 1; #define KEY_DISTR_COMPL 2; atomic_t key_distr; u32 rekeying_intv; struct tipc_crypto_stats __percpu *stats; char name[48]; atomic64_t sndnxt ; unsigned long timer1; unsigned long timer2; union { struct { u8 working:1; u8 key_master:1; u8 legacy_user:1; u8 nokey: 1; }; u8 flags; }; spinlock_t lock; };}hjIsbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjHubh)}(h **Members**h]j)}(hj%Ih]hMembers}(hj'IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Iubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjHubj)}(hhh](j)}(h``net`` struct net h](j)}(h``net``h]j)}(hjDIh]hnet}(hjFIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBIubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj>Iubj)}(hhh]h)}(h struct neth]h struct net}(hj]IhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYIhKhjZIubah}(h]h ]h"]h$]h&]uh1jhj>Iubeh}(h]h ]h"]h$]h&]uh1jhjYIhKhj;Iubj)}(h``node`` TIPC node (RX) h](j)}(h``node``h]j)}(hj}Ih]hnode}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Iubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjwIubj)}(hhh]h)}(hTIPC node (RX)h]hTIPC node (RX)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKhjIubah}(h]h ]h"]h$]h&]uh1jhjwIubeh}(h]h ]h"]h$]h&]uh1jhjIhKhj;Iubj)}(hB``aead`` array of pointers to AEAD keys for encryption/decryption h](j)}(h``aead``h]j)}(hjIh]haead}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIubj)}(hhh]h)}(h8array of pointers to AEAD keys for encryption/decryptionh]h8array of pointers to AEAD keys for encryption/decryption}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKhjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhKhj;Iubj)}(h7``peer_rx_active`` replicated peer RX active key index h](j)}(h``peer_rx_active``h]j)}(hjIh]hpeer_rx_active}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIubj)}(hhh]h)}(h#replicated peer RX active key indexh]h#replicated peer RX active key index}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjJubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjJhKhj;Iubj)}(h!``key_gen`` TX/RX key generation h](j)}(h ``key_gen``h]j)}(hj(Jh]hkey_gen}(hj*JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&Jubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj"Jubj)}(hhh]h)}(hTX/RX key generationh]hTX/RX key generation}(hjAJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=JhKhj>Jubah}(h]h ]h"]h$]h&]uh1jhj"Jubeh}(h]h ]h"]h$]h&]uh1jhj=JhKhj;Iubj)}(h``key`` the key states h](j)}(h``key``h]j)}(hjaJh]hkey}(hjcJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_Jubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj[Jubj)}(hhh]h)}(hthe key statesh]hthe key states}(hjzJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvJhKhjwJubah}(h]h ]h"]h$]h&]uh1jhj[Jubeh}(h]h ]h"]h$]h&]uh1jhjvJhKhj;Iubj)}(h!``skey_mode`` session key's mode h](j)}(h ``skey_mode``h]j)}(hjJh]h skey_mode}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjJubj)}(hhh]h)}(hsession key's modeh]hsession key’s mode}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhKhj;Iubj)}(h``skey`` received session key h](j)}(h``skey``h]j)}(hjJh]hskey}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjJubj)}(hhh]h)}(hreceived session keyh]hreceived session key}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhKhj;Iubj)}(h%``wq`` common workqueue on TX crypto h](j)}(h``wq``h]j)}(hj Kh]hwq}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Kubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjKubj)}(hhh]h)}(hcommon workqueue on TX cryptoh]hcommon workqueue on TX crypto}(hj%KhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!KhKhj"Kubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhj!KhKhj;Iubj)}(h&``work`` delayed work sched for TX/RX h](j)}(h``work``h]j)}(hjEKh]hwork}(hjGKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCKubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj?Kubj)}(hhh]h)}(hdelayed work sched for TX/RXh]hdelayed work sched for TX/RX}(hj^KhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZKhKhj[Kubah}(h]h ]h"]h$]h&]uh1jhj?Kubeh}(h]h ]h"]h$]h&]uh1jhjZKhKhj;Iubj)}(h%``key_distr`` key distributing state h](j)}(h ``key_distr``h]j)}(hj~Kh]h key_distr}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Kubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjxKubj)}(hhh]h)}(hkey distributing stateh]hkey distributing state}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhKhjKubah}(h]h ]h"]h$]h&]uh1jhjxKubeh}(h]h ]h"]h$]h&]uh1jhjKhKhj;Iubj)}(h1``rekeying_intv`` rekeying interval (in minutes) h](j)}(h``rekeying_intv``h]j)}(hjKh]h rekeying_intv}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjKubj)}(hhh]h)}(hrekeying interval (in minutes)h]hrekeying interval (in minutes)}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhKhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKhj;Iubj)}(h ``stats`` the crypto statistics h](j)}(h ``stats``h]j)}(hjKh]hstats}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjKubj)}(hhh]h)}(hthe crypto statisticsh]hthe crypto statistics}(hj LhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjLhKhj;Iubj)}(h``name`` the crypto name h](j)}(h``name``h]j)}(hj)Lh]hname}(hj+LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Lubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj#Lubj)}(hhh]h)}(hthe crypto nameh]hthe crypto name}(hjBLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>LhKhj?Lubah}(h]h ]h"]h$]h&]uh1jhj#Lubeh}(h]h ]h"]h$]h&]uh1jhj>LhKhj;Iubj)}(h$``sndnxt`` the per-peer sndnxt (TX) h](j)}(h ``sndnxt``h]j)}(hjbLh]hsndnxt}(hjdLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`Lubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj\Lubj)}(hhh]h)}(hthe per-peer sndnxt (TX)h]hthe per-peer sndnxt (TX)}(hj{LhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwLhKhjxLubah}(h]h ]h"]h$]h&]uh1jhj\Lubeh}(h]h ]h"]h$]h&]uh1jhjwLhKhj;Iubj)}(h%``timer1`` general timer 1 (jiffies) h](j)}(h ``timer1``h]j)}(hjLh]htimer1}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjLubj)}(hhh]h)}(hgeneral timer 1 (jiffies)h]hgeneral timer 1 (jiffies)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhj;Iubj)}(h%``timer2`` general timer 2 (jiffies) h](j)}(h ``timer2``h]j)}(hjLh]htimer2}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjLubj)}(hhh]h)}(hgeneral timer 2 (jiffies)h]hgeneral timer 2 (jiffies)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhj;Iubj)}(h``{unnamed_union}`` anonymous h](j)}(h``{unnamed_union}``h]j)}(hj Mh]h{unnamed_union}}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Mubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjMubj)}(hhh]h)}(h anonymoush]h anonymous}(hj&MhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"MhKhj#Mubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhj"MhKhj;Iubj)}(h``{unnamed_struct}`` anonymous h](j)}(h``{unnamed_struct}``h]j)}(hjFMh]h{unnamed_struct}}(hjHMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDMubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj@Mubj)}(hhh]h)}(h anonymoush]h anonymous}(hj_MhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[MhKhj\Mubah}(h]h ]h"]h$]h&]uh1jhj@Mubeh}(h]h ]h"]h$]h&]uh1jhj[MhKhj;Iubj)}(h)``working`` the crypto is working or not h](j)}(h ``working``h]j)}(hjMh]hworking}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}Mubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjyMubj)}(hhh]h)}(hthe crypto is working or noth]hthe crypto is working or not}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhKhjMubah}(h]h ]h"]h$]h&]uh1jhjyMubeh}(h]h ]h"]h$]h&]uh1jhjMhKhj;Iubj)}(h3``key_master`` flag indicates if master key exists h](j)}(h``key_master``h]j)}(hjMh]h key_master}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjMubj)}(hhh]h)}(h#flag indicates if master key existsh]h#flag indicates if master key exists}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhKhjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhKhj;Iubj)}(hN``legacy_user`` flag indicates if a peer joins w/o master key (for bwd comp.) h](j)}(h``legacy_user``h]j)}(hjMh]h legacy_user}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjMubj)}(hhh]h)}(h=flag indicates if a peer joins w/o master key (for bwd comp.)h]h=flag indicates if a peer joins w/o master key (for bwd comp.)}(hj NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhKhjNubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjNhKhj;Iubj)}(h``nokey`` no key indication h](j)}(h ``nokey``h]j)}(hj*Nh]hnokey}(hj,NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(Nubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj$Nubj)}(hhh]h)}(hno key indicationh]hno key indication}(hjCNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?NhKhj@Nubah}(h]h ]h"]h$]h&]uh1jhj$Nubeh}(h]h ]h"]h$]h&]uh1jhj?NhKhj;Iubj)}(h``flags`` combined flags field h](j)}(h ``flags``h]j)}(hjcNh]hflags}(hjeNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaNubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj]Nubj)}(hhh]h)}(hcombined flags fieldh]hcombined flags field}(hj|NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxNhKhjyNubah}(h]h ]h"]h$]h&]uh1jhj]Nubeh}(h]h ]h"]h$]h&]uh1jhjxNhKhj;Iubj)}(h``lock`` tipc_key lockh](j)}(h``lock``h]j)}(hjNh]hlock}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjNubj)}(hhh]h)}(h tipc_key lockh]h tipc_key lock}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhKhj;Iubeh}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j #tipc_aead_key_validate (C function)c.tipc_aead_key_validatehNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hOint tipc_aead_key_validate (struct tipc_aead_key *ukey, struct genl_info *info)h]j)}(hNint tipc_aead_key_validate(struct tipc_aead_key *ukey, struct genl_info *info)h](j3)}(hinth]hint}(hjNhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjNhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMNubj3)}(h h]h }(hjOhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjNhhhjOhMNubjD)}(htipc_aead_key_validateh]jJ)}(htipc_aead_key_validateh]htipc_aead_key_validate}(hjOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjOubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjNhhhjOhMNubj )}(h4(struct tipc_aead_key *ukey, struct genl_info *info)h](j)}(hstruct tipc_aead_key *ukeyh](j!)}(hj$h]hstruct}(hj3OhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj/Oubj3)}(h h]h }(hj@OhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj/Oubh)}(hhh]jJ)}(h tipc_aead_keyh]h tipc_aead_key}(hjQOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjNOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSOmodnameN classnameNjj)}j]j)}jjOsbc.tipc_aead_key_validateasbuh1hhj/Oubj3)}(h h]h }(hjqOhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj/Oubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/OubjJ)}(hukeyh]hukey}(hjOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj/Oubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj+Oubj)}(hstruct genl_info *infoh](j!)}(hj$h]hstruct}(hjOhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjOubj3)}(h h]h }(hjOhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjOubh)}(hhh]jJ)}(h genl_infoh]h genl_info}(hjOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]jmOc.tipc_aead_key_validateasbuh1hhjOubj3)}(h h]h }(hjOhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjOubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubjJ)}(hinfoh]hinfo}(hjOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj+Oubeh}(h]h ]h"]h$]h&]hhuh1j hjNhhhjOhMNubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjNhhhjOhMNubah}(h]jNah ](jmjneh"]h$]h&]jrjs)jthuh1jhjOhMNhjNhhubjv)}(hhh]h)}(hValidate a AEAD user keyh]hValidate a AEAD user key}(hj&PhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMJhj#Phhubah}(h]h ]h"]h$]h&]uh1juhjNhhhjOhMNubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>Pjj>Pjjjuh1jhhhjkBhNhNubj)}(h|**Parameters** ``struct tipc_aead_key *ukey`` pointer to user key data ``struct genl_info *info`` netlink info pointerh](h)}(h**Parameters**h]j)}(hjHPh]h Parameters}(hjJPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFPubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMNhjBPubj)}(hhh](j)}(h8``struct tipc_aead_key *ukey`` pointer to user key data h](j)}(h``struct tipc_aead_key *ukey``h]j)}(hjgPh]hstruct tipc_aead_key *ukey}(hjiPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjePubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMKhjaPubj)}(hhh]h)}(hpointer to user key datah]hpointer to user key data}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|PhMKhj}Pubah}(h]h ]h"]h$]h&]uh1jhjaPubeh}(h]h ]h"]h$]h&]uh1jhj|PhMKhj^Pubj)}(h/``struct genl_info *info`` netlink info pointerh](j)}(h``struct genl_info *info``h]j)}(hjPh]hstruct genl_info *info}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMMhjPubj)}(hhh]h)}(hnetlink info pointerh]hnetlink info pointer}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMLhjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjPhMMhj^Pubeh}(h]h ]h"]h$]h&]uh1jhjBPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j #tipc_aead_key_generate (C function)c.tipc_aead_key_generatehNtauh1jhjkBhhhNhNubj)}(hhh](j)}(h7int tipc_aead_key_generate (struct tipc_aead_key *skey)h]j)}(h6int tipc_aead_key_generate(struct tipc_aead_key *skey)h](j3)}(hinth]hint}(hjPhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjPhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMpubj3)}(h h]h }(hj QhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjPhhhjQhMpubjD)}(htipc_aead_key_generateh]jJ)}(htipc_aead_key_generateh]htipc_aead_key_generate}(hjQhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjQubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjPhhhjQhMpubj )}(h(struct tipc_aead_key *skey)h]j)}(hstruct tipc_aead_key *skeyh](j!)}(hj$h]hstruct}(hj7QhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj3Qubj3)}(h h]h }(hjDQhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj3Qubh)}(hhh]jJ)}(h tipc_aead_keyh]h tipc_aead_key}(hjUQhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWQmodnameN classnameNjj)}j]j)}jjQsbc.tipc_aead_key_generateasbuh1hhj3Qubj3)}(h h]h }(hjuQhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj3Qubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3QubjJ)}(hskeyh]hskey}(hjQhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj3Qubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj/Qubah}(h]h ]h"]h$]h&]hhuh1j hjPhhhjQhMpubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjPhhhjQhMpubah}(h]jPah ](jmjneh"]h$]h&]jrjs)jthuh1jhjQhMphjPhhubjv)}(hhh]h)}(hGenerate new session keyh]hGenerate new session key}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMkhjQhhubah}(h]h ]h"]h$]h&]uh1juhjPhhhjQhMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjjQjjQjjjuh1jhhhjkBhNhNubj)}(h**Parameters** ``struct tipc_aead_key *skey`` input/output key with new content **Return** 0 in case of success, otherwise < 0h](h)}(h**Parameters**h]j)}(hjQh]h Parameters}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMohjQubj)}(hhh]j)}(hA``struct tipc_aead_key *skey`` input/output key with new content h](j)}(h``struct tipc_aead_key *skey``h]j)}(hjQh]hstruct tipc_aead_key *skey}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMlhjQubj)}(hhh]h)}(h!input/output key with new contenth]h!input/output key with new content}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMlhjRubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjRhMlhjQubah}(h]h ]h"]h$]h&]uh1jhjQubh)}(h **Return**h]j)}(hj6Rh]hReturn}(hj8RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Rubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMnhjQubh)}(h#0 in case of success, otherwise < 0h]h#0 in case of success, otherwise < 0}(hjLRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMnhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_aead_free (C function)c.tipc_aead_freehNtauh1jhjkBhhhNhNubj)}(hhh](j)}(h)void tipc_aead_free (struct rcu_head *rp)h]j)}(h(void tipc_aead_free(struct rcu_head *rp)h](j3)}(hvoidh]hvoid}(hj{RhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjwRhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubj3)}(h h]h }(hjRhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjwRhhhjRhMubjD)}(htipc_aead_freeh]jJ)}(htipc_aead_freeh]htipc_aead_free}(hjRhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjwRhhhjRhMubj )}(h(struct rcu_head *rp)h]j)}(hstruct rcu_head *rph](j!)}(hj$h]hstruct}(hjRhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjRubj3)}(h h]h }(hjRhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRubh)}(hhh]jJ)}(hrcu_headh]hrcu_head}(hjRhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j)}jjRsbc.tipc_aead_freeasbuh1hhjRubj3)}(h h]h }(hjRhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubjJ)}(hrph]hrp}(hjShhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjRubah}(h]h ]h"]h$]h&]hhuh1j hjwRhhhjRhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjsRhhhjRhMubah}(h]jnRah ](jmjneh"]h$]h&]jrjs)jthuh1jhjRhMhjpRhhubjv)}(hhh]h)}(h/Release AEAD key incl. all the TFMs in the listh]h/Release AEAD key incl. all the TFMs in the list}(hj;ShhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj8Shhubah}(h]h ]h"]h$]h&]uh1juhjpRhhhjRhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjSSjjSSjjjuh1jhhhjkBhNhNubj)}(h:**Parameters** ``struct rcu_head *rp`` rcu head pointerh](h)}(h**Parameters**h]j)}(hj]Sh]h Parameters}(hj_ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[Subah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjWSubj)}(hhh]j)}(h(``struct rcu_head *rp`` rcu head pointerh](j)}(h``struct rcu_head *rp``h]j)}(hj|Sh]hstruct rcu_head *rp}(hj~ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzSubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjvSubj)}(hhh]h)}(hrcu head pointerh]hrcu head pointer}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjSubah}(h]h ]h"]h$]h&]uh1jhjvSubeh}(h]h ]h"]h$]h&]uh1jhjShMhjsSubah}(h]h ]h"]h$]h&]uh1jhjWSubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_aead_tfm_next (C function)c.tipc_aead_tfm_nexthNtauh1jhjkBhhhNhNubj)}(hhh](j)}(h@struct crypto_aead * tipc_aead_tfm_next (struct tipc_aead *aead)h]j)}(h>struct crypto_aead *tipc_aead_tfm_next(struct tipc_aead *aead)h](j!)}(hj$h]hstruct}(hjShhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjShhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubj3)}(h h]h }(hjShhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjShhhjShMubh)}(hhh]jJ)}(h crypto_aeadh]h crypto_aead}(hjShhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j)}jtipc_aead_tfm_nextsbc.tipc_aead_tfm_nextasbuh1hhjShhhjShMubj3)}(h h]h }(hjThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjShhhjShMubj)}(hjh]h*}(hj$ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhjShMubjD)}(htipc_aead_tfm_nexth]jJ)}(hjTh]htipc_aead_tfm_next}(hj5ThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj1Tubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjShhhjShMubj )}(h(struct tipc_aead *aead)h]j)}(hstruct tipc_aead *aeadh](j!)}(hj$h]hstruct}(hjPThhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjLTubj3)}(h h]h }(hj]ThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjLTubh)}(hhh]jJ)}(h tipc_aeadh]h tipc_aead}(hjnThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjkTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpTmodnameN classnameNjj)}j]jTc.tipc_aead_tfm_nextasbuh1hhjLTubj3)}(h h]h }(hjThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjLTubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLTubjJ)}(haeadh]haead}(hjThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjLTubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjHTubah}(h]h ]h"]h$]h&]hhuh1j hjShhhjShMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjShhhjShMubah}(h]jSah ](jmjneh"]h$]h&]jrjs)jthuh1jhjShMhjShhubjv)}(hhh]h)}(h4Move TFM entry to the next one in list and return ith]h4Move TFM entry to the next one in list and return it}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjThhubah}(h]h ]h"]h$]h&]uh1juhjShhhjShMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1jhhhjkBhNhNubj)}(hA**Parameters** ``struct tipc_aead *aead`` the AEAD key pointerh](h)}(h**Parameters**h]j)}(hjTh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjTubj)}(hhh]j)}(h/``struct tipc_aead *aead`` the AEAD key pointerh](j)}(h``struct tipc_aead *aead``h]j)}(hjUh]hstruct tipc_aead *aead}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj Uubj)}(hhh]h)}(hthe AEAD key pointerh]hthe AEAD key pointer}(hj+UhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj(Uubah}(h]h ]h"]h$]h&]uh1jhj Uubeh}(h]h ]h"]h$]h&]uh1jhj'UhMhj Uubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_aead_init (C function)c.tipc_aead_inithNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hQint tipc_aead_init (struct tipc_aead **aead, struct tipc_aead_key *ukey, u8 mode)h]j)}(hPint tipc_aead_init(struct tipc_aead **aead, struct tipc_aead_key *ukey, u8 mode)h](j3)}(hinth]hint}(hjlUhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhUhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubj3)}(h h]h }(hj{UhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhUhhhjzUhMubjD)}(htipc_aead_inith]jJ)}(htipc_aead_inith]htipc_aead_init}(hjUhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjUubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhUhhhjzUhMubj )}(h>(struct tipc_aead **aead, struct tipc_aead_key *ukey, u8 mode)h](j)}(hstruct tipc_aead **aeadh](j!)}(hj$h]hstruct}(hjUhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjUubj3)}(h h]h }(hjUhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjUubh)}(hhh]jJ)}(h tipc_aeadh]h tipc_aead}(hjUhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjUsbc.tipc_aead_initasbuh1hhjUubj3)}(h h]h }(hjUhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjUubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubjJ)}(haeadh]haead}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjUubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjUubj)}(hstruct tipc_aead_key *ukeyh](j!)}(hj$h]hstruct}(hj(VhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj$Vubj3)}(h h]h }(hj5VhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$Vubh)}(hhh]jJ)}(h tipc_aead_keyh]h tipc_aead_key}(hjFVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHVmodnameN classnameNjj)}j]jUc.tipc_aead_initasbuh1hhj$Vubj3)}(h h]h }(hjdVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$Vubj)}(hjh]h*}(hjrVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$VubjJ)}(hukeyh]hukey}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$Vubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjUubj)}(hu8 modeh](h)}(hhh]jJ)}(hu8h]hu8}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]jUc.tipc_aead_initasbuh1hhjVubj3)}(h h]h }(hjVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjVubjJ)}(hmodeh]hmode}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjUubeh}(h]h ]h"]h$]h&]hhuh1j hjhUhhhjzUhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjdUhhhjzUhMubah}(h]j_Uah ](jmjneh"]h$]h&]jrjs)jthuh1jhjzUhMhjaUhhubjv)}(hhh]h)}(hInitiate TIPC AEADh]hInitiate TIPC AEAD}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjVhhubah}(h]h ]h"]h$]h&]uh1juhjaUhhhjzUhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj Wjj Wjjjuh1jhhhjkBhNhNubj)}(hX**Parameters** ``struct tipc_aead **aead`` returned new TIPC AEAD key handle pointer ``struct tipc_aead_key *ukey`` pointer to user key data ``u8 mode`` the key mode **Description** Allocate a (list of) new cipher transformation (TFM) with the specific user key data if valid. The number of the allocated TFMs can be set via the sysfs "net/tipc/max_tfms" first. Also, all the other AEAD data are also initialized. **Return** 0 if the initiation is successful, otherwise: < 0h](h)}(h**Parameters**h]j)}(hjWh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj Wubj)}(hhh](j)}(hF``struct tipc_aead **aead`` returned new TIPC AEAD key handle pointer h](j)}(h``struct tipc_aead **aead``h]j)}(hj2Wh]hstruct tipc_aead **aead}(hj4WhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0Wubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj,Wubj)}(hhh]h)}(h)returned new TIPC AEAD key handle pointerh]h)returned new TIPC AEAD key handle pointer}(hjKWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGWhMhjHWubah}(h]h ]h"]h$]h&]uh1jhj,Wubeh}(h]h ]h"]h$]h&]uh1jhjGWhMhj)Wubj)}(h8``struct tipc_aead_key *ukey`` pointer to user key data h](j)}(h``struct tipc_aead_key *ukey``h]j)}(hjkWh]hstruct tipc_aead_key *ukey}(hjmWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiWubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjeWubj)}(hhh]h)}(hpointer to user key datah]hpointer to user key data}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjWubah}(h]h ]h"]h$]h&]uh1jhjeWubeh}(h]h ]h"]h$]h&]uh1jhjWhMhj)Wubj)}(h``u8 mode`` the key mode h](j)}(h ``u8 mode``h]j)}(hjWh]hu8 mode}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjWubj)}(hhh]h)}(h the key modeh]h the key mode}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhMhj)Wubeh}(h]h ]h"]h$]h&]uh1jhj Wubh)}(h**Description**h]j)}(hjWh]h Description}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj Wubh)}(hAllocate a (list of) new cipher transformation (TFM) with the specific user key data if valid. The number of the allocated TFMs can be set via the sysfs "net/tipc/max_tfms" first. Also, all the other AEAD data are also initialized.h]hAllocate a (list of) new cipher transformation (TFM) with the specific user key data if valid. The number of the allocated TFMs can be set via the sysfs “net/tipc/max_tfms” first. Also, all the other AEAD data are also initialized.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj Wubh)}(h **Return**h]j)}(hjXh]hReturn}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj Wubh)}(h10 if the initiation is successful, otherwise: < 0h]h10 if the initiation is successful, otherwise: < 0}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj Wubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_aead_clone (C function)c.tipc_aead_clonehNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hCint tipc_aead_clone (struct tipc_aead **dst, struct tipc_aead *src)h]j)}(hBint tipc_aead_clone(struct tipc_aead **dst, struct tipc_aead *src)h](j3)}(hinth]hint}(hjKXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjGXhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMrubj3)}(h h]h }(hjZXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjGXhhhjYXhMrubjD)}(htipc_aead_cloneh]jJ)}(htipc_aead_cloneh]htipc_aead_clone}(hjlXhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjhXubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjGXhhhjYXhMrubj )}(h/(struct tipc_aead **dst, struct tipc_aead *src)h](j)}(hstruct tipc_aead **dsth](j!)}(hj$h]hstruct}(hjXhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjXubj3)}(h h]h }(hjXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjXubh)}(hhh]jJ)}(h tipc_aeadh]h tipc_aead}(hjXhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]j)}jjnXsbc.tipc_aead_cloneasbuh1hhjXubj3)}(h h]h }(hjXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjXubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubjJ)}(hdsth]hdst}(hjXhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjXubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjXubj)}(hstruct tipc_aead *srch](j!)}(hj$h]hstruct}(hjYhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjYubj3)}(h h]h }(hjYhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjYubh)}(hhh]jJ)}(h tipc_aeadh]h tipc_aead}(hj%YhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj"Yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'YmodnameN classnameNjj)}j]jXc.tipc_aead_cloneasbuh1hhjYubj3)}(h h]h }(hjCYhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjYubj)}(hjh]h*}(hjQYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubjJ)}(hsrch]hsrc}(hj^YhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjYubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjXubeh}(h]h ]h"]h$]h&]hhuh1j hjGXhhhjYXhMrubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjCXhhhjYXhMrubah}(h]j>Xah ](jmjneh"]h$]h&]jrjs)jthuh1jhjYXhMrhj@Xhhubjv)}(hhh]h)}(hClone a TIPC AEAD keyh]hClone a TIPC AEAD key}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMfhjYhhubah}(h]h ]h"]h$]h&]uh1juhj@XhhhjYXhMrubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYjjYjjjuh1jhhhjkBhNhNubj)}(hX**Parameters** ``struct tipc_aead **dst`` dest key for the cloning ``struct tipc_aead *src`` source key to clone from **Description** Make a "copy" of the source AEAD key data to the dest, the TFMs list is common for the keys. A reference to the source is hold in the "cloned" pointer for the later freeing purposes. **Note** this must be done in cluster-key mode only! **Return** 0 in case of success, otherwise < 0h](h)}(h**Parameters**h]j)}(hjYh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMjhjYubj)}(hhh](j)}(h4``struct tipc_aead **dst`` dest key for the cloning h](j)}(h``struct tipc_aead **dst``h]j)}(hjYh]hstruct tipc_aead **dst}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMghjYubj)}(hhh]h)}(hdest key for the cloningh]hdest key for the cloning}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMghjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhMghjYubj)}(h3``struct tipc_aead *src`` source key to clone from h](j)}(h``struct tipc_aead *src``h]j)}(hjZh]hstruct tipc_aead *src}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhhjYubj)}(hhh]h)}(hsource key to clone fromh]hsource key to clone from}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhhjZubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjZhMhhjYubeh}(h]h ]h"]h$]h&]uh1jhjYubh)}(h**Description**h]j)}(hj=Zh]h Description}(hj?ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;Zubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMjhjYubh)}(hMake a "copy" of the source AEAD key data to the dest, the TFMs list is common for the keys. A reference to the source is hold in the "cloned" pointer for the later freeing purposes.h]hMake a “copy” of the source AEAD key data to the dest, the TFMs list is common for the keys. A reference to the source is hold in the “cloned” pointer for the later freeing purposes.}(hjSZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMjhjYubh)}(h**Note**h]j)}(hjdZh]hNote}(hjfZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbZubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMohjYubh)}(h+this must be done in cluster-key mode only!h]h+this must be done in cluster-key mode only!}(hjzZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMohjYubh)}(h **Return**h]j)}(hjZh]hReturn}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMqhjYubh)}(h#0 in case of success, otherwise < 0h]h#0 in case of success, otherwise < 0}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMphjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_aead_mem_alloc (C function)c.tipc_aead_mem_allochNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hvoid * tipc_aead_mem_alloc (struct crypto_aead *tfm, unsigned int crypto_ctx_size, u8 **iv, struct aead_request **req, struct scatterlist **sg, int nsg)h]j)}(hvoid *tipc_aead_mem_alloc(struct crypto_aead *tfm, unsigned int crypto_ctx_size, u8 **iv, struct aead_request **req, struct scatterlist **sg, int nsg)h](j3)}(hvoidh]hvoid}(hjZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubj3)}(h h]h }(hjZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZhhhjZhMubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhhjZhMubjD)}(htipc_aead_mem_alloch]jJ)}(htipc_aead_mem_alloch]htipc_aead_mem_alloc}(hjZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjZhhhjZhMubj )}(h}(struct crypto_aead *tfm, unsigned int crypto_ctx_size, u8 **iv, struct aead_request **req, struct scatterlist **sg, int nsg)h](j)}(hstruct crypto_aead *tfmh](j!)}(hj$h]hstruct}(hj[hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj[ubj3)}(h h]h }(hj'[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[ubh)}(hhh]jJ)}(h crypto_aeadh]h crypto_aead}(hj8[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj5[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:[modnameN classnameNjj)}j]j)}jj[sbc.tipc_aead_mem_allocasbuh1hhj[ubj3)}(h h]h }(hjX[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[ubj)}(hjh]h*}(hjf[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubjJ)}(htfmh]htfm}(hjs[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[ubj)}(hunsigned int crypto_ctx_sizeh](j3)}(hunsignedh]hunsigned}(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[ubj3)}(h h]h }(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[ubj3)}(hinth]hint}(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[ubj3)}(h h]h }(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[ubjJ)}(hcrypto_ctx_sizeh]hcrypto_ctx_size}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[ubj)}(hu8 **ivh](h)}(hhh]jJ)}(hu8h]hu8}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]jT[c.tipc_aead_mem_allocasbuh1hhj[ubj3)}(h h]h }(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[ubj)}(hjh]h*}(hj \hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubjJ)}(hivh]hiv}(hj&\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[ubj)}(hstruct aead_request **reqh](j!)}(hj$h]hstruct}(hj?\hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj;\ubj3)}(h h]h }(hjL\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj;\ubh)}(hhh]jJ)}(h aead_requesth]h aead_request}(hj]\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZ\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_\modnameN classnameNjj)}j]jT[c.tipc_aead_mem_allocasbuh1hhj;\ubj3)}(h h]h }(hj{\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj;\ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;\ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;\ubjJ)}(hreqh]hreq}(hj\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj;\ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[ubj)}(hstruct scatterlist **sgh](j!)}(hj$h]hstruct}(hj\hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj\ubj3)}(h h]h }(hj\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj\ubh)}(hhh]jJ)}(h scatterlisth]h scatterlist}(hj\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]jT[c.tipc_aead_mem_allocasbuh1hhj\ubj3)}(h h]h }(hj\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj\ubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubjJ)}(hsgh]hsg}(hj ]hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[ubj)}(hint nsgh](j3)}(hinth]hint}(hj9]hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj5]ubj3)}(h h]h }(hjG]hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj5]ubjJ)}(hnsgh]hnsg}(hjU]hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj5]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[ubeh}(h]h ]h"]h$]h&]hhuh1j hjZhhhjZhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjZhhhjZhMubah}(h]jZah ](jmjneh"]h$]h&]jrjs)jthuh1jhjZhMhjZhhubjv)}(hhh]h)}(h+Allocate memory for AEAD request operationsh]h+Allocate memory for AEAD request operations}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj|]hhubah}(h]h ]h"]h$]h&]uh1juhjZhhhjZhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1jhhhjkBhNhNubj)}(hX~**Parameters** ``struct crypto_aead *tfm`` cipher handle to be registered with the request ``unsigned int crypto_ctx_size`` size of crypto context for callback ``u8 **iv`` returned pointer to IV data ``struct aead_request **req`` returned pointer to AEAD request data ``struct scatterlist **sg`` returned pointer to SG lists ``int nsg`` number of SG lists to be allocated **Description** Allocate memory to store the crypto context data, AEAD request, IV and SG lists, the memory layout is as follows: crypto_ctx || iv || aead_req || sg[] **Return** the pointer to the memory areas in case of success, otherwise NULLh](h)}(h**Parameters**h]j)}(hj]h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj]ubj)}(hhh](j)}(hL``struct crypto_aead *tfm`` cipher handle to be registered with the request h](j)}(h``struct crypto_aead *tfm``h]j)}(hj]h]hstruct crypto_aead *tfm}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj]ubj)}(hhh]h)}(h/cipher handle to be registered with the requesth]h/cipher handle to be registered with the request}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hMhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMhj]ubj)}(hE``unsigned int crypto_ctx_size`` size of crypto context for callback h](j)}(h ``unsigned int crypto_ctx_size``h]j)}(hj]h]hunsigned int crypto_ctx_size}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj]ubj)}(hhh]h)}(h#size of crypto context for callbackh]h#size of crypto context for callback}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMhj^ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj^hMhj]ubj)}(h(``u8 **iv`` returned pointer to IV data h](j)}(h ``u8 **iv``h]j)}(hj2^h]hu8 **iv}(hj4^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0^ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj,^ubj)}(hhh]h)}(hreturned pointer to IV datah]hreturned pointer to IV data}(hjK^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG^hMhjH^ubah}(h]h ]h"]h$]h&]uh1jhj,^ubeh}(h]h ]h"]h$]h&]uh1jhjG^hMhj]ubj)}(hD``struct aead_request **req`` returned pointer to AEAD request data h](j)}(h``struct aead_request **req``h]j)}(hjk^h]hstruct aead_request **req}(hjm^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji^ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhje^ubj)}(hhh]h)}(h%returned pointer to AEAD request datah]h%returned pointer to AEAD request data}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMhj^ubah}(h]h ]h"]h$]h&]uh1jhje^ubeh}(h]h ]h"]h$]h&]uh1jhj^hMhj]ubj)}(h9``struct scatterlist **sg`` returned pointer to SG lists h](j)}(h``struct scatterlist **sg``h]j)}(hj^h]hstruct scatterlist **sg}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj^ubj)}(hhh]h)}(hreturned pointer to SG listsh]hreturned pointer to SG lists}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMhj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hMhj]ubj)}(h/``int nsg`` number of SG lists to be allocated h](j)}(h ``int nsg``h]j)}(hj^h]hint nsg}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj^ubj)}(hhh]h)}(h"number of SG lists to be allocatedh]h"number of SG lists to be allocated}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMhj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hMhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]ubh)}(h**Description**h]j)}(hj_h]h Description}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj]ubh)}(hAllocate memory to store the crypto context data, AEAD request, IV and SG lists, the memory layout is as follows: crypto_ctx || iv || aead_req || sg[]h]hAllocate memory to store the crypto context data, AEAD request, IV and SG lists, the memory layout is as follows: crypto_ctx || iv || aead_req || sg[]}(hj._hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj]ubh)}(h **Return**h]j)}(hj?_h]hReturn}(hjA_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=_ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj]ubh)}(hBthe pointer to the memory areas in case of success, otherwise NULLh]hBthe pointer to the memory areas in case of success, otherwise NULL}(hjU_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_aead_encrypt (C function)c.tipc_aead_encrypthNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hint tipc_aead_encrypt (struct tipc_aead *aead, struct sk_buff *skb, struct tipc_bearer *b, struct tipc_media_addr *dst, struct tipc_node *__dnode)h]j)}(hint tipc_aead_encrypt(struct tipc_aead *aead, struct sk_buff *skb, struct tipc_bearer *b, struct tipc_media_addr *dst, struct tipc_node *__dnode)h](j3)}(hinth]hint}(hj_hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubj3)}(h h]h }(hj_hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_hhhj_hMubjD)}(htipc_aead_encrypth]jJ)}(htipc_aead_encrypth]htipc_aead_encrypt}(hj_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj_hhhj_hMubj )}(h|(struct tipc_aead *aead, struct sk_buff *skb, struct tipc_bearer *b, struct tipc_media_addr *dst, struct tipc_node *__dnode)h](j)}(hstruct tipc_aead *aeadh](j!)}(hj$h]hstruct}(hj_hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj_ubj3)}(h h]h }(hj_hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_ubh)}(hhh]jJ)}(h tipc_aeadh]h tipc_aead}(hj_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j)}jj_sbc.tipc_aead_encryptasbuh1hhj_ubj3)}(h h]h }(hj_hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_ubj)}(hjh]h*}(hj `hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubjJ)}(haeadh]haead}(hj`hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj_ubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hj3`hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj/`ubj3)}(h h]h }(hj@`hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj/`ubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjQ`hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjN`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjS`modnameN classnameNjj)}j]j_c.tipc_aead_encryptasbuh1hhj/`ubj3)}(h h]h }(hjo`hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj/`ubj)}(hjh]h*}(hj}`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/`ubjJ)}(hskbh]hskb}(hj`hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj/`ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj_ubj)}(hstruct tipc_bearer *bh](j!)}(hj$h]hstruct}(hj`hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj`ubj3)}(h h]h }(hj`hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj`ubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hj`hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j_c.tipc_aead_encryptasbuh1hhj`ubj3)}(h h]h }(hj`hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj`ubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubjJ)}(hj,h]hb}(hj`hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj`ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj_ubj)}(hstruct tipc_media_addr *dsth](j!)}(hj$h]hstruct}(hjahhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjaubj3)}(h h]h }(hjahhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjaubh)}(hhh]jJ)}(htipc_media_addrh]htipc_media_addr}(hj0ahhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj-aubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2amodnameN classnameNjj)}j]j_c.tipc_aead_encryptasbuh1hhjaubj3)}(h h]h }(hjNahhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjaubj)}(hjh]h*}(hj\ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubjJ)}(hdsth]hdst}(hjiahhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjaubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj_ubj)}(hstruct tipc_node *__dnodeh](j!)}(hj$h]hstruct}(hjahhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj~aubj3)}(h h]h }(hjahhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj~aubh)}(hhh]jJ)}(h tipc_nodeh]h tipc_node}(hjahhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j_c.tipc_aead_encryptasbuh1hhj~aubj3)}(h h]h }(hjahhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj~aubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~aubjJ)}(h__dnodeh]h__dnode}(hjahhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj~aubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj_ubeh}(h]h ]h"]h$]h&]hhuh1j hj_hhhj_hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj|_hhhj_hMubah}(h]jw_ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj_hMhjy_hhubjv)}(hhh]h)}(hEncrypt a messageh]hEncrypt a message}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjbhhubah}(h]h ]h"]h$]h&]uh1juhjy_hhhj_hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjbjjbjjjuh1jhhhjkBhNhNubj)}(hX**Parameters** ``struct tipc_aead *aead`` TIPC AEAD key for the message encryption ``struct sk_buff *skb`` the input/output skb ``struct tipc_bearer *b`` TIPC bearer where the message will be delivered after the encryption ``struct tipc_media_addr *dst`` the destination media address ``struct tipc_node *__dnode`` TIPC dest node if "known" **Return** * 0 : if the encryption has completed * -EINPROGRESS/-EBUSY : if a callback will be performed * < 0 : the encryption has failedh](h)}(h**Parameters**h]j)}(hj%bh]h Parameters}(hj'bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#bubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjbubj)}(hhh](j)}(hD``struct tipc_aead *aead`` TIPC AEAD key for the message encryption h](j)}(h``struct tipc_aead *aead``h]j)}(hjDbh]hstruct tipc_aead *aead}(hjFbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBbubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj>bubj)}(hhh]h)}(h(TIPC AEAD key for the message encryptionh]h(TIPC AEAD key for the message encryption}(hj]bhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYbhMhjZbubah}(h]h ]h"]h$]h&]uh1jhj>bubeh}(h]h ]h"]h$]h&]uh1jhjYbhMhj;bubj)}(h-``struct sk_buff *skb`` the input/output skb h](j)}(h``struct sk_buff *skb``h]j)}(hj}bh]hstruct sk_buff *skb}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{bubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjwbubj)}(hhh]h)}(hthe input/output skbh]hthe input/output skb}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhMhjbubah}(h]h ]h"]h$]h&]uh1jhjwbubeh}(h]h ]h"]h$]h&]uh1jhjbhMhj;bubj)}(h_``struct tipc_bearer *b`` TIPC bearer where the message will be delivered after the encryption h](j)}(h``struct tipc_bearer *b``h]j)}(hjbh]hstruct tipc_bearer *b}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjbubj)}(hhh]h)}(hDTIPC bearer where the message will be delivered after the encryptionh]hDTIPC bearer where the message will be delivered after the encryption}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhMhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhMhj;bubj)}(h>``struct tipc_media_addr *dst`` the destination media address h](j)}(h``struct tipc_media_addr *dst``h]j)}(hjbh]hstruct tipc_media_addr *dst}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjbubj)}(hhh]h)}(hthe destination media addressh]hthe destination media address}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchMhjcubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjchMhj;bubj)}(h8``struct tipc_node *__dnode`` TIPC dest node if "known" h](j)}(h``struct tipc_node *__dnode``h]j)}(hj(ch]hstruct tipc_node *__dnode}(hj*chhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&cubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj"cubj)}(hhh]h)}(hTIPC dest node if "known"h]hTIPC dest node if “known”}(hjAchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=chMhj>cubah}(h]h ]h"]h$]h&]uh1jhj"cubeh}(h]h ]h"]h$]h&]uh1jhj=chMhj;bubeh}(h]h ]h"]h$]h&]uh1jhjbubh)}(h **Return**h]j)}(hjcch]hReturn}(hjechhhNhNubah}(h]h ]h"]h$]h&]uh1jhjacubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjbubh)}(hhh](j)}(h50 : if the encryption has completedh]h)}(hj~ch]h50 : if the encryption has completed}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj|cubah}(h]h ]h"]h$]h&]uh1jhjycubj)}(h5-EINPROGRESS/-EBUSY : if a callback will be performedh]h)}(hjch]h5-EINPROGRESS/-EBUSY : if a callback will be performed}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjcubah}(h]h ]h"]h$]h&]uh1jhjycubj)}(h/< 0 : the encryption has failedh]h)}(hjch]h/< 0 : the encryption has failed}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjcubah}(h]h ]h"]h$]h&]uh1jhjycubeh}(h]h ]h"]h$]h&]jjuh1hhjchMhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_aead_decrypt (C function)c.tipc_aead_decrypthNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hkint tipc_aead_decrypt (struct net *net, struct tipc_aead *aead, struct sk_buff *skb, struct tipc_bearer *b)h]j)}(hjint tipc_aead_decrypt(struct net *net, struct tipc_aead *aead, struct sk_buff *skb, struct tipc_bearer *b)h](j3)}(hinth]hint}(hjchhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjchhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMmubj3)}(h h]h }(hjchhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjchhhjchMmubjD)}(htipc_aead_decrypth]jJ)}(htipc_aead_decrypth]htipc_aead_decrypt}(hj dhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjdubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjchhhjchMmubj )}(hU(struct net *net, struct tipc_aead *aead, struct sk_buff *skb, struct tipc_bearer *b)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj'dhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj#dubj3)}(h h]h }(hj4dhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#dubh)}(hhh]jJ)}(hneth]hnet}(hjEdhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjBdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGdmodnameN classnameNjj)}j]j)}jj dsbc.tipc_aead_decryptasbuh1hhj#dubj3)}(h h]h }(hjedhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#dubj)}(hjh]h*}(hjsdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#dubjJ)}(hneth]hnet}(hjdhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj#dubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjdubj)}(hstruct tipc_aead *aeadh](j!)}(hj$h]hstruct}(hjdhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjdubj3)}(h h]h }(hjdhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjdubh)}(hhh]jJ)}(h tipc_aeadh]h tipc_aead}(hjdhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]jadc.tipc_aead_decryptasbuh1hhjdubj3)}(h h]h }(hjdhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjdubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubjJ)}(haeadh]haead}(hjdhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjdubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjdubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hj ehhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjeubj3)}(h h]h }(hjehhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjeubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj'ehhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$eubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)emodnameN classnameNjj)}j]jadc.tipc_aead_decryptasbuh1hhjeubj3)}(h h]h }(hjEehhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjeubj)}(hjh]h*}(hjSehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubjJ)}(hskbh]hskb}(hj`ehhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjeubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjdubj)}(hstruct tipc_bearer *bh](j!)}(hj$h]hstruct}(hjyehhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjueubj3)}(h h]h }(hjehhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjueubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hjehhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]jadc.tipc_aead_decryptasbuh1hhjueubj3)}(h h]h }(hjehhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjueubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjueubjJ)}(hj,h]hb}(hjehhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjueubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjdubeh}(h]h ]h"]h$]h&]hhuh1j hjchhhjchMmubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjchhhjchMmubah}(h]jcah ](jmjneh"]h$]h&]jrjs)jthuh1jhjchMmhjchhubjv)}(hhh]h)}(hDecrypt an encrypted messageh]hDecrypt an encrypted message}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMbhjehhubah}(h]h ]h"]h$]h&]uh1juhjchhhjchMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjjfjjfjjjuh1jhhhjkBhNhNubj)}(hX**Parameters** ``struct net *net`` struct net ``struct tipc_aead *aead`` TIPC AEAD for the message decryption ``struct sk_buff *skb`` the input/output skb ``struct tipc_bearer *b`` TIPC bearer where the message has been received **Return** * 0 : if the decryption has completed * -EINPROGRESS/-EBUSY : if a callback will be performed * < 0 : the decryption has failedh](h)}(h**Parameters**h]j)}(hjfh]h Parameters}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMfhjfubj)}(hhh](j)}(h``struct net *net`` struct net h](j)}(h``struct net *net``h]j)}(hj:fh]hstruct net *net}(hjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCwmodnameN classnameNjj)}j]jvc.tipc_crypto_key_pick_txasbuh1hhjwubj3)}(h h]h }(hj_whhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjwubj)}(hjh]h*}(hjmwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubjJ)}(hskbh]hskb}(hjzwhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjwubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj;vubj)}(h u8 tx_keyh](h)}(hhh]jJ)}(hu8h]hu8}(hjwhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]jvc.tipc_crypto_key_pick_txasbuh1hhjwubj3)}(h h]h }(hjwhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjwubjJ)}(htx_keyh]htx_key}(hjwhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjwubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj;vubeh}(h]h ]h"]h$]h&]hhuh1j hjuhhhjuhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjuhhhjuhMubah}(h]juah ](jmjneh"]h$]h&]jrjs)jthuh1jhjuhMhjuhhubjv)}(hhh]h)}(h&Pick one TX key for message decryptionh]h&Pick one TX key for message decryption}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjwhhubah}(h]h ]h"]h$]h&]uh1juhjuhhhjuhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxjjxjjjuh1jhhhjkBhNhNubj)}(hX**Parameters** ``struct tipc_crypto *tx`` TX crypto handle ``struct tipc_crypto *rx`` RX crypto handle (can be NULL) ``struct sk_buff *skb`` the message skb which will be decrypted later ``u8 tx_key`` peer TX key id **Description** This function looks up the existing TX keys and pick one which is suitable for the message decryption, that must be a cluster key and not used before on the same message (i.e. recursive). **Return** the TX AEAD key handle in case of success, otherwise NULLh](h)}(h**Parameters**h]j)}(hjxh]h Parameters}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj xubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjxubj)}(hhh](j)}(h,``struct tipc_crypto *tx`` TX crypto handle h](j)}(h``struct tipc_crypto *tx``h]j)}(hj-xh]hstruct tipc_crypto *tx}(hj/xhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+xubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj'xubj)}(hhh]h)}(hTX crypto handleh]hTX crypto handle}(hjFxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBxhMhjCxubah}(h]h ]h"]h$]h&]uh1jhj'xubeh}(h]h ]h"]h$]h&]uh1jhjBxhMhj$xubj)}(h:``struct tipc_crypto *rx`` RX crypto handle (can be NULL) h](j)}(h``struct tipc_crypto *rx``h]j)}(hjfxh]hstruct tipc_crypto *rx}(hjhxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdxubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj`xubj)}(hhh]h)}(hRX crypto handle (can be NULL)h]hRX crypto handle (can be NULL)}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{xhMhj|xubah}(h]h ]h"]h$]h&]uh1jhj`xubeh}(h]h ]h"]h$]h&]uh1jhj{xhMhj$xubj)}(hF``struct sk_buff *skb`` the message skb which will be decrypted later h](j)}(h``struct sk_buff *skb``h]j)}(hjxh]hstruct sk_buff *skb}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjxubj)}(hhh]h)}(h-the message skb which will be decrypted laterh]h-the message skb which will be decrypted later}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhMhjxubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjxhMhj$xubj)}(h``u8 tx_key`` peer TX key id h](j)}(h ``u8 tx_key``h]j)}(hjxh]h u8 tx_key}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjxubj)}(hhh]h)}(hpeer TX key idh]hpeer TX key id}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhMhjxubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjxhMhj$xubeh}(h]h ]h"]h$]h&]uh1jhjxubh)}(h**Description**h]j)}(hjyh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjxubh)}(hThis function looks up the existing TX keys and pick one which is suitable for the message decryption, that must be a cluster key and not used before on the same message (i.e. recursive).h]hThis function looks up the existing TX keys and pick one which is suitable for the message decryption, that must be a cluster key and not used before on the same message (i.e. recursive).}(hj)yhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjxubh)}(h **Return**h]j)}(hj:yh]hReturn}(hj{hMYhj?{ubah}(h]h ]h"]h$]h&]uh1jhj#{ubeh}(h]h ]h"]h$]h&]uh1jhj>{hMYhjzubeh}(h]h ]h"]h$]h&]uh1jhjzubh)}(h**Description**h]j)}(hjd{h]h Description}(hjf{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb{ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM[hjzubh)}(hThis function updates the peer node related data as the peer RX active key has changed, so the number of TX keys' users on this node are increased and decreased correspondingly.h]hThis function updates the peer node related data as the peer RX active key has changed, so the number of TX keys’ users on this node are increased and decreased correspondingly.}(hjz{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM[hjzubh)}(hIt also considers if peer has no key, then we need to make own master key (if any) taking over i.e. starting grace period and also trigger key distributing process.h]hIt also considers if peer has no key, then we need to make own master key (if any) taking over i.e. starting grace period and also trigger key distributing process.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM_hjzubh)}(hCThe "per-peer" sndnxt is also reset when the peer key has switched.h]hGThe “per-peer” sndnxt is also reset when the peer key has switched.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMchjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_crypto_xmit (C function)c.tipc_crypto_xmithNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hint tipc_crypto_xmit (struct net *net, struct sk_buff **skb, struct tipc_bearer *b, struct tipc_media_addr *dst, struct tipc_node *__dnode)h]j)}(hint tipc_crypto_xmit(struct net *net, struct sk_buff **skb, struct tipc_bearer *b, struct tipc_media_addr *dst, struct tipc_node *__dnode)h](j3)}(hinth]hint}(hj{hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj{hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubj3)}(h h]h }(hj{hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj{hhhj{hMubjD)}(htipc_crypto_xmith]jJ)}(htipc_crypto_xmith]htipc_crypto_xmit}(hj{hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj{ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj{hhhj{hMubj )}(hv(struct net *net, struct sk_buff **skb, struct tipc_bearer *b, struct tipc_media_addr *dst, struct tipc_node *__dnode)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj|hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj|ubj3)}(h h]h }(hj|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|ubh)}(hhh]jJ)}(hneth]hnet}(hj"|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$|modnameN classnameNjj)}j]j)}jj{sbc.tipc_crypto_xmitasbuh1hhj|ubj3)}(h h]h }(hjB|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|ubj)}(hjh]h*}(hjP|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubjJ)}(hneth]hnet}(hj]|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj|ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj{ubj)}(hstruct sk_buff **skbh](j!)}(hj$h]hstruct}(hjv|hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjr|ubj3)}(h h]h }(hj|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjr|ubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j>|c.tipc_crypto_xmitasbuh1hhjr|ubj3)}(h h]h }(hj|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjr|ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr|ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr|ubjJ)}(hskbh]hskb}(hj|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjr|ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj{ubj)}(hstruct tipc_bearer *bh](j!)}(hj$h]hstruct}(hj|hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj|ubj3)}(h h]h }(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|ubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hj}hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j>|c.tipc_crypto_xmitasbuh1hhj|ubj3)}(h h]h }(hj/}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|ubj)}(hjh]h*}(hj=}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubjJ)}(hj,h]hb}(hjJ}hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj|ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj{ubj)}(hstruct tipc_media_addr *dsth](j!)}(hj$h]hstruct}(hjb}hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj^}ubj3)}(h h]h }(hjo}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^}ubh)}(hhh]jJ)}(htipc_media_addrh]htipc_media_addr}(hj}hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j>|c.tipc_crypto_xmitasbuh1hhj^}ubj3)}(h h]h }(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^}ubjJ)}(hdsth]hdst}(hj}hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj^}ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj{ubj)}(hstruct tipc_node *__dnodeh](j!)}(hj$h]hstruct}(hj}hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj}ubj3)}(h h]h }(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj}ubh)}(hhh]jJ)}(h tipc_nodeh]h tipc_node}(hj}hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j>|c.tipc_crypto_xmitasbuh1hhj}ubj3)}(h h]h }(hj~hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj}ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubjJ)}(h__dnodeh]h__dnode}(hj)~hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj{ubeh}(h]h ]h"]h$]h&]hhuh1j hj{hhhj{hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj{hhhj{hMubah}(h]j{ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj{hMhj{hhubjv)}(hhh]h)}(h%Build & encrypt TIPC message for xmith]h%Build & encrypt TIPC message for xmit}(hjS~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMzhjP~hhubah}(h]h ]h"]h$]h&]uh1juhj{hhhj{hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjk~jjk~jjjuh1jhhhjkBhNhNubj)}(hX**Parameters** ``struct net *net`` struct net ``struct sk_buff **skb`` input/output message skb pointer ``struct tipc_bearer *b`` bearer used for xmit later ``struct tipc_media_addr *dst`` destination media address ``struct tipc_node *__dnode`` destination node for reference if any **Description** First, build an encryption message header on the top of the message, then encrypt the original TIPC message by using the pending, master or active key with this preference order. If the encryption is successful, the encrypted skb is returned directly or via the callback. Otherwise, the skb is freed! **Return** * 0 : the encryption has succeeded (or no encryption) * -EINPROGRESS/-EBUSY : the encryption is ongoing, a callback will be made * -ENOKEK : the encryption has failed due to no key * -EKEYREVOKED : the encryption has failed due to key revoked * -ENOMEM : the encryption has failed due to no memory * < 0 : the encryption has failed due to other reasonsh](h)}(h**Parameters**h]j)}(hju~h]h Parameters}(hjw~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs~ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM~hjo~ubj)}(hhh](j)}(h``struct net *net`` struct net h](j)}(h``struct net *net``h]j)}(hj~h]hstruct net *net}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM{hj~ubj)}(hhh]h)}(h struct neth]h struct net}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hM{hj~ubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhj~hM{hj~ubj)}(h:``struct sk_buff **skb`` input/output message skb pointer h](j)}(h``struct sk_buff **skb``h]j)}(hj~h]hstruct sk_buff **skb}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM|hj~ubj)}(hhh]h)}(h input/output message skb pointerh]h input/output message skb pointer}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hM|hj~ubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhj~hM|hj~ubj)}(h5``struct tipc_bearer *b`` bearer used for xmit later h](j)}(h``struct tipc_bearer *b``h]j)}(hjh]hstruct tipc_bearer *b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM}hjubj)}(hhh]h)}(hbearer used for xmit laterh]hbearer used for xmit later}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM}hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM}hj~ubj)}(h:``struct tipc_media_addr *dst`` destination media address h](j)}(h``struct tipc_media_addr *dst``h]j)}(hj?h]hstruct tipc_media_addr *dst}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM~hj9ubj)}(hhh]h)}(hdestination media addressh]hdestination media address}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThM~hjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThM~hj~ubj)}(hD``struct tipc_node *__dnode`` destination node for reference if any h](j)}(h``struct tipc_node *__dnode``h]j)}(hjxh]hstruct tipc_node *__dnode}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjrubj)}(hhh]h)}(h%destination node for reference if anyh]h%destination node for reference if any}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMhj~ubeh}(h]h ]h"]h$]h&]uh1jhjo~ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjo~ubh)}(hX,First, build an encryption message header on the top of the message, then encrypt the original TIPC message by using the pending, master or active key with this preference order. If the encryption is successful, the encrypted skb is returned directly or via the callback. Otherwise, the skb is freed!h]hX,First, build an encryption message header on the top of the message, then encrypt the original TIPC message by using the pending, master or active key with this preference order. If the encryption is successful, the encrypted skb is returned directly or via the callback. Otherwise, the skb is freed!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjo~ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjo~ubh)}(hhh](j)}(hE0 : the encryption has succeeded (or no encryption)h]h)}(hjh]hE0 : the encryption has succeeded (or no encryption)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hH-EINPROGRESS/-EBUSY : the encryption is ongoing, a callback will be madeh]h)}(hj h]hH-EINPROGRESS/-EBUSY : the encryption is ongoing, a callback will be made}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj ubah}(h]h ]h"]h$]h&(]uh1jhjubj)}(h=-ENOKEK : the encryption has failed due to no keyh]h option_list)}(hhh]hoption_list_item)}(hhh](h option_group)}(hhh]hoption)}(h-ENOKEKh](h option_string)}(h-Eh]h-E}hj>sbah}(h]h ]h"]h$]h&]uh1j<hj8ubhoption_argument)}(hNOKEKh]hNOKEK}(hjNhhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1jLhj8ubeh}(h]h ]h"]h$]h&]uh1j6hj3ubah}(h]h ]h"]h$]h&]uh1j1hj.ubh description)}(h): the encryption has failed due to no keyh]h)}(hjmh]h): the encryption has failed due to no key}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjkubah}(h]h ]h"]h$]h&]uh1jihj.ubeh}(h]h ]h"]h$]h&]uh1j,hj)ubah}(h]h ]h"]h$]h&]uh1j'hj|hMhj#ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hB-EKEYREVOKED : the encryption has failed due to key revokedh]j()}(hhh]j-)}(hhh](j2)}(hhh]j7)}(h -EKEYREVOKEDh](j=)}(h-Eh]h-E}hjsbah}(h]h ]h"]h$]h&]uh1j<hjubjM)}(h KEYREVOKEDh]h KEYREVOKED}(hjhhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1jLhjubeh}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1j1hjubjj)}(h.: the encryption has failed due to key revokedh]h)}(hjрh]h.: the encryption has failed due to key revoked}(hjӀhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjπubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1j,hjubah}(h]h ]h"]h$]h&]uh1j'hjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h@-ENOMEM : the encryption has failed due to no memoryh]j()}(hhh]j-)}(hhh](j2)}(hhh]j7)}(h-ENOMEMh](j=)}(h-Eh]h-E}hj sbah}(h]h ]h"]h$]h&]uh1j<hjubjM)}(hNOMEMh]hNOMEM}(hjhhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1jLhjubeh}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1j1hjubjj)}(h,: the encryption has failed due to no memoryh]h)}(hj5h]h,: the encryption has failed due to no memory}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj3ubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1j,hjubah}(h]h ]h"]h$]h&]uh1j'hjDhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hD< 0 : the encryption has failed due to other reasonsh]h)}(hj_h]hD< 0 : the encryption has failed due to other reasons}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj]ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1hhjhMhjo~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_crypto_rcv (C function)c.tipc_crypto_rcvhNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hjint tipc_crypto_rcv (struct net *net, struct tipc_crypto *rx, struct sk_buff **skb, struct tipc_bearer *b)h]j)}(hiint tipc_crypto_rcv(struct net *net, struct tipc_crypto *rx, struct sk_buff **skb, struct tipc_bearer *b)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM ubjD)}(htipc_crypto_rcvh]jJ)}(htipc_crypto_rcvh]htipc_crypto_rcv}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM ubj )}(hV(struct net *net, struct tipc_crypto *rx, struct sk_buff **skb, struct tipc_bearer *b)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj؁hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjԁubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjԁubh)}(hhh]jJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_rcvasbuh1hhjԁubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjԁubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjԁubjJ)}(hneth]hnet}(hj1hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjԁubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjЁubj)}(hstruct tipc_crypto *rxh](j!)}(hj$h]hstruct}(hjJhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjFubj3)}(h h]h }(hjWhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjFubh)}(hhh]jJ)}(h tipc_cryptoh]h tipc_crypto}(hjhhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]jc.tipc_crypto_rcvasbuh1hhjFubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubjJ)}(hrxh]hrx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjFubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjЁubj)}(hstruct sk_buff **skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjǂhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj؂hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjՂubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjڂmodnameN classnameNjj)}j]jc.tipc_crypto_rcvasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjЁubj)}(hstruct tipc_bearer *bh](j!)}(hj$h]hstruct}(hj7hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj3ubj3)}(h h]h }(hjDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj3ubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hjUhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]jc.tipc_crypto_rcvasbuh1hhj3ubj3)}(h h]h }(hjshhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj3ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubjJ)}(hj,h]hb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj3ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjЁubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]h)}(h+Decrypt an encrypted TIPC message from peerh]h+Decrypt an encrypted TIPC message from peer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjσjjσjjjuh1jhhhjkBhNhNubj)}(hX**Parameters** ``struct net *net`` struct net ``struct tipc_crypto *rx`` RX crypto handle ``struct sk_buff **skb`` input/output message skb pointer ``struct tipc_bearer *b`` bearer where the message has been received **Description** If the decryption is successful, the decrypted skb is returned directly or as the callback, the encryption header and auth tag will be trimed out before forwarding to tipc_rcv() via the tipc_crypto_rcv_complete(). Otherwise, the skb will be freed! **Note** RX key(s) can be re-aligned, or in case of no key suitable, TX cluster key(s) can be taken for decryption (- recursive). **Return** * 0 : the decryption has successfully completed * -EINPROGRESS/-EBUSY : the decryption is ongoing, a callback will be made * -ENOKEY : the decryption has failed due to no key * -EBADMSG : the decryption has failed due to bad message * -ENOMEM : the decryption has failed due to no memory * < 0 : the decryption has failed due to other reasonsh](h)}(h**Parameters**h]j)}(hjكh]h Parameters}(hjۃhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj׃ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjӃubj)}(hhh](j)}(h``struct net *net`` struct net h](j)}(h``struct net *net``h]j)}(hjh]hstruct net *net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj)}(hhh]h)}(h struct neth]h struct net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h,``struct tipc_crypto *rx`` RX crypto handle h](j)}(h``struct tipc_crypto *rx``h]j)}(hj1h]hstruct tipc_crypto *rx}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj+ubj)}(hhh]h)}(hRX crypto handleh]hRX crypto handle}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhMhjubj)}(h:``struct sk_buff **skb`` input/output message skb pointer h](j)}(h``struct sk_buff **skb``h]j)}(hjjh]hstruct sk_buff **skb}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjdubj)}(hhh]h)}(h input/output message skb pointerh]h input/output message skb pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hE``struct tipc_bearer *b`` bearer where the message has been received h](j)}(h``struct tipc_bearer *b``h]j)}(hjh]hstruct tipc_bearer *b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj)}(hhh]h)}(h*bearer where the message has been receivedh]h*bearer where the message has been received}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjӃubh)}(h**Description**h]j)}(hjބh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj܄ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjӃubh)}(hIf the decryption is successful, the decrypted skb is returned directly or as the callback, the encryption header and auth tag will be trimed out before forwarding to tipc_rcv() via the tipc_crypto_rcv_complete(). Otherwise, the skb will be freed!h]hIf the decryption is successful, the decrypted skb is returned directly or as the callback, the encryption header and auth tag will be trimed out before forwarding to tipc_rcv() via the tipc_crypto_rcv_complete(). Otherwise, the skb will be freed!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjӃubh)}(h**Note**h]j)}(hjh]hNote}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjӃubh)}(hxRX key(s) can be re-aligned, or in case of no key suitable, TX cluster key(s) can be taken for decryption (- recursive).h]hxRX key(s) can be re-aligned, or in case of no key suitable, TX cluster key(s) can be taken for decryption (- recursive).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjӃubh)}(h **Return**h]j)}(hj,h]hReturn}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjӃubh)}(hhh](j)}(h?0 : the decryption has successfully completedh]h)}(hjGh]h?0 : the decryption has successfully completed}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjEubah}(h]h ]h"]h$]h&]uh1jhjBubj)}(hH-EINPROGRESS/-EBUSY : the decryption is ongoing, a callback will be madeh]h)}(hj_h]hH-EINPROGRESS/-EBUSY : the decryption is ongoing, a callback will be made}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj]ubah}(h]h ]h"]h$]h&]uh1jhjBubj)}(h=-ENOKEY : the decryption has failed due to no keyh]j()}(hhh]j-)}(hhh](j2)}(hhh]j7)}(h-ENOKEYh](j=)}(h-Eh]h-E}hjsbah}(h]h ]h"]h$]h&]uh1j<hjubjM)}(hNOKEYh]hNOKEY}(hjhhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1jLhjubeh}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1j1hj|ubjj)}(h): the decryption has failed due to no keyh]h)}(hjh]h): the decryption has failed due to no key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubah}(h]h ]h"]h$]h&]uh1jihj|ubeh}(h]h ]h"]h$]h&]uh1j,hjyubah}(h]h ]h"]h$]h&]uh1j'hjhMhjuubah}(h]h ]h"]h$]h&]uh1jhjBubj)}(hB-EBADMSG : the decryption has failed due to bad messageh]j()}(hhh]j-)}(hhh](j2)}(hhh]j7)}(h-EBADMSGh](j=)}(h-Eh]h-E}hjsbah}(h]h ]h"]h$]h&]uh1j<hjubjM)}(hBADMSGh]hBADMSG}(hjhhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1jLhjubeh}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1j1hjubjj)}(h.: the decryption has failed due to bad messageh]h)}(hjh]h.: the decryption has failed due to bad message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1j,hj݅ubah}(h]h ]h"]h$]h&]uh1j'hj$hMhjمubah}(h]h ]h"]h$]h&]uh1jhjBubj)}(h@-ENOMEM : the decryption has failed due to no memoryh]j()}(hhh]j-)}(hhh](j2)}(hhh]j7)}(h-ENOMEMh](j=)}(h-Eh]h-E}hjNsbah}(h]h ]h"]h$]h&]uh1j<hjJubjM)}(hNOMEMh]hNOMEM}(hj\hhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1jLhjJubeh}(h]h ]h"]h$]h&]uh1j6hjGubah}(h]h ]h"]h$]h&]uh1j1hjDubjj)}(h,: the decryption has failed due to no memoryh]h)}(hjyh]h,: the decryption has failed due to no memory}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM hjwubah}(h]h ]h"]h$]h&]uh1jihjDubeh}(h]h ]h"]h$]h&]uh1j,hjAubah}(h]h ]h"]h$]h&]uh1j'hjhM hj=ubah}(h]h ]h"]h$]h&]uh1jhjBubj)}(hD< 0 : the decryption has failed due to other reasonsh]h)}(hjh]hD< 0 : the decryption has failed due to other reasons}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM hjubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]jjuh1hhjVhMhjӃubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_crypto_msg_rcv (C function)c.tipc_crypto_msg_rcvhNtauh1jhjkBhhhNhNubj)}(hhh](j)}(h?void tipc_crypto_msg_rcv (struct net *net, struct sk_buff *skb)h]j)}(h>void tipc_crypto_msg_rcv(struct net *net, struct sk_buff *skb)h](j3)}(hvoidh]hvoid}(hj߆hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjۆhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMkubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjۆhhhjhMkubjD)}(htipc_crypto_msg_rcvh]jJ)}(htipc_crypto_msg_rcvh]htipc_crypto_msg_rcv}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjۆhhhjhMkubj )}(h&(struct net *net, struct sk_buff *skb)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj)hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hneth]hnet}(hj:hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_msg_rcvasbuh1hhjubj3)}(h h]h }(hjZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hneth]hnet}(hjuhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.tipc_crypto_msg_rcvasbuh1hhjubj3)}(h h]h }(hjʇhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj؇hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjۆhhhjhMkubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj׆hhhjhMkubah}(h]j҆ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMkhjԆhhubjv)}(hhh]h)}(h$Common 'MSG_CRYPTO' processing pointh]h(Common ‘MSG_CRYPTO’ processing point}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMghj hhubah}(h]h ]h"]h$]h&]uh1juhjԆhhhjhMkubeh}(h]h ](jfunctioneh"]h$]h&]jjjj'jj'jjjuh1jhhhjkBhNhNubj)}(hl**Parameters** ``struct net *net`` the struct net ``struct sk_buff *skb`` the receiving message bufferh](h)}(h**Parameters**h]j)}(hj1h]h Parameters}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMkhj+ubj)}(hhh](j)}(h#``struct net *net`` the struct net h](j)}(h``struct net *net``h]j)}(hjPh]hstruct net *net}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhhjJubj)}(hhh]h)}(hthe struct neth]hthe struct net}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhhjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehMhhjGubj)}(h4``struct sk_buff *skb`` the receiving message bufferh](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMjhjubj)}(hhh]h)}(hthe receiving message bufferh]hthe receiving message buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMjhjGubeh}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j "tipc_crypto_key_distr (C function)c.tipc_crypto_key_distrhNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hRint tipc_crypto_key_distr (struct tipc_crypto *tx, u8 key, struct tipc_node *dest)h]j)}(hQint tipc_crypto_key_distr(struct tipc_crypto *tx, u8 key, struct tipc_node *dest)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj߈hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj߈hhhjhMubjD)}(htipc_crypto_key_distrh]jJ)}(htipc_crypto_key_distrh]htipc_crypto_key_distr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj߈hhhjhMubj )}(h8(struct tipc_crypto *tx, u8 key, struct tipc_node *dest)h](j)}(hstruct tipc_crypto *txh](j!)}(hj$h]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_cryptoh]h tipc_crypto}(hj>hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_key_distrasbuh1hhjubj3)}(h h]h }(hj^hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(htxh]htx}(hjyhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu8 keyh](h)}(hhh]jJ)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jZc.tipc_crypto_key_distrasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hkeyh]hkey}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_node *desth](j!)}(hj$h]hstruct}(hjډhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj։ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj։ubh)}(hhh]jJ)}(h tipc_nodeh]h tipc_node}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jZc.tipc_crypto_key_distrasbuh1hhj։ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj։ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj։ubjJ)}(hdesth]hdest}(hj1hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj։ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hj߈hhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjۈhhhjhMubah}(h]jֈah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhj؈hhubjv)}(hhh]h)}(hDistribute a TX keyh]hDistribute a TX key}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjXhhubah}(h]h ]h"]h$]h&]uh1juhj؈hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1jhhhjkBhNhNubj)}(h**Parameters** ``struct tipc_crypto *tx`` the TX crypto ``u8 key`` the key's index ``struct tipc_node *dest`` the destination tipc node, = NULL if distributing to all nodes **Return** 0 in case of success, otherwise < 0h](h)}(h**Parameters**h]j)}(hj}h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjwubj)}(hhh](j)}(h)``struct tipc_crypto *tx`` the TX crypto h](j)}(h``struct tipc_crypto *tx``h]j)}(hjh]hstruct tipc_crypto *tx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj)}(hhh]h)}(h the TX cryptoh]h the TX crypto}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``u8 key`` the key's index h](j)}(h ``u8 key``h]j)}(hjՊh]hu8 key}(hj׊hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjӊubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjϊubj)}(hhh]h)}(hthe key's indexh]hthe key’s index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjϊubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hZ``struct tipc_node *dest`` the destination tipc node, = NULL if distributing to all nodes h](j)}(h``struct tipc_node *dest``h]j)}(hjh]hstruct tipc_node *dest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj)}(hhh]h)}(h>the destination tipc node, = NULL if distributing to all nodesh]h>the destination tipc node, = NULL if distributing to all nodes}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMhj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj#hMhjubeh}(h]h ]h"]h$]h&]uh1jhjwubh)}(h **Return**h]j)}(hjIh]hReturn}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjwubh)}(h#0 in case of success, otherwise < 0h]h#0 in case of success, otherwise < 0}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j !tipc_crypto_key_xmit (C function)c.tipc_crypto_key_xmithNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hcint tipc_crypto_key_xmit (struct net *net, struct tipc_aead_key *skey, u16 gen, u8 mode, u32 dnode)h]j)}(hbint tipc_crypto_key_xmit(struct net *net, struct tipc_aead_key *skey, u16 gen, u8 mode, u32 dnode)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMubjD)}(htipc_crypto_key_xmith]jJ)}(htipc_crypto_key_xmith]htipc_crypto_key_xmit}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMubj )}(hJ(struct net *net, struct tipc_aead_key *skey, u16 gen, u8 mode, u32 dnode)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjˋhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjNjubj3)}(h h]h }(hj؋hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjNjubh)}(hhh]jJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_key_xmitasbuh1hhjNjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjNjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNjubjJ)}(hneth]hnet}(hj$hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjNjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjËubj)}(hstruct tipc_aead_key *skeyh](j!)}(hj$h]hstruct}(hj=hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj9ubj3)}(h h]h }(hjJhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj9ubh)}(hhh]jJ)}(h tipc_aead_keyh]h tipc_aead_key}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]modnameN classnameNjj)}j]jc.tipc_crypto_key_xmitasbuh1hhj9ubj3)}(h h]h }(hjyhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj9ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubjJ)}(hskeyh]hskey}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj9ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjËubj)}(hu16 genh](h)}(hhh]jJ)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_crypto_key_xmitasbuh1hhjubj3)}(h h]h }(hjΌhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hgenh]hgen}(hj܌hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjËubj)}(hu8 modeh](h)}(hhh]jJ)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_crypto_key_xmitasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hmodeh]hmode}(hj$hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjËubj)}(h u32 dnodeh](h)}(hhh]jJ)}(hu32h]hu32}(hj@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]jc.tipc_crypto_key_xmitasbuh1hhj9ubj3)}(h h]h }(hj^hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj9ubjJ)}(hdnodeh]hdnode}(hjlhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj9ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjËubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]h)}(hSend a session keyh]hSend a session key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjkBhNhNubj)}(hX**Parameters** ``struct net *net`` the struct net ``struct tipc_aead_key *skey`` the session key to be sent ``u16 gen`` the key's generation ``u8 mode`` the key's mode ``u32 dnode`` the destination node address, = 0 if broadcasting to all nodes **Description** The session key 'skey' is packed in a TIPC v2 'MSG_CRYPTO/KEY_DISTR_MSG' as its data section, then xmit-ed through the uc/bc link. **Return** 0 in case of success, otherwise < 0h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj)}(hhh](j)}(h#``struct net *net`` the struct net h](j)}(h``struct net *net``h]j)}(hj׍h]hstruct net *net}(hjٍhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjՍubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjэubj)}(hhh]h)}(hthe struct neth]hthe struct net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjэubeh}(h]h ]h"]h$]h&]uh1jhjhMhj΍ubj)}(h:``struct tipc_aead_key *skey`` the session key to be sent h](j)}(h``struct tipc_aead_key *skey``h]j)}(hjh]hstruct tipc_aead_key *skey}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj ubj)}(hhh]h)}(hthe session key to be senth]hthe session key to be sent}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hMhj΍ubj)}(h!``u16 gen`` the key's generation h](j)}(h ``u16 gen``h]j)}(hjIh]hu16 gen}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjCubj)}(hhh]h)}(hthe key's generationh]hthe key’s generation}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMhj΍ubj)}(h``u8 mode`` the key's mode h](j)}(h ``u8 mode``h]j)}(hjh]hu8 mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj|ubj)}(hhh]h)}(hthe key's modeh]hthe key’s mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhjhMhj΍ubj)}(hM``u32 dnode`` the destination node address, = 0 if broadcasting to all nodes h](j)}(h ``u32 dnode``h]j)}(hjh]h u32 dnode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj)}(hhh]h)}(h>the destination node address, = 0 if broadcasting to all nodesh]h>the destination node address, = 0 if broadcasting to all nodes}(hjԎhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjЎhMhjюubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjЎhMhj΍ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubh)}(hThe session key 'skey' is packed in a TIPC v2 'MSG_CRYPTO/KEY_DISTR_MSG' as its data section, then xmit-ed through the uc/bc link.h]hThe session key ‘skey’ is packed in a TIPC v2 ‘MSG_CRYPTO/KEY_DISTR_MSG’ as its data section, then xmit-ed through the uc/bc link.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubh)}(h#0 in case of success, otherwise < 0h]h#0 in case of success, otherwise < 0}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_crypto_key_rcv (C function)c.tipc_crypto_key_rcvhNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hGbool tipc_crypto_key_rcv (struct tipc_crypto *rx, struct tipc_msg *hdr)h]j)}(hFbool tipc_crypto_key_rcv(struct tipc_crypto *rx, struct tipc_msg *hdr)h](j3)}(hjgh]hbool}(hjbhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubj3)}(h h]h }(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^hhhjohMubjD)}(htipc_crypto_key_rcvh]jJ)}(htipc_crypto_key_rcvh]htipc_crypto_key_rcv}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj~ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj^hhhjohMubj )}(h.(struct tipc_crypto *rx, struct tipc_msg *hdr)h](j)}(hstruct tipc_crypto *rxh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_cryptoh]h tipc_crypto}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_key_rcvasbuh1hhjubj3)}(h h]h }(hj܏hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hrxh]hrx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_msg *hdrh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubh)}(hhh]jJ)}(htipc_msgh]htipc_msg}(hj.hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j؏c.tipc_crypto_key_rcvasbuh1hhj ubj3)}(h h]h }(hjLhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(hhdrh]hhdr}(hjghhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hj^hhhjohMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjZhhhjohMubah}(h]jUah ](jmjneh"]h$]h&]jrjs)jthuh1jhjohMhjWhhubjv)}(hhh]h)}(hReceive a session keyh]hReceive a session key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjWhhhjohMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjkBhNhNubj)}(hX**Parameters** ``struct tipc_crypto *rx`` the RX crypto ``struct tipc_msg *hdr`` the TIPC v2 message incl. the receiving session key in its data **Description** This function retrieves the session key in the message from peer, then schedules a RX work to attach the key to the corresponding RX crypto. **Return** "true" if the key has been scheduled for attaching, otherwise "false".h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj)}(hhh](j)}(h)``struct tipc_crypto *rx`` the RX crypto h](j)}(h``struct tipc_crypto *rx``h]j)}(hjҐh]hstruct tipc_crypto *rx}(hjԐhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjАubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj̐ubj)}(hhh]h)}(h the RX cryptoh]h the RX crypto}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj̐ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjɐubj)}(hY``struct tipc_msg *hdr`` the TIPC v2 message incl. the receiving session key in its data h](j)}(h``struct tipc_msg *hdr``h]j)}(hj h]hstruct tipc_msg *hdr}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj)}(hhh]h)}(h?the TIPC v2 message incl. the receiving session key in its datah]h?the TIPC v2 message incl. the receiving session key in its data}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjɐubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjFh]h Description}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubh)}(hThis function retrieves the session key in the message from peer, then schedules a RX work to attach the key to the corresponding RX crypto.h]hThis function retrieves the session key in the message from peer, then schedules a RX work to attach the key to the corresponding RX crypto.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubh)}(h **Return**h]j)}(hjmh]hReturn}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubh)}(hF"true" if the key has been scheduled for attaching, otherwise "false".h]hN“true” if the key has been scheduled for attaching, otherwise “false”.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_crypto_work_rx (C function)c.tipc_crypto_work_rxhNtauh1jhjkBhhhNhNubj)}(hhh](j)}(h3void tipc_crypto_work_rx (struct work_struct *work)h]j)}(h2void tipc_crypto_work_rx(struct work_struct *work)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM* ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM* ubjD)}(htipc_crypto_work_rxh]jJ)}(htipc_crypto_work_rxh]htipc_crypto_work_rx}(hjӑhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjϑubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM* ubj )}(h(struct work_struct *work)h]j)}(hstruct work_struct *workh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h work_structh]h work_struct}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjՑsbc.tipc_crypto_work_rxasbuh1hhjubj3)}(h h]h }(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hworkh]hwork}(hjHhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM* ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM* ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM* hjhhubjv)}(hhh]h)}(hScheduled RX works handlerh]hScheduled RX works handler}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM$ hjohhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM* ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjkBhNhNubj)}(h**Parameters** ``struct work_struct *work`` the struct RX work **Description** The function processes the previous scheduled works i.e. distributing TX key or attaching a received session key on RX crypto.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM( hjubj)}(hhh]j)}(h0``struct work_struct *work`` the struct RX work h](j)}(h``struct work_struct *work``h]j)}(hjh]hstruct work_struct *work}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM% hjubj)}(hhh]h)}(hthe struct RX workh]hthe struct RX work}(hj̒hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjȒhM% hjɒubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjȒhM% hjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM' hjubh)}(h~The function processes the previous scheduled works i.e. distributing TX key or attaching a received session key on RX crypto.h]h~The function processes the previous scheduled works i.e. distributing TX key or attaching a received session key on RX crypto.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM' hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j 'tipc_crypto_rekeying_sched (C function)c.tipc_crypto_rekeying_schedhNtauh1jhjkBhhhNhNubj)}(hhh](j)}(hTvoid tipc_crypto_rekeying_sched (struct tipc_crypto *tx, bool changed, u32 new_intv)h]j)}(hSvoid tipc_crypto_rekeying_sched(struct tipc_crypto *tx, bool changed, u32 new_intv)h](j3)}(hvoidh]hvoid}(hj3hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj/hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMf ubj3)}(h h]h }(hjBhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj/hhhjAhMf ubjD)}(htipc_crypto_rekeying_schedh]jJ)}(htipc_crypto_rekeying_schedh]htipc_crypto_rekeying_sched}(hjThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjPubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj/hhhjAhMf ubj )}(h4(struct tipc_crypto *tx, bool changed, u32 new_intv)h](j)}(hstruct tipc_crypto *txh](j!)}(hj$h]hstruct}(hjphhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjlubj3)}(h h]h }(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjlubh)}(hhh]jJ)}(h tipc_cryptoh]h tipc_crypto}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjVsbc.tipc_crypto_rekeying_schedasbuh1hhjlubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjlubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubjJ)}(htxh]htx}(hjɓhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjlubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjhubj)}(h bool changedh](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjޓubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjޓubjJ)}(hchangedh]hchanged}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjޓubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjhubj)}(h u32 new_intvh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_crypto_rekeying_schedasbuh1hhjubj3)}(h h]h }(hj7hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hnew_intvh]hnew_intv}(hjEhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjhubeh}(h]h ]h"]h$]h&]hhuh1j hj/hhhjAhMf ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj+hhhjAhMf ubah}(h]j&ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjAhMf hj(hhubjv)}(hhh]h)}(h&(Re)schedule rekeying w/o new intervalh]h&(Re)schedule rekeying w/o new interval}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMa hjlhhubah}(h]h ]h"]h$]h&]uh1juhj(hhhjAhMf ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjkBhNhNubj)}(h**Parameters** ``struct tipc_crypto *tx`` TX crypto ``bool changed`` if the rekeying needs to be rescheduled with new interval ``u32 new_intv`` new rekeying interval (when "changed" = true)h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMe hjubj)}(hhh](j)}(h%``struct tipc_crypto *tx`` TX crypto h](j)}(h``struct tipc_crypto *tx``h]j)}(hjh]hstruct tipc_crypto *tx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMb hjubj)}(hhh]h)}(h TX cryptoh]h TX crypto}(hjɔhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjŔhMb hjƔubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjŔhMb hjubj)}(hK``bool changed`` if the rekeying needs to be rescheduled with new interval h](j)}(h``bool changed``h]j)}(hjh]h bool changed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMc hjubj)}(hhh]h)}(h9if the rekeying needs to be rescheduled with new intervalh]h9if the rekeying needs to be rescheduled with new interval}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMc hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMc hjubj)}(h>``u32 new_intv`` new rekeying interval (when "changed" = true)h](j)}(h``u32 new_intv``h]j)}(hj"h]h u32 new_intv}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMe hjubj)}(hhh]h)}(h-new rekeying interval (when "changed" = true)h]h1new rekeying interval (when “changed” = true)}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMd hj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMe hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_crypto_work_tx (C function)c.tipc_crypto_work_txhNtauh1jhjkBhhhNhNubj)}(hhh](j)}(h3void tipc_crypto_work_tx (struct work_struct *work)h]j)}(h2void tipc_crypto_work_tx(struct work_struct *work)h](j3)}(hvoidh]hvoid}(hj|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjxhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjxhhhjhM ubjD)}(htipc_crypto_work_txh]jJ)}(htipc_crypto_work_txh]htipc_crypto_work_tx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjxhhhjhM ubj )}(h(struct work_struct *work)h]j)}(hstruct work_struct *workh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjƕhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h work_structh]h work_struct}(hjוhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjԕubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjٕmodnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_work_txasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hworkh]hwork}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjxhhhjhM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjthhhjhM ubah}(h]joah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjqhhubjv)}(hhh]h)}(hScheduled TX works handlerh]hScheduled TX works handler}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM{ hj9hhubah}(h]h ]h"]h$]h&]uh1juhjqhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1jhhhjkBhNhNubj)}(hXF**Parameters** ``struct work_struct *work`` the struct TX work **Description** The function processes the previous scheduled work, i.e. key rekeying, by generating a new session key based on current one, then attaching it to the TX crypto and finally distributing it to peers. It also re-schedules the rekeying if needed.h](h)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM hjXubj)}(hhh]j)}(h0``struct work_struct *work`` the struct TX work h](j)}(h``struct work_struct *work``h]j)}(hj}h]hstruct work_struct *work}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM| hjwubj)}(hhh]h)}(hthe struct TX workh]hthe struct TX work}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM| hjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhM| hjtubah}(h]h ]h"]h$]h&]uh1jhjXubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM~ hjXubh)}(hThe function processes the previous scheduled work, i.e. key rekeying, by generating a new session key based on current one, then attaching it to the TX crypto and finally distributing it to peers. It also re-schedules the rekeying if needed.h]hThe function processes the previous scheduled work, i.e. key rekeying, by generating a new session key based on current one, then attaching it to the TX crypto and finally distributing it to peers. It also re-schedules the rekeying if needed.}(hjΖhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM~ hjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjkBhhhNhNubeh}(h]tipc-crypto-interfacesah ]h"]tipc crypto interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Discoverer Interfacesh]hTIPC Discoverer Interfaces}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_discoverer (C struct)c.tipc_discovererhNtauh1jhjhhhNhNubj)}(hhh](j)}(htipc_discovererh]j)}(hstruct tipc_discovererh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKubj3)}(h h]h }(hj$hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj#hKubjD)}(htipc_discovererh]jJ)}(hjh]htipc_discoverer}(hj6hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj2ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj#hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj#hKubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj#hKhj hhubjv)}(hhh]h)}(h/information about an ongoing link setup requesth]h/information about an ongoing link setup request}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK3hjUhhubah}(h]h ]h"]h$]h&]uh1juhj hhhj#hKubeh}(h]h ](jstructeh"]h$]h&]jjjjpjjpjjjuh1jhhhjhNhNubj)}(hX!**Definition**:: struct tipc_discoverer { u32 bearer_id; struct tipc_media_addr dest; struct net *net; u32 domain; int num_nodes; spinlock_t lock; struct sk_buff *skb; struct timer_list timer; unsigned long timer_intv; }; **Members** ``bearer_id`` identity of bearer issuing requests ``dest`` destination address for request messages ``net`` network namespace instance ``domain`` network domain to which links can be established ``num_nodes`` number of nodes currently discovered (i.e. with an active link) ``lock`` spinlock for controlling access to requests ``skb`` request message to be (repeatedly) sent ``timer`` timer governing period between requests ``timer_intv`` current interval between requests (in ms)h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubh:}(hjxhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK7hjtubj)}(hstruct tipc_discoverer { u32 bearer_id; struct tipc_media_addr dest; struct net *net; u32 domain; int num_nodes; spinlock_t lock; struct sk_buff *skb; struct timer_list timer; unsigned long timer_intv; };h]hstruct tipc_discoverer { u32 bearer_id; struct tipc_media_addr dest; struct net *net; u32 domain; int num_nodes; spinlock_t lock; struct sk_buff *skb; struct timer_list timer; unsigned long timer_intv; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK9hjtubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKEhjtubj)}(hhh](j)}(h2``bearer_id`` identity of bearer issuing requests h](j)}(h ``bearer_id``h]j)}(hjŗh]h bearer_id}(hjǗhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj×ubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK5hjubj)}(hhh]h)}(h#identity of bearer issuing requestsh]h#identity of bearer issuing requests}(hjޗhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjڗhK5hjۗubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjڗhK5hjubj)}(h2``dest`` destination address for request messages h](j)}(h``dest``h]j)}(hjh]hdest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK7hjubj)}(hhh]h)}(h(destination address for request messagesh]h(destination address for request messages}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK7hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK7hjubj)}(h#``net`` network namespace instance h](j)}(h``net``h]j)}(hj7h]hnet}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK6hj1ubj)}(hhh]h)}(hnetwork namespace instanceh]hnetwork namespace instance}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhK6hjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhK6hjubj)}(h<``domain`` network domain to which links can be established h](j)}(h ``domain``h]j)}(hjph]hdomain}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK8hjjubj)}(hhh]h)}(h0network domain to which links can be establishedh]h0network domain to which links can be established}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjubj)}(hN``num_nodes`` number of nodes currently discovered (i.e. with an active link) h](j)}(h ``num_nodes``h]j)}(hjh]h num_nodes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK9hjubj)}(hhh]h)}(h?number of nodes currently discovered (i.e. with an active link)h]h?number of nodes currently discovered (i.e. with an active link)}(hj˜hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK9hjubj)}(h5``lock`` spinlock for controlling access to requests h](j)}(h``lock``h]j)}(hjh]hlock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK:hjܘubj)}(hhh]h)}(h+spinlock for controlling access to requestsh]h+spinlock for controlling access to requests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK:hjubah}(h]h ]h"]h$]h&]uh1jhjܘubeh}(h]h ]h"]h$]h&]uh1jhjhK:hjubj)}(h0``skb`` request message to be (repeatedly) sent h](j)}(h``skb``h]j)}(hjh]hskb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK;hjubj)}(hhh]h)}(h'request message to be (repeatedly) senth]h'request message to be (repeatedly) sent}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hK;hj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hK;hjubj)}(h2``timer`` timer governing period between requests h](j)}(h ``timer``h]j)}(hjTh]htimer}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKh]h"struct tipc_media_addr *media_addr}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK}hj8ubj)}(hhh]h)}(h+media address advertised by duplicated nodeh]h+media address advertised by duplicated node}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK|hjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShK}hjÞubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_disc_rcv (C function)c.tipc_disc_rcvhNtauh1jhjhhhNhNubj)}(hhh](j)}(hPvoid tipc_disc_rcv (struct net *net, struct sk_buff *skb, struct tipc_bearer *b)h]j)}(hOvoid tipc_disc_rcv(struct net *net, struct sk_buff *skb, struct tipc_bearer *b)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubjD)}(h tipc_disc_rcvh]jJ)}(h tipc_disc_rcvh]h tipc_disc_rcv}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubj )}(h=(struct net *net, struct sk_buff *skb, struct tipc_bearer *b)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj՟hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjџubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjџubh)}(hhh]jJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_disc_rcvasbuh1hhjџubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjџubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjџubjJ)}(hneth]hnet}(hj.hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjџubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj͟ubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjGhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjCubj3)}(h h]h }(hjThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjCubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjehhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]jc.tipc_disc_rcvasbuh1hhjCubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjCubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubjJ)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj͟ubj)}(hstruct tipc_bearer *bh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjĠhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hjՠhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjҠubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjנmodnameN classnameNjj)}j]jc.tipc_disc_rcvasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hj,h]hb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj͟ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]h)}(h7handle incoming discovery message (request or response)h]h7handle incoming discovery message (request or response)}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhj4hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjOjjOjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct net *net`` applicable net namespace ``struct sk_buff *skb`` buffer containing message ``struct tipc_bearer *b`` bearer that message arrived onh](h)}(h**Parameters**h]j)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjSubj)}(hhh](j)}(h-``struct net *net`` applicable net namespace h](j)}(h``struct net *net``h]j)}(hjxh]hstruct net *net}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjrubj)}(hhh]h)}(happlicable net namespaceh]happlicable net namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhKhjoubj)}(h2``struct sk_buff *skb`` buffer containing message h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjubj)}(hhh]h)}(hbuffer containing messageh]hbuffer containing message}(hjʡhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjơhKhjǡubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjơhKhjoubj)}(h8``struct tipc_bearer *b`` bearer that message arrived onh](j)}(h``struct tipc_bearer *b``h]j)}(hjh]hstruct tipc_bearer *b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjubj)}(hhh]h)}(hbearer that message arrived onh]hbearer that message arrived on}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjoubeh}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_disc_create (C function)c.tipc_disc_createhNtauh1jhjhhhNhNubj)}(hhh](j)}(hqint tipc_disc_create (struct net *net, struct tipc_bearer *b, struct tipc_media_addr *dest, struct sk_buff **skb)h]j)}(hpint tipc_disc_create(struct net *net, struct tipc_bearer *b, struct tipc_media_addr *dest, struct sk_buff **skb)h](j3)}(hinth]hint}(hjDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@hhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chM^ubj3)}(h h]h }(hjShhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@hhhjRhM^ubjD)}(htipc_disc_createh]jJ)}(htipc_disc_createh]htipc_disc_create}(hjehhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjaubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj@hhhjRhM^ubj )}(h\(struct net *net, struct tipc_bearer *b, struct tipc_media_addr *dest, struct sk_buff **skb)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj}ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj}ubh)}(hhh]jJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjgsbc.tipc_disc_createasbuh1hhj}ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj}ubj)}(hjh]h*}(hj͢hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubjJ)}(hneth]hnet}(hjڢhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjyubj)}(hstruct tipc_bearer *bh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_disc_createasbuh1hhjubj3)}(h h]h }(hj/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hj,h]hb}(hjJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjyubj)}(hstruct tipc_media_addr *desth](j!)}(hj$h]hstruct}(hjbhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj^ubj3)}(h h]h }(hjohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubh)}(hhh]jJ)}(htipc_media_addrh]htipc_media_addr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_disc_createasbuh1hhj^ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubjJ)}(hdesth]hdest}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjyubj)}(hstruct sk_buff **skbh](j!)}(hj$h]hstruct}(hjңhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjΣubj3)}(h h]h }(hjߣhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjΣubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_disc_createasbuh1hhjΣubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjΣubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjΣubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjΣubjJ)}(hskbh]hskb}(hj6hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjΣubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjyubeh}(h]h ]h"]h$]h&]hhuh1j hj@hhhjRhM^ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj<hhhjRhM^ubah}(h]j7ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjRhM^hj9hhubjv)}(hhh]h)}(h2create object to send periodic link setup requestsh]h2create object to send periodic link setup requests}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMVhj]hhubah}(h]h ]h"]h$]h&]uh1juhj9hhhjRhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxjjxjjjuh1jhhhjhNhNubj)}(hX0**Parameters** ``struct net *net`` the applicable net namespace ``struct tipc_bearer *b`` ptr to bearer issuing requests ``struct tipc_media_addr *dest`` destination address for request messages ``struct sk_buff **skb`` pointer to created frame **Return** 0 if successful, otherwise -errno.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMZhj|ubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j)}(h``struct net *net``h]j)}(hjh]hstruct net *net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMWhjubj)}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMWhjubj)}(h9``struct tipc_bearer *b`` ptr to bearer issuing requests h](j)}(h``struct tipc_bearer *b``h]j)}(hjڤh]hstruct tipc_bearer *b}(hjܤhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjؤubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMXhjԤubj)}(hhh]h)}(hptr to bearer issuing requestsh]hptr to bearer issuing requests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjԤubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjubj)}(hJ``struct tipc_media_addr *dest`` destination address for request messages h](j)}(h ``struct tipc_media_addr *dest``h]j)}(hjh]hstruct tipc_media_addr *dest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMYhj ubj)}(hhh]h)}(h(destination address for request messagesh]h(destination address for request messages}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMYhj)ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj(hMYhjubj)}(h2``struct sk_buff **skb`` pointer to created frame h](j)}(h``struct sk_buff **skb``h]j)}(hjLh]hstruct sk_buff **skb}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMZhjFubj)}(hhh]h)}(hpointer to created frameh]hpointer to created frame}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahMZhjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahMZhjubeh}(h]h ]h"]h$]h&]uh1jhj|ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chM\hj|ubh)}(h"0 if successful, otherwise -errno.h]h"0 if successful, otherwise -errno.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chM\hj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_disc_delete (C function)c.tipc_disc_deletehNtauh1jhjhhhNhNubj)}(hhh](j)}(h1void tipc_disc_delete (struct tipc_discoverer *d)h]j)}(h0void tipc_disc_delete(struct tipc_discoverer *d)h](j3)}(hvoidh]hvoid}(hj̥hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjȥhhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMubj3)}(h h]h }(hjۥhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjȥhhhjڥhMubjD)}(htipc_disc_deleteh]jJ)}(htipc_disc_deleteh]htipc_disc_delete}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjȥhhhjڥhMubj )}(h(struct tipc_discoverer *d)h]j)}(hstruct tipc_discoverer *dh](j!)}(hj$h]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(htipc_discovererh]htipc_discoverer}(hj'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j)}jjsbc.tipc_disc_deleteasbuh1hhjubj3)}(h h]h }(hjGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hdh]hd}(hjbhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjȥhhhjڥhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjĥhhhjڥhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjڥhMhjhhubjv)}(hhh]h)}(h3destroy object sending periodic link setup requestsh]h3destroy object sending periodic link setup requests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjڥhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hJ**Parameters** ``struct tipc_discoverer *d`` ptr to link dest structureh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhjubj)}(hhh]j)}(h8``struct tipc_discoverer *d`` ptr to link dest structureh](j)}(h``struct tipc_discoverer *d``h]j)}(hjͦh]hstruct tipc_discoverer *d}(hjϦhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj˦ubah}(h]h ]h"]h$]h&]uh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhjǦubj)}(hhh]h)}(hptr to link dest structureh]hptr to link dest structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhjubah}(h]h ]h"]h$]h&]uh1jhjǦubeh}(h]h ]h"]h$]h&]uh1jhjhMhjĦubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_disc_reset (C function)c.tipc_disc_resethNtauh1jhjhhhNhNubj)}(hhh](j)}(h=void tipc_disc_reset (struct net *net, struct tipc_bearer *b)h]j)}(h``checkpoint`` seq number for congestion window size handling h](j)}(h``checkpoint``h]j)}(hjh]h checkpoint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhj ubj)}(hhh]h)}(h.seq number for congestion window size handlingh]h.seq number for congestion window size handling}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hKhj)ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj(hKhjubj)}(hF``reasm_buf`` head of partially reassembled inbound message fragments h](j)}(h ``reasm_buf``h]j)}(hjLh]h reasm_buf}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKkhjFubj)}(hhh]h)}(h7head of partially reassembled inbound message fragmentsh]h7head of partially reassembled inbound message fragments}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahKkhjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahKkhjubj)}(hK``reasm_tnlmsg`` fragmentation/reassembly area for tunnel protocol message h](j)}(h``reasm_tnlmsg``h]j)}(hjh]h reasm_tnlmsg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjubj)}(hhh]h)}(h9fragmentation/reassembly area for tunnel protocol messageh]h9fragmentation/reassembly area for tunnel protocol message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hN``ackers`` # of peers that needs to ack each packet before it can be released h](j)}(h ``ackers``h]j)}(hjh]hackers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKehjubj)}(hhh]h)}(hB# of peers that needs to ack each packet before it can be releasedh]hB# of peers that needs to ack each packet before it can be released}(hj׳hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjӳhKehjԳubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjӳhKehjubj)}(hE``acked`` # last packet acked by a certain peer. Used for broadcast. h](j)}(h ``acked``h]j)}(hjh]hacked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKfhjubj)}(hhh]h)}(h:# last packet acked by a certain peer. Used for broadcast.h]h:# last packet acked by a certain peer. Used for broadcast.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKfhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKfhjubj)}(h3``last_gap`` last gap ack blocks for bcast (FIXME) h](j)}(h ``last_gap``h]j)}(hj0h]hlast_gap}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhj*ubj)}(hhh]h)}(h%last gap ack blocks for bcast (FIXME)h]h%last gap ack blocks for bcast (FIXME)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhKhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhKhjubj)}(h"``last_ga`` ptr to gap ack blocks h](j)}(h ``last_ga``h]j)}(hjih]hlast_ga}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjcubj)}(hhh]h)}(hptr to gap ack blocksh]hptr to gap ack blocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hKhjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hKhjubj)}(hC``bc_rcvlink`` the peer specific link used for broadcast reception h](j)}(h``bc_rcvlink``h]j)}(hjh]h bc_rcvlink}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjubj)}(hhh]h)}(h3the peer specific link used for broadcast receptionh]h3the peer specific link used for broadcast reception}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hD``bc_sndlink`` the namespace global link used for broadcast sending h](j)}(h``bc_sndlink``h]j)}(hj۴h]h bc_sndlink}(hjݴhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjٴubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjմubj)}(hhh]h)}(h4the namespace global link used for broadcast sendingh]h4the namespace global link used for broadcast sending}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjմubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h ``nack_state`` bcast nack state h](j)}(h``nack_state``h]j)}(hjh]h nack_state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjubj)}(hhh]h)}(hbcast nack stateh]hbcast nack state}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hKhj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hKhjubj)}(h4``bc_peer_is_up`` peer has acked the bcast init msg h](j)}(h``bc_peer_is_up``h]j)}(hjMh]h bc_peer_is_up}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjGubj)}(hhh]h)}(h!peer has acked the bcast init msgh]h!peer has acked the bcast init msg}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhKhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhKhjubj)}(h5``stats`` collects statistics regarding link activityh](j)}(h ``stats``h]j)}(hjh]hstats}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKkhjubj)}(hhh]h)}(h+collects statistics regarding link activityh]h+collects statistics regarding link activity}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKlhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKkhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_link_create (C function)c.tipc_link_createhNtauh1jhjhhhNhNubj)}(hhh](j)}(hXabool tipc_link_create (struct net *net, char *if_name, int bearer_id, int tolerance, char net_plane, u32 mtu, int priority, u32 min_win, u32 max_win, u32 session, u32 self, u32 peer, u8 *peer_id, u16 peer_caps, struct tipc_link *bc_sndlink, struct tipc_link *bc_rcvlink, struct sk_buff_head *inputq, struct sk_buff_head *namedq, struct tipc_link **link)h]j)}(hX`bool tipc_link_create(struct net *net, char *if_name, int bearer_id, int tolerance, char net_plane, u32 mtu, int priority, u32 min_win, u32 max_win, u32 session, u32 self, u32 peer, u8 *peer_id, u16 peer_caps, struct tipc_link *bc_sndlink, struct tipc_link *bc_rcvlink, struct sk_buff_head *inputq, struct sk_buff_head *namedq, struct tipc_link **link)h](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjܵhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjܵhhhjhMubjD)}(htipc_link_createh]jJ)}(htipc_link_createh]htipc_link_create}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjܵhhhjhMubj )}(hXK(struct net *net, char *if_name, int bearer_id, int tolerance, char net_plane, u32 mtu, int priority, u32 min_win, u32 max_win, u32 session, u32 self, u32 peer, u8 *peer_id, u16 peer_caps, struct tipc_link *bc_sndlink, struct tipc_link *bc_rcvlink, struct sk_buff_head *inputq, struct sk_buff_head *namedq, struct tipc_link **link)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj)hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hneth]hnet}(hj:hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jjsbc.tipc_link_createasbuh1hhjubj3)}(h h]h }(hjZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hneth]hnet}(hjuhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h char *if_nameh](j3)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hif_nameh]hif_name}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h int bearer_idh](j3)}(hinth]hint}(hjжhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj̶ubj3)}(h h]h }(hj޶hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj̶ubjJ)}(h bearer_idh]h bearer_id}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj̶ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h int toleranceh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(h toleranceh]h tolerance}(hj!hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hchar net_planeh](j3)}(hcharh]hchar}(hj:hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6ubj3)}(h h]h }(hjHhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6ubjJ)}(h net_planeh]h net_plane}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj6ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 mtuh](h)}(hhh]jJ)}(hu32h]hu32}(hjrhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjkubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjkubjJ)}(hmtuh]hmtu}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjkubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h int priorityh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjŷhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hpriorityh]hpriority}(hjӷhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h u32 min_winh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hmin_winh]hmin_win}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h u32 max_winh](h)}(hhh]jJ)}(hu32h]hu32}(hj7hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhj0ubj3)}(h h]h }(hjUhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj0ubjJ)}(hmax_winh]hmax_win}(hjchhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj0ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h u32 sessionh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjxubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjxubjJ)}(hsessionh]hsession}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjxubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 selfh](h)}(hhh]jJ)}(hu32h]hu32}(hjǸhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjĸubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjɸmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hselfh]hself}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 peerh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjubj3)}(h h]h }(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hpeerh]hpeer}(hj;hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h u8 *peer_idh](h)}(hhh]jJ)}(hu8h]hu8}(hjWhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjPubj3)}(h h]h }(hjuhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubjJ)}(hpeer_idh]hpeer_id}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjPubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h u16 peer_capsh](h)}(hhh]jJ)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjubj3)}(h h]h }(hjʹhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(h peer_capsh]h peer_caps}(hjعhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_link *bc_sndlinkh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjubj3)}(h h]h }(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h bc_sndlinkh]h bc_sndlink}(hjHhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_link *bc_rcvlinkh](j!)}(hj$h]hstruct}(hjahhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj]ubj3)}(h h]h }(hjnhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj]ubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhj]ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj]ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubjJ)}(h bc_rcvlinkh]h bc_rcvlink}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff_head *inputqh](j!)}(hj$h]hstruct}(hjѺhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjͺubj3)}(h h]h }(hj޺hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjͺubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjͺubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjͺubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjͺubjJ)}(hinputqh]hinputq}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjͺubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff_head *namedqh](j!)}(hj$h]hstruct}(hjAhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj=ubj3)}(h h]h }(hjNhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj=ubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hj_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhj=ubj3)}(h h]h }(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj=ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubjJ)}(hnamedqh]hnamedq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_link **linkh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjϻhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj̻ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjѻmodnameN classnameNjj)}j]jVc.tipc_link_createasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hlinkh]hlink}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjܵhhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjصhhhjhMubah}(h]jӵah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjյhhubjv)}(hhh]h)}(hcreate a new linkh]hcreate a new link}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj<hhubah}(h]h ]h"]h$]h&]uh1juhjյhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1jhhhjhNhNubj)}(hX**Parameters** ``struct net *net`` pointer to associated network namespace ``char *if_name`` associated interface name ``int bearer_id`` id (index) of associated bearer ``int tolerance`` link tolerance to be used by link ``char net_plane`` network plane (A,B,c..) this link belongs to ``u32 mtu`` mtu to be advertised by link ``int priority`` priority to be used by link ``u32 min_win`` minimal send window to be used by link ``u32 max_win`` maximal send window to be used by link ``u32 session`` session to be used by link ``u32 self`` local unicast link id ``u32 peer`` node id of peer node ``u8 *peer_id`` 128-bit ID of peer ``u16 peer_caps`` bitmap describing peer node capabilities ``struct tipc_link *bc_sndlink`` the namespace global link used for broadcast sending ``struct tipc_link *bc_rcvlink`` the peer specific link used for broadcast reception ``struct sk_buff_head *inputq`` queue to put messages ready for delivery ``struct sk_buff_head *namedq`` queue to put binding table update messages ready for delivery ``struct tipc_link **link`` return value, pointer to put the created link **Return** true if link was created, otherwise falseh](h)}(h**Parameters**h]j)}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj[ubj)}(hhh](j)}(h<``struct net *net`` pointer to associated network namespace h](j)}(h``struct net *net``h]j)}(hjh]hstruct net *net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjzubj)}(hhh]h)}(h'pointer to associated network namespaceh]h'pointer to associated network namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(h,``char *if_name`` associated interface name h](j)}(h``char *if_name``h]j)}(hjh]h char *if_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(hassociated interface nameh]hassociated interface name}(hjҼhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjμhMhjϼubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjμhMhjwubj)}(h2``int bearer_id`` id (index) of associated bearer h](j)}(h``int bearer_id``h]j)}(hjh]h int bearer_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(hid (index) of associated bearerh]hid (index) of associated bearer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(h4``int tolerance`` link tolerance to be used by link h](j)}(h``int tolerance``h]j)}(hj+h]h int tolerance}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj%ubj)}(hhh]h)}(h!link tolerance to be used by linkh]h!link tolerance to be used by link}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhjwubj)}(h@``char net_plane`` network plane (A,B,c..) this link belongs to h](j)}(h``char net_plane``h]j)}(hjdh]hchar net_plane}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj^ubj)}(hhh]h)}(h,network plane (A,B,c..) this link belongs toh]h,network plane (A,B,c..) this link belongs to}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhMhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhMhjwubj)}(h)``u32 mtu`` mtu to be advertised by link h](j)}(h ``u32 mtu``h]j)}(hjh]hu32 mtu}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(hmtu to be advertised by linkh]hmtu to be advertised by link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(h-``int priority`` priority to be used by link h](j)}(h``int priority``h]j)}(hjֽh]h int priority}(hjؽhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjԽubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjнubj)}(hhh]h)}(hpriority to be used by linkh]hpriority to be used by link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjнubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(h7``u32 min_win`` minimal send window to be used by link h](j)}(h``u32 min_win``h]j)}(hjh]h u32 min_win}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj ubj)}(hhh]h)}(h&minimal send window to be used by linkh]h&minimal send window to be used by link}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMhj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$hMhjwubj)}(h7``u32 max_win`` maximal send window to be used by link h](j)}(h``u32 max_win``h]j)}(hjHh]h u32 max_win}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjBubj)}(hhh]h)}(h&maximal send window to be used by linkh]h&maximal send window to be used by link}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hMhj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hMhjwubj)}(h+``u32 session`` session to be used by link h](j)}(h``u32 session``h]j)}(hjh]h u32 session}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj{ubj)}(hhh]h)}(hsession to be used by linkh]hsession to be used by link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(h#``u32 self`` local unicast link id h](j)}(h ``u32 self``h]j)}(hjh]hu32 self}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(hlocal unicast link idh]hlocal unicast link id}(hjӾhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjϾhMhjоubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjϾhMhjwubj)}(h"``u32 peer`` node id of peer node h](j)}(h ``u32 peer``h]j)}(hjh]hu32 peer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(hnode id of peer nodeh]hnode id of peer node}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(h#``u8 *peer_id`` 128-bit ID of peer h](j)}(h``u8 *peer_id``h]j)}(hj,h]h u8 *peer_id}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj&ubj)}(hhh]h)}(h128-bit ID of peerh]h128-bit ID of peer}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjwubj)}(h;``u16 peer_caps`` bitmap describing peer node capabilities h](j)}(h``u16 peer_caps``h]j)}(hjeh]h u16 peer_caps}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj_ubj)}(hhh]h)}(h(bitmap describing peer node capabilitiesh]h(bitmap describing peer node capabilities}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhMhj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhMhjwubj)}(hV``struct tipc_link *bc_sndlink`` the namespace global link used for broadcast sending h](j)}(h ``struct tipc_link *bc_sndlink``h]j)}(hjh]hstruct tipc_link *bc_sndlink}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(h4the namespace global link used for broadcast sendingh]h4the namespace global link used for broadcast sending}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(hU``struct tipc_link *bc_rcvlink`` the peer specific link used for broadcast reception h](j)}(h ``struct tipc_link *bc_rcvlink``h]j)}(hj׿h]hstruct tipc_link *bc_rcvlink}(hjٿhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjտubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjѿubj)}(hhh]h)}(h3the peer specific link used for broadcast receptionh]h3the peer specific link used for broadcast reception}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjѿubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(hI``struct sk_buff_head *inputq`` queue to put messages ready for delivery h](j)}(h``struct sk_buff_head *inputq``h]j)}(hjh]hstruct sk_buff_head *inputq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj ubj)}(hhh]h)}(h(queue to put messages ready for deliveryh]h(queue to put messages ready for delivery}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hMhjwubj)}(h^``struct sk_buff_head *namedq`` queue to put binding table update messages ready for delivery h](j)}(h``struct sk_buff_head *namedq``h]j)}(hjIh]hstruct sk_buff_head *namedq}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjCubj)}(hhh]h)}(h=queue to put binding table update messages ready for deliveryh]h=queue to put binding table update messages ready for delivery}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMhjwubj)}(hJ``struct tipc_link **link`` return value, pointer to put the created link h](j)}(h``struct tipc_link **link``h]j)}(hjh]hstruct tipc_link **link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj|ubj)}(hhh]h)}(h-return value, pointer to put the created linkh]h-return value, pointer to put the created link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubeh}(h]h ]h"]h$]h&]uh1jhj[ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj[ubh)}(h)true if link was created, otherwise falseh]h)true if link was created, otherwise false}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_link_bc_create (C function)c.tipc_link_bc_createhNtauh1jhjhhhNhNubj)}(hhh](j)}(hbool tipc_link_bc_create (struct net *net, u32 ownnode, u32 peer, u8 *peer_id, int mtu, u32 min_win, u32 max_win, u16 peer_caps, struct sk_buff_head *inputq, struct sk_buff_head *namedq, struct tipc_link *bc_sndlink, struct tipc_link **link)h]j)}(hbool tipc_link_bc_create(struct net *net, u32 ownnode, u32 peer, u8 *peer_id, int mtu, u32 min_win, u32 max_win, u16 peer_caps, struct sk_buff_head *inputq, struct sk_buff_head *namedq, struct tipc_link *bc_sndlink, struct tipc_link **link)h](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM+ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM+ubjD)}(htipc_link_bc_createh]jJ)}(htipc_link_bc_createh]htipc_link_bc_create}(hj"hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM+ubj )}(h(struct net *net, u32 ownnode, u32 peer, u8 *peer_id, int mtu, u32 min_win, u32 max_win, u16 peer_caps, struct sk_buff_head *inputq, struct sk_buff_head *namedq, struct tipc_link *bc_sndlink, struct tipc_link **link)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj>hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj:ubj3)}(h h]h }(hjKhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:ubh)}(hhh]jJ)}(hneth]hnet}(hj\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jj$sbc.tipc_link_bc_createasbuh1hhj:ubj3)}(h h]h }(hj|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubjJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj:ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(h u32 ownnodeh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hownnodeh]hownnode}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hu32 peerh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hpeerh]hpeer}(hj'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(h u8 *peer_idh](h)}(hhh]jJ)}(hu8h]hu8}(hjChhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhj<ubj3)}(h h]h }(hjahhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj<ubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubjJ)}(hpeer_idh]hpeer_id}(hj|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hint mtuh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hmtuh]hmtu}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(h u32 min_winh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hmin_winh]hmin_win}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(h u32 max_winh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhjubj3)}(h h]h }(hj3hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hmax_winh]hmax_win}(hjAhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(h u16 peer_capsh](h)}(hhh]jJ)}(hu16h]hu16}(hj]hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhjVubj3)}(h h]h }(hj{hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjVubjJ)}(h peer_capsh]h peer_caps}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hstruct sk_buff_head *inputqh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hinputqh]hinputq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hstruct sk_buff_head *namedqh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hj0hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhjubj3)}(h h]h }(hjNhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hnamedqh]hnamedq}(hjihhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hstruct tipc_link *bc_sndlinkh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj~ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj~ubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhj~ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj~ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubjJ)}(h bc_sndlinkh]h bc_sndlink}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hstruct tipc_link **linkh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jxc.tipc_link_bc_createasbuh1hhjubj3)}(h h]h }(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hlinkh]hlink}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM+ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM+ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM+hjhhubjv)}(hhh]h)}(h(create new link to be used for broadcasth]h(create new link to be used for broadcast}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj}hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM+ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX0**Parameters** ``struct net *net`` pointer to associated network namespace ``u32 ownnode`` identity of own node ``u32 peer`` node id of peer node ``u8 *peer_id`` 128-bit ID of peer ``int mtu`` mtu to be used initially if no peers ``u32 min_win`` minimal send window to be used by link ``u32 max_win`` maximal send window to be used by link ``u16 peer_caps`` bitmap describing peer node capabilities ``struct sk_buff_head *inputq`` queue to put messages ready for delivery ``struct sk_buff_head *namedq`` queue to put binding table update messages ready for delivery ``struct tipc_link *bc_sndlink`` the namespace global link used for broadcast sending ``struct tipc_link **link`` return value, pointer to put the created link **Return** true if link was created, otherwise falseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh](j)}(h<``struct net *net`` pointer to associated network namespace h](j)}(h``struct net *net``h]j)}(hjh]hstruct net *net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(h'pointer to associated network namespaceh]h'pointer to associated network namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h%``u32 ownnode`` identity of own node h](j)}(h``u32 ownnode``h]j)}(hjh]h u32 ownnode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM#hjubj)}(hhh]h)}(hidentity of own nodeh]hidentity of own node}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM#hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM#hjubj)}(h"``u32 peer`` node id of peer node h](j)}(h ``u32 peer``h]j)}(hj3h]hu32 peer}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM$hj-ubj)}(hhh]h)}(hnode id of peer nodeh]hnode id of peer node}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhM$hjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhM$hjubj)}(h#``u8 *peer_id`` 128-bit ID of peer h](j)}(h``u8 *peer_id``h]j)}(hjlh]h u8 *peer_id}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM%hjfubj)}(hhh]h)}(h128-bit ID of peerh]h128-bit ID of peer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM%hjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhM%hjubj)}(h1``int mtu`` mtu to be used initially if no peers h](j)}(h ``int mtu``h]j)}(hjh]hint mtu}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(h$mtu to be used initially if no peersh]h$mtu to be used initially if no peers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h7``u32 min_win`` minimal send window to be used by link h](j)}(h``u32 min_win``h]j)}(hjh]h u32 min_win}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(h&minimal send window to be used by linkh]h&minimal send window to be used by link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h7``u32 max_win`` maximal send window to be used by link h](j)}(h``u32 max_win``h]j)}(hjh]h u32 max_win}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(h&maximal send window to be used by linkh]h&maximal send window to be used by link}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hMhjubj)}(h;``u16 peer_caps`` bitmap describing peer node capabilities h](j)}(h``u16 peer_caps``h]j)}(hjPh]h u16 peer_caps}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM&hjJubj)}(hhh]h)}(h(bitmap describing peer node capabilitiesh]h(bitmap describing peer node capabilities}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehM&hjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehM&hjubj)}(hI``struct sk_buff_head *inputq`` queue to put messages ready for delivery h](j)}(h``struct sk_buff_head *inputq``h]j)}(hjh]hstruct sk_buff_head *inputq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM hjubj)}(hhh]h)}(h(queue to put messages ready for deliveryh]h(queue to put messages ready for delivery}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h^``struct sk_buff_head *namedq`` queue to put binding table update messages ready for delivery h](j)}(h``struct sk_buff_head *namedq``h]j)}(hjh]hstruct sk_buff_head *namedq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM!hjubj)}(hhh]h)}(h=queue to put binding table update messages ready for deliveryh]h=queue to put binding table update messages ready for delivery}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM!hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM!hjubj)}(hV``struct tipc_link *bc_sndlink`` the namespace global link used for broadcast sending h](j)}(h ``struct tipc_link *bc_sndlink``h]j)}(hjh]hstruct tipc_link *bc_sndlink}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM'hjubj)}(hhh]h)}(h4the namespace global link used for broadcast sendingh]h4the namespace global link used for broadcast sending}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjubj)}(hJ``struct tipc_link **link`` return value, pointer to put the created link h](j)}(h``struct tipc_link **link``h]j)}(hj4h]hstruct tipc_link **link}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM"hj.ubj)}(hhh]h)}(h-return value, pointer to put the created linkh]h-return value, pointer to put the created link}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhM"hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhM"hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjoh]hReturn}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM$hjubh)}(h)true if link was created, otherwise falseh]h)true if link was created, otherwise false}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM)hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_link_fsm_evt (C function)c.tipc_link_fsm_evthNtauh1jhjhhhNhNubj)}(hhh](j)}(h4int tipc_link_fsm_evt (struct tipc_link *l, int evt)h]j)}(h3int tipc_link_fsm_evt(struct tipc_link *l, int evt)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM\ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM\ubjD)}(htipc_link_fsm_evth]jJ)}(htipc_link_fsm_evth]htipc_link_fsm_evt}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM\ubj )}(h(struct tipc_link *l, int evt)h](j)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_link_fsm_evtasbuh1hhjubj3)}(h h]h }(hj/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hlh]hl}(hjJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint evth](j3)}(hinth]hint}(hjchhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_ubj3)}(h h]h }(hjqhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_ubjJ)}(hevth]hevt}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM\ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM\ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM\hjhhubjv)}(hhh]h)}(hlink finite state machineh]hlink finite state machine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMXhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM\ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hl**Parameters** ``struct tipc_link *l`` pointer to link ``int evt`` state machine event to be processedh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM\hjubj)}(hhh](j)}(h(``struct tipc_link *l`` pointer to link h](j)}(h``struct tipc_link *l``h]j)}(hjh]hstruct tipc_link *l}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMYhjubj)}(hhh]h)}(hpointer to linkh]hpointer to link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMYhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMYhjubj)}(h/``int evt`` state machine event to be processedh](j)}(h ``int evt``h]j)}(hj#h]hint evt}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM[hjubj)}(hhh]h)}(h#state machine event to be processedh]h#state machine event to be processed}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMZhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hM[hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j !tipc_link_too_silent (C function)c.tipc_link_too_silenthNtauh1jhjhhhNhNubj)}(hhh](j)}(h/bool tipc_link_too_silent (struct tipc_link *l)h]j)}(h.bool tipc_link_too_silent(struct tipc_link *l)h](j3)}(hjgh]hbool}(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjyhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM,ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjyhhhjhM,ubjD)}(htipc_link_too_silenth]jJ)}(htipc_link_too_silenth]htipc_link_too_silent}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjyhhhjhM,ubj )}(h(struct tipc_link *l)h]j)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_link_too_silentasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjLh]hl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjyhhhjhM,ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjuhhhjhM,ubah}(h]jpah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM,hjrhhubjv)}(hhh]h)}(hcheck if link is "too silent"h]h!check if link is “too silent”}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM&hj8hhubah}(h]h ]h"]h$]h&]uh1juhjrhhhjhM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjSjjSjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct tipc_link *l`` tipc link to be checked **Return** true if the link 'silent_intv_cnt' is about to reach the 'abort_limit' value, otherwise falseh](h)}(h**Parameters**h]j)}(hj]h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM*hjWubj)}(hhh]j)}(h0``struct tipc_link *l`` tipc link to be checked h](j)}(h``struct tipc_link *l``h]j)}(hj|h]hstruct tipc_link *l}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM'hjvubj)}(hhh]h)}(htipc link to be checkedh]htipc link to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjsubah}(h]h ]h"]h$]h&]uh1jhjWubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM)hjWubh)}(h]true if the link 'silent_intv_cnt' is about to reach the 'abort_limit' value, otherwise falseh]hetrue if the link ‘silent_intv_cnt’ is about to reach the ‘abort_limit’ value, otherwise false}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM)hjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j link_schedule_user (C function)c.link_schedule_userhNtauh1jhjhhhNhNubj)}(hhh](j)}(hBint link_schedule_user (struct tipc_link *l, struct tipc_msg *hdr)h]j)}(hAint link_schedule_user(struct tipc_link *l, struct tipc_msg *hdr)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMtubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj hMtubjD)}(hlink_schedule_userh]jJ)}(hlink_schedule_userh]hlink_schedule_user}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj hMtubj )}(h+(struct tipc_link *l, struct tipc_msg *hdr)h](j)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hj9hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj5ubj3)}(h h]h }(hjFhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj5ubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjWhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jjsbc.link_schedule_userasbuh1hhj5ubj3)}(h h]h }(hjwhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj5ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubjJ)}(hjLh]hl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj5ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1ubj)}(hstruct tipc_msg *hdrh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jsc.link_schedule_userasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hhdrh]hhdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhj hMtubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj hMtubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMthjhhubjv)}(hhh]h)}(h5schedule a message sender for wakeup after congestionh]h5schedule a message sender for wakeup after congestion}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMohj(hhubah}(h]h ]h"]h$]h&]uh1juhjhhhj hMtubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct tipc_link *l`` congested link ``struct tipc_msg *hdr`` header of message that is being sent Create pseudo msg to send back to user when congestion abatesh](h)}(h**Parameters**h]j)}(hjMh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMshjGubj)}(hhh](j)}(h'``struct tipc_link *l`` congested link h](j)}(h``struct tipc_link *l``h]j)}(hjlh]hstruct tipc_link *l}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMphjfubj)}(hhh]h)}(hcongested linkh]hcongested link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMphjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhMphjcubj)}(h{``struct tipc_msg *hdr`` header of message that is being sent Create pseudo msg to send back to user when congestion abatesh](j)}(h``struct tipc_msg *hdr``h]j)}(hjh]hstruct tipc_msg *hdr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMqhjubj)}(hhh]h)}(hbheader of message that is being sent Create pseudo msg to send back to user when congestion abatesh]hbheader of message that is being sent Create pseudo msg to send back to user when congestion abates}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMqhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMqhjcubeh}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  link_prepare_wakeup (C function)c.link_prepare_wakeuphNtauh1jhjhhhNhNubj)}(hhh](j)}(h.void link_prepare_wakeup (struct tipc_link *l)h]j)}(h-void link_prepare_wakeup(struct tipc_link *l)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj hMubjD)}(hlink_prepare_wakeuph]jJ)}(hlink_prepare_wakeuph]hlink_prepare_wakeup}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj hMubj )}(h(struct tipc_link *l)h]j)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hj;hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj7ubj3)}(h h]h }(hjHhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7ubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjYhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jj!sbc.link_prepare_wakeupasbuh1hhj7ubj3)}(h h]h }(hjyhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubjJ)}(hjLh]hl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj7ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj3ubah}(h]h ]h"]h$]h&]hhuh1j hjhhhj hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMhjhhubjv)}(hhh]h)}(h)prepare users for wakeup after congestionh]h)prepare users for wakeup after congestion}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct tipc_link *l`` congested link Wake up a number of waiting users, as permitted by available space in the send queueh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]j)}(h{``struct tipc_link *l`` congested link Wake up a number of waiting users, as permitted by available space in the send queueh](j)}(h``struct tipc_link *l``h]j)}(hjh]hstruct tipc_link *l}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(hccongested link Wake up a number of waiting users, as permitted by available space in the send queueh]hccongested link Wake up a number of waiting users, as permitted by available space in the send queue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j .tipc_link_set_skb_retransmit_time (C function)#c.tipc_link_set_skb_retransmit_timehNtauh1jhjhhhNhNubj)}(hhh](j)}(hQvoid tipc_link_set_skb_retransmit_time (struct sk_buff *skb, struct tipc_link *l)h]j)}(hPvoid tipc_link_set_skb_retransmit_time(struct sk_buff *skb, struct tipc_link *l)h](j3)}(hvoidh]hvoid}(hjXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjThhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubj3)}(h h]h }(hjghhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjThhhjfhMubjD)}(h!tipc_link_set_skb_retransmit_timeh]jJ)}(h!tipc_link_set_skb_retransmit_timeh]h!tipc_link_set_skb_retransmit_time}(hjyhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjuubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjThhhjfhMubj )}(h*(struct sk_buff *skb, struct tipc_link *l)h](j)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj{sb#c.tipc_link_set_skb_retransmit_timeasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hj%hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j#c.tipc_link_set_skb_retransmit_timeasbuh1hhjubj3)}(h h]h }(hjChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjLh]hl}(hj^hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjThhhjfhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjPhhhjfhMubah}(h]jKah ](jmjneh"]h$]h&]jrjs)jthuh1jhjfhMhjMhhubjv)}(hhh]h)}(hNset the time at which retransmission of the given skb should be next attemptedh]hNset the time at which retransmission of the given skb should be next attempted}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjMhhhjfhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct sk_buff *skb`` skb to set a future retransmission time for ``struct tipc_link *l`` link the skb will be transmitted onh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh](j)}(hD``struct sk_buff *skb`` skb to set a future retransmission time for h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(h+skb to set a future retransmission time forh]h+skb to set a future retransmission time for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h;``struct tipc_link *l`` link the skb will be transmitted onh](j)}(h``struct tipc_link *l``h]j)}(hjh]hstruct tipc_link *l}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(h#link the skb will be transmitted onh]h#link the skb will be transmitted on}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_link_xmit (C function)c.tipc_link_xmithNtauh1jhjhhhNhNubj)}(hhh](j)}(h_int tipc_link_xmit (struct tipc_link *l, struct sk_buff_head *list, struct sk_buff_head *xmitq)h]j)}(h^int tipc_link_xmit(struct tipc_link *l, struct sk_buff_head *list, struct sk_buff_head *xmitq)h](j3)}(hinth]hint}(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjWhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubj3)}(h h]h }(hjjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjWhhhjihMubjD)}(htipc_link_xmith]jJ)}(htipc_link_xmith]htipc_link_xmit}(hj|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjxubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjWhhhjihMubj )}(hL(struct tipc_link *l, struct sk_buff_head *list, struct sk_buff_head *xmitq)h](j)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj~sbc.tipc_link_xmitasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjLh]hl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff_head *listh](j!)}(hj$h]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hj'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]jc.tipc_link_xmitasbuh1hhjubj3)}(h h]h }(hjEhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hlisth]hlist}(hj`hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff_head *xmitqh](j!)}(hj$h]hstruct}(hjyhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjuubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjuubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_xmitasbuh1hhjuubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjuubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubjJ)}(hxmitqh]hxmitq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjuubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjWhhhjihMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjShhhjihMubah}(h]jNah ](jmjneh"]h$]h&]jrjs)jthuh1jhjihMhjPhhubjv)}(hhh]h)}(h0enqueue buffer list according to queue situationh]h0enqueue buffer list according to queue situation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjPhhhjihMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hXu**Parameters** ``struct tipc_link *l`` link to use ``struct sk_buff_head *list`` chain of buffers containing message ``struct sk_buff_head *xmitq`` returned list of packets to be sent by caller **Description** Consumes the buffer chain. Messages at TIPC_SYSTEM_IMPORTANCE are always accepted **Return** 0 if success, or errno: -ELINKCONG, -EMSGSIZE or -ENOBUFSh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh](j)}(h$``struct tipc_link *l`` link to use h](j)}(h``struct tipc_link *l``h]j)}(hj;h]hstruct tipc_link *l}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj5ubj)}(hhh]h)}(h link to useh]h link to use}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMhj2ubj)}(hB``struct sk_buff_head *list`` chain of buffers containing message h](j)}(h``struct sk_buff_head *list``h]j)}(hjth]hstruct sk_buff_head *list}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjnubj)}(hhh]h)}(h#chain of buffers containing messageh]h#chain of buffers containing message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhj2ubj)}(hM``struct sk_buff_head *xmitq`` returned list of packets to be sent by caller h](j)}(h``struct sk_buff_head *xmitq``h]j)}(hjh]hstruct sk_buff_head *xmitq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(h-returned list of packets to be sent by callerh]h-returned list of packets to be sent by caller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj2ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubh)}(hQConsumes the buffer chain. Messages at TIPC_SYSTEM_IMPORTANCE are always acceptedh]hQConsumes the buffer chain. Messages at TIPC_SYSTEM_IMPORTANCE are always accepted}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubh)}(h90 if success, or errno: -ELINKCONG, -EMSGSIZE or -ENOBUFSh]h90 if success, or errno: -ELINKCONG, -EMSGSIZE or -ENOBUFS}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j $link_retransmit_failure (C function)c.link_retransmit_failurehNtauh1jhjhhhNhNubj)}(hhh](j)}(hPbool link_retransmit_failure (struct tipc_link *l, struct tipc_link *r, int *rc)h]j)}(hObool link_retransmit_failure(struct tipc_link *l, struct tipc_link *r, int *rc)h](j3)}(hjgh]hbool}(hjThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjPhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubj3)}(h h]h }(hjbhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjPhhhjahMubjD)}(hlink_retransmit_failureh]jJ)}(hlink_retransmit_failureh]hlink_retransmit_failure}(hjthhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjpubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjPhhhjahMubj )}(h3(struct tipc_link *l, struct tipc_link *r, int *rc)h](j)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjvsbc.link_retransmit_failureasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjLh]hl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_link *rh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]jc.link_retransmit_failureasbuh1hhjubj3)}(h h]h }(hj=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hrh]hr}(hjXhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint *rch](j3)}(hinth]hint}(hjqhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjmubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjmubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubjJ)}(hrch]hrc}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjmubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjPhhhjahMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjLhhhjahMubah}(h]jGah ](jmjneh"]h$]h&]jrjs)jthuh1jhjahMhjIhhubjv)}(hhh]h)}(h#Detect repeated retransmit failuresh]h#Detect repeated retransmit failures}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjIhhhjahMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct tipc_link *l`` tipc link sender ``struct tipc_link *r`` tipc link receiver (= l in case of unicast) ``int *rc`` returned code **Return** true if the repeated retransmit failures happens, otherwise falseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh](j)}(h)``struct tipc_link *l`` tipc link sender h](j)}(h``struct tipc_link *l``h]j)}(hjh]hstruct tipc_link *l}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(htipc link senderh]htipc link sender}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hD``struct tipc_link *r`` tipc link receiver (= l in case of unicast) h](j)}(h``struct tipc_link *r``h]j)}(hj>h]hstruct tipc_link *r}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj8ubj)}(hhh]h)}(h+tipc link receiver (= l in case of unicast)h]h+tipc link receiver (= l in case of unicast)}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShMhjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShMhjubj)}(h``int *rc`` returned code h](j)}(h ``int *rc``h]j)}(hjwh]hint *rc}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjqubj)}(hhh]h)}(h returned codeh]h returned code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubh)}(hAtrue if the repeated retransmit failures happens, otherwise falseh]hAtrue if the repeated retransmit failures happens, otherwise false}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j "tipc_get_gap_ack_blks (C function)c.tipc_get_gap_ack_blkshNtauh1jhjhhhNhNubj)}(hhh](j)}(hmu16 tipc_get_gap_ack_blks (struct tipc_gap_ack_blks **ga, struct tipc_link *l, struct tipc_msg *hdr, bool uc)h]j)}(hlu16 tipc_get_gap_ack_blks(struct tipc_gap_ack_blks **ga, struct tipc_link *l, struct tipc_msg *hdr, bool uc)h](h)}(hhh]jJ)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jtipc_get_gap_ack_blkssbc.tipc_get_gap_ack_blksasbuh1hhjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMubjD)}(htipc_get_gap_ack_blksh]jJ)}(hjh]htipc_get_gap_ack_blks}(hj.hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj*ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMubj )}(hS(struct tipc_gap_ack_blks **ga, struct tipc_link *l, struct tipc_msg *hdr, bool uc)h](j)}(hstruct tipc_gap_ack_blks **gah](j!)}(hj$h]hstruct}(hjIhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjEubj3)}(h h]h }(hjVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjEubh)}(hhh]jJ)}(htipc_gap_ack_blksh]htipc_gap_ack_blks}(hjghhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]jc.tipc_get_gap_ack_blksasbuh1hhjEubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubjJ)}(hgah]hga}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjAubj)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_get_gap_ack_blksasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjLh]hl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjAubj)}(hstruct tipc_msg *hdrh](j!)}(hj$h]hstruct}(hj5hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj1ubj3)}(h h]h }(hjBhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj1ubh)}(hhh]jJ)}(htipc_msgh]htipc_msg}(hjShhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]jc.tipc_get_gap_ack_blksasbuh1hhj1ubj3)}(h h]h }(hjqhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubjJ)}(hhdrh]hhdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjAubj)}(hbool uch](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(huch]huc}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjAubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]h)}(h*get Gap ACK blocks from PROTOCOL/STATE_MSGh]h*get Gap ACK blocks from PROTOCOL/STATE_MSG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hXA**Parameters** ``struct tipc_gap_ack_blks **ga`` returned pointer to the Gap ACK blocks if any ``struct tipc_link *l`` the tipc link ``struct tipc_msg *hdr`` the PROTOCOL/STATE_MSG header ``bool uc`` desired Gap ACK blocks type, i.e. unicast (= 1) or broadcast (= 0) **Return** the total Gap ACK blocks sizeh](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh](j)}(hP``struct tipc_gap_ack_blks **ga`` returned pointer to the Gap ACK blocks if any h](j)}(h!``struct tipc_gap_ack_blks **ga``h]j)}(hj+h]hstruct tipc_gap_ack_blks **ga}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj%ubj)}(hhh]h)}(h-returned pointer to the Gap ACK blocks if anyh]h-returned pointer to the Gap ACK blocks if any}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhj"ubj)}(h&``struct tipc_link *l`` the tipc link h](j)}(h``struct tipc_link *l``h]j)}(hjdh]hstruct tipc_link *l}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj^ubj)}(hhh]h)}(h the tipc linkh]h the tipc link}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhMhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhMhj"ubj)}(h7``struct tipc_msg *hdr`` the PROTOCOL/STATE_MSG header h](j)}(h``struct tipc_msg *hdr``h]j)}(hjh]hstruct tipc_msg *hdr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(hthe PROTOCOL/STATE_MSG headerh]hthe PROTOCOL/STATE_MSG header}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj"ubj)}(hO``bool uc`` desired Gap ACK blocks type, i.e. unicast (= 1) or broadcast (= 0) h](j)}(h ``bool uc``h]j)}(hjh]hbool uc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj)}(hhh]h)}(hBdesired Gap ACK blocks type, i.e. unicast (= 1) or broadcast (= 0)h]hBdesired Gap ACK blocks type, i.e. unicast (= 1) or broadcast (= 0)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj"ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubh)}(hthe total Gap ACK blocks sizeh]hthe total Gap ACK blocks size}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j 'tipc_link_failover_prepare (C function)c.tipc_link_failover_preparehNtauh1jhjhhhNhNubj)}(hhh](j)}(hhvoid tipc_link_failover_prepare (struct tipc_link *l, struct tipc_link *tnl, struct sk_buff_head *xmitq)h]j)}(hgvoid tipc_link_failover_prepare(struct tipc_link *l, struct tipc_link *tnl, struct sk_buff_head *xmitq)h](j3)}(hvoidh]hvoid}(hjVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM;ubj3)}(h h]h }(hjehhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRhhhjdhM;ubjD)}(htipc_link_failover_prepareh]jJ)}(htipc_link_failover_prepareh]htipc_link_failover_prepare}(hjwhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjsubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjRhhhjdhM;ubj )}(hH(struct tipc_link *l, struct tipc_link *tnl, struct sk_buff_head *xmitq)h](j)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjysbc.tipc_link_failover_prepareasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjLh]hl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_link *tnlh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hj"hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]jc.tipc_link_failover_prepareasbuh1hhjubj3)}(h h]h }(hj@hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(htnlh]htnl}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff_head *xmitqh](j!)}(hj$h]hstruct}(hjthhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjpubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjpubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_failover_prepareasbuh1hhjpubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubjJ)}(hxmitqh]hxmitq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjpubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjRhhhjdhM;ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjNhhhjdhM;ubah}(h]jIah ](jmjneh"]h$]h&]jrjs)jthuh1jhjdhM;hjKhhubjv)}(hhh]h)}(hprepare tnl for link failoverh]hprepare tnl for link failover}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM2hjhhubah}(h]h ]h"]h$]h&]uh1juhjKhhhjdhM;ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1jhhhjhNhNubj)}(hX(**Parameters** ``struct tipc_link *l`` failover link ``struct tipc_link *tnl`` tunnel link ``struct sk_buff_head *xmitq`` queue for messages to be xmited **Description** This is a special version of the precursor - tipc_link_tnl_prepare(), see the tipc_node_link_failover() for detailsh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM6hjubj)}(hhh](j)}(h&``struct tipc_link *l`` failover link h](j)}(h``struct tipc_link *l``h]j)}(hj6h]hstruct tipc_link *l}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM7hj0ubj)}(hhh]h)}(h failover linkh]h failover link}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhM7hjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhM7hj-ubj)}(h&``struct tipc_link *tnl`` tunnel link h](j)}(h``struct tipc_link *tnl``h]j)}(hjoh]hstruct tipc_link *tnl}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM8hjiubj)}(hhh]h)}(h tunnel linkh]h tunnel link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhM8hj-ubj)}(h?``struct sk_buff_head *xmitq`` queue for messages to be xmited h](j)}(h``struct sk_buff_head *xmitq``h]j)}(hjh]hstruct sk_buff_head *xmitq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM9hjubj)}(hhh]h)}(hqueue for messages to be xmitedh]hqueue for messages to be xmited}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM9hj-ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM;hjubh)}(hsThis is a special version of the precursor - tipc_link_tnl_prepare(), see the tipc_node_link_failover() for detailsh]hsThis is a special version of the precursor - tipc_link_tnl_prepare(), see the tipc_node_link_failover() for details}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM3hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j "tipc_link_reset_stats (C function)c.tipc_link_reset_statshNtauh1jhjhhhNhNubj)}(hhh](j)}(h0void tipc_link_reset_stats (struct tipc_link *l)h]j)}(h/void tipc_link_reset_stats(struct tipc_link *l)h](j3)}(hvoidh]hvoid}(hj(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM ubj3)}(h h]h }(hj7hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$hhhj6hM ubjD)}(htipc_link_reset_statsh]jJ)}(htipc_link_reset_statsh]htipc_link_reset_stats}(hjIhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjEubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj$hhhj6hM ubj )}(h(struct tipc_link *l)h]j)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjehhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjaubj3)}(h h]h }(hjrhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjaubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjKsbc.tipc_link_reset_statsasbuh1hhjaubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjaubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubjJ)}(hjLh]hl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjaubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj]ubah}(h]h ]h"]h$]h&]hhuh1j hj$hhhj6hM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj hhhj6hM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj6hM hjhhubjv)}(hhh]h)}(hreset link statisticsh]hreset link statistics}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj6hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h9**Parameters** ``struct tipc_link *l`` pointer to linkh](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM hjubj)}(hhh]j)}(h'``struct tipc_link *l`` pointer to linkh](j)}(h``struct tipc_link *l``h]j)}(hj(h]hstruct tipc_link *l}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM hj"ubj)}(hhh]h)}(hpointer to linkh]hpointer to link}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM hj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_link_dump (C function)c.tipc_link_dumphNtauh1jhjhhhNhNubj)}(hhh](j)}(h@int tipc_link_dump (struct tipc_link *l, u16 dqueues, char *buf)h]j)}(h?int tipc_link_dump(struct tipc_link *l, u16 dqueues, char *buf)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj~hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMT ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj~hhhjhMT ubjD)}(htipc_link_dumph]jJ)}(htipc_link_dumph]htipc_link_dump}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj~hhhjhMT ubj )}(h-(struct tipc_link *l, u16 dqueues, char *buf)h](j)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_link_dumpasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjLh]hl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h u16 dqueuesh](h)}(hhh]jJ)}(hu16h]hu16}(hj3hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]jc.tipc_link_dumpasbuh1hhj,ubj3)}(h h]h }(hjQhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj,ubjJ)}(hdqueuesh]hdqueues}(hj_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h char *bufh](j3)}(hcharh]hchar}(hjxhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjtubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjtubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubjJ)}(hbufh]hbuf}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjtubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hj~hhhjhMT ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjzhhhjhMT ubah}(h]juah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMT hjwhhubjv)}(hhh]h)}(hdump TIPC link datah]hdump TIPC link data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMH hjhhubah}(h]h ]h"]h$]h&]uh1juhjwhhhjhMT ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX**Parameters** ``struct tipc_link *l`` tipc link to be dumped ``u16 dqueues`` bitmask to decide if any link queue to be dumped? - TIPC_DUMP_NONE: don't dump link queues - TIPC_DUMP_TRANSMQ: dump link transmq queue - TIPC_DUMP_BACKLOGQ: dump link backlog queue - TIPC_DUMP_DEFERDQ: dump link deferd queue - TIPC_DUMP_INPUTQ: dump link input queue - TIPC_DUMP_WAKEUP: dump link wakeup queue - TIPC_DUMP_ALL: dump all the link queues above ``char *buf`` returned buffer of dump data in formath](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chML hjubj)}(hhh](j)}(h/``struct tipc_link *l`` tipc link to be dumped h](j)}(h``struct tipc_link *l``h]j)}(hj h]hstruct tipc_link *l}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMI hjubj)}(hhh]h)}(htipc link to be dumpedh]htipc link to be dumped}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hMI hj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hMI hjubj)}(hXw``u16 dqueues`` bitmask to decide if any link queue to be dumped? - TIPC_DUMP_NONE: don't dump link queues - TIPC_DUMP_TRANSMQ: dump link transmq queue - TIPC_DUMP_BACKLOGQ: dump link backlog queue - TIPC_DUMP_DEFERDQ: dump link deferd queue - TIPC_DUMP_INPUTQ: dump link input queue - TIPC_DUMP_WAKEUP: dump link wakeup queue - TIPC_DUMP_ALL: dump all the link queues above h](j)}(h``u16 dqueues``h]j)}(hjEh]h u16 dqueues}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMQ hj?ubj)}(hhh]h)}(hXfbitmask to decide if any link queue to be dumped? - TIPC_DUMP_NONE: don't dump link queues - TIPC_DUMP_TRANSMQ: dump link transmq queue - TIPC_DUMP_BACKLOGQ: dump link backlog queue - TIPC_DUMP_DEFERDQ: dump link deferd queue - TIPC_DUMP_INPUTQ: dump link input queue - TIPC_DUMP_WAKEUP: dump link wakeup queue - TIPC_DUMP_ALL: dump all the link queues aboveh]hXhbitmask to decide if any link queue to be dumped? - TIPC_DUMP_NONE: don’t dump link queues - TIPC_DUMP_TRANSMQ: dump link transmq queue - TIPC_DUMP_BACKLOGQ: dump link backlog queue - TIPC_DUMP_DEFERDQ: dump link deferd queue - TIPC_DUMP_INPUTQ: dump link input queue - TIPC_DUMP_WAKEUP: dump link wakeup queue - TIPC_DUMP_ALL: dump all the link queues above}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMJ hj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhMQ hjubj)}(h4``char *buf`` returned buffer of dump data in formath](j)}(h ``char *buf``h]j)}(hjh]h char *buf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMS hjyubj)}(hhh]h)}(h&returned buffer of dump data in formath]h&returned buffer of dump data in format}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMR hjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhMS hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]tipc-link-interfacesah ]h"]tipc link interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC msg Interfacesh]hTIPC msg Interfaces}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_buf_acquire (C function)c.tipc_buf_acquirehNtauh1jhjhhhNhNubj)}(hhh](j)}(h7struct sk_buff * tipc_buf_acquire (u32 size, gfp_t gfp)h]j)}(h5struct sk_buff *tipc_buf_acquire(u32 size, gfp_t gfp)h](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKDubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKDubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jtipc_buf_acquiresbc.tipc_buf_acquireasbuh1hhjhhhjhKDubj3)}(h h]h }(hj2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKDubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKDubjD)}(htipc_buf_acquireh]jJ)}(hj/h]htipc_buf_acquire}(hjQhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjMubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKDubj )}(h(u32 size, gfp_t gfp)h](j)}(hu32 sizeh](h)}(hhh]jJ)}(hu32h]hu32}(hjohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j-c.tipc_buf_acquireasbuh1hhjhubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhubjJ)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjhubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjdubj)}(h gfp_t gfph](h)}(hhh]jJ)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j-c.tipc_buf_acquireasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hgfph]hgfp}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjdubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKDubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKDubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKDhjhhubjv)}(hhh]h)}(hcreates a TIPC message bufferh]hcreates a TIPC message buffer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK:hj hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKDubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%jjjuh1jhhhjhNhNubj)}(hXC**Parameters** ``u32 size`` message size (including TIPC header) ``gfp_t gfp`` memory allocation flags **Return** a new buffer with data pointers set to the specified size. **NOTE** Headroom is reserved to allow prepending of a data link header. There may also be unrequested tailroom present at the buffer's end.h](h)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK>hj)ubj)}(hhh](j)}(h2``u32 size`` message size (including TIPC header) h](j)}(h ``u32 size``h]j)}(hjNh]hu32 size}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK;hjHubj)}(hhh]h)}(h$message size (including TIPC header)h]h$message size (including TIPC header)}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchK;hjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchK;hjEubj)}(h&``gfp_t gfp`` memory allocation flags h](j)}(h ``gfp_t gfp``h]j)}(hjh]h gfp_t gfp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhj)ubh)}(h:a new buffer with data pointers set to the specified size.h]h:a new buffer with data pointers set to the specified size.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK>hj)ubh)}(h**NOTE**h]j)}(hjh]hNOTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK@hj)ubh)}(hHeadroom is reserved to allow prepending of a data link header. There may also be unrequested tailroom present at the buffer's end.h]hHeadroom is reserved to allow prepending of a data link header. There may also be unrequested tailroom present at the buffer’s end.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK@hj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_msg_append (C function)c.tipc_msg_appendhNtauh1jhjhhhNhNubj)}(hhh](j)}(hjint tipc_msg_append (struct tipc_msg *_hdr, struct msghdr *m, int dlen, int mss, struct sk_buff_head *txq)h]j)}(hiint tipc_msg_append(struct tipc_msg *_hdr, struct msghdr *m, int dlen, int mss, struct sk_buff_head *txq)h](j3)}(hinth]hint}(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*hhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKubj3)}(h h]h }(hj=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*hhhj<hKubjD)}(htipc_msg_appendh]jJ)}(htipc_msg_appendh]htipc_msg_append}(hjOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjKubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj*hhhj<hKubj )}(hV(struct tipc_msg *_hdr, struct msghdr *m, int dlen, int mss, struct sk_buff_head *txq)h](j)}(hstruct tipc_msg *_hdrh](j!)}(hj$h]hstruct}(hjkhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjgubj3)}(h h]h }(hjxhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjgubh)}(hhh]jJ)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjQsbc.tipc_msg_appendasbuh1hhjgubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubjJ)}(h_hdrh]h_hdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjgubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjcubj)}(hstruct msghdr *mh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hmsghdrh]hmsghdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_appendasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hmh]hm}(hj4hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjcubj)}(hint dlenh](j3)}(hinth]hint}(hjMhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjIubj3)}(h h]h }(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjIubjJ)}(hdlenh]hdlen}(hjihhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjIubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjcubj)}(hint mssh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj~ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj~ubjJ)}(hmssh]hmss}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjcubj)}(hstruct sk_buff_head *txqh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_appendasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(htxqh]htxq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjcubeh}(h]h ]h"]h$]h&]hhuh1j hj*hhhj<hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj&hhhj<hKubah}(h]j!ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj<hKhj#hhubjv)}(hhh]h)}(h/Append data to tail of an existing buffer queueh]h/Append data to tail of an existing buffer queue}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhj5hhubah}(h]h ]h"]h$]h&]uh1juhj#hhhj<hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1jhhhjhNhNubj)}(hX5**Parameters** ``struct tipc_msg *_hdr`` header to be used ``struct msghdr *m`` the data to be appended ``int dlen`` size of data to be appended ``int mss`` max allowable size of buffer ``struct sk_buff_head *txq`` queue to append to **Return** the number of 1k blocks appended or errno valueh](h)}(h**Parameters**h]j)}(hjZh]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjTubj)}(hhh](j)}(h,``struct tipc_msg *_hdr`` header to be used h](j)}(h``struct tipc_msg *_hdr``h]j)}(hjyh]hstruct tipc_msg *_hdr}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjsubj)}(hhh]h)}(hheader to be usedh]hheader to be used}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhKhjpubj)}(h-``struct msghdr *m`` the data to be appended h](j)}(h``struct msghdr *m``h]j)}(hjh]hstruct msghdr *m}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjubj)}(hhh]h)}(hthe data to be appendedh]hthe data to be appended}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjpubj)}(h)``int dlen`` size of data to be appended h](j)}(h ``int dlen``h]j)}(hjh]hint dlen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjubj)}(hhh]h)}(hsize of data to be appendedh]hsize of data to be appended}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjpubj)}(h)``int mss`` max allowable size of buffer h](j)}(h ``int mss``h]j)}(hj$h]hint mss}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjubj)}(hhh]h)}(hmax allowable size of bufferh]hmax allowable size of buffer}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hKhjpubj)}(h0``struct sk_buff_head *txq`` queue to append to h](j)}(h``struct sk_buff_head *txq``h]j)}(hj]h]hstruct sk_buff_head *txq}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjWubj)}(hhh]h)}(hqueue to append toh]hqueue to append to}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhKhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhKhjpubeh}(h]h ]h"]h$]h&]uh1jhjTubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjTubh)}(h/the number of 1k blocks appended or errno valueh]h/the number of 1k blocks appended or errno value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_msg_fragment (C function)c.tipc_msg_fragmenthNtauh1jhjhhhNhNubj)}(hhh](j)}(hoint tipc_msg_fragment (struct sk_buff *skb, const struct tipc_msg *hdr, int pktmax, struct sk_buff_head *frags)h]j)}(hnint tipc_msg_fragment(struct sk_buff *skb, const struct tipc_msg *hdr, int pktmax, struct sk_buff_head *frags)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM6ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM6ubjD)}(htipc_msg_fragmenth]jJ)}(htipc_msg_fragmenth]htipc_msg_fragment}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM6ubj )}(hY(struct sk_buff *skb, const struct tipc_msg *hdr, int pktmax, struct sk_buff_head *frags)h](j)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj8hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jjsbc.tipc_msg_fragmentasbuh1hhjubj3)}(h h]h }(hjXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hjshhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hconst struct tipc_msg *hdrh](j!)}(hjh]hconst}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jTc.tipc_msg_fragmentasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hhdrh]hhdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h int pktmaxh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hpktmaxh]hpktmax}(hj3hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff_head *fragsh](j!)}(hj$h]hstruct}(hjLhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjHubj3)}(h h]h }(hjYhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjHubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]jTc.tipc_msg_fragmentasbuh1hhjHubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjHubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubjJ)}(hfragsh]hfrags}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjHubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM6ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM6ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM6hjhhubjv)}(hhh]h)}(h*build a fragment skb list for TIPC messageh]h*build a fragment skb list for TIPC message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM,hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX^**Parameters** ``struct sk_buff *skb`` TIPC message skb ``const struct tipc_msg *hdr`` internal msg header to be put on the top of the fragments ``int pktmax`` max size of a fragment incl. the header ``struct sk_buff_head *frags`` returned fragment skb list **Return** 0 if the fragmentation is successful, otherwise: -EINVAL or -ENOMEMh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM0hjubj)}(hhh](j)}(h)``struct sk_buff *skb`` TIPC message skb h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM.hjubj)}(hhh]h)}(hTIPC message skbh]hTIPC message skb}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hM.hj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj#hM.hjubj)}(hY``const struct tipc_msg *hdr`` internal msg header to be put on the top of the fragments h](j)}(h``const struct tipc_msg *hdr``h]j)}(hjGh]hconst struct tipc_msg *hdr}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM/hjAubj)}(hhh]h)}(h9internal msg header to be put on the top of the fragmentsh]h9internal msg header to be put on the top of the fragments}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hM/hj]ubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj\hM/hjubj)}(h7``int pktmax`` max size of a fragment incl. the header h](j)}(h``int pktmax``h]j)}(hjh]h int pktmax}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM0hjzubj)}(hhh]h)}(h'max size of a fragment incl. the headerh]h'max size of a fragment incl. the header}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM0hjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhM0hjubj)}(h:``struct sk_buff_head *frags`` returned fragment skb list h](j)}(h``struct sk_buff_head *frags``h]j)}(hjh]hstruct sk_buff_head *frags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM1hjubj)}(hhh]h)}(hreturned fragment skb listh]hreturned fragment skb list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM1hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM1hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM3hjubh)}(hC0 if the fragmentation is successful, otherwise: -EINVAL or -ENOMEMh]hC0 if the fragmentation is successful, otherwise: -EINVAL or -ENOMEM}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM3hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_msg_build (C function)c.tipc_msg_buildhNtauh1jhjhhhNhNubj)}(hhh](j)}(hxint tipc_msg_build (struct tipc_msg *mhdr, struct msghdr *m, int offset, int dsz, int pktmax, struct sk_buff_head *list)h]j)}(hwint tipc_msg_build(struct tipc_msg *mhdr, struct msghdr *m, int offset, int dsz, int pktmax, struct sk_buff_head *list)h](j3)}(hinth]hint}(hj9hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj5hhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMtubj3)}(h h]h }(hjHhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj5hhhjGhMtubjD)}(htipc_msg_buildh]jJ)}(htipc_msg_buildh]htipc_msg_build}(hjZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj5hhhjGhMtubj )}(he(struct tipc_msg *mhdr, struct msghdr *m, int offset, int dsz, int pktmax, struct sk_buff_head *list)h](j)}(hstruct tipc_msg *mhdrh](j!)}(hj$h]hstruct}(hjvhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjrubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjrubh)}(hhh]jJ)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj\sbc.tipc_msg_buildasbuh1hhjrubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjrubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubjJ)}(hmhdrh]hmhdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjrubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjnubj)}(hstruct msghdr *mh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hmsghdrh]hmsghdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_buildasbuh1hhjubj3)}(h h]h }(hj$hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hj6h]hm}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjnubj)}(h int offseth](j3)}(hinth]hint}(hjWhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjSubj3)}(h h]h }(hjehhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjSubjJ)}(hoffseth]hoffset}(hjshhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjSubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjnubj)}(hint dszh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hdszh]hdsz}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjnubj)}(h int pktmaxh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hpktmaxh]hpktmax}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjnubj)}(hstruct sk_buff_head *listh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_buildasbuh1hhjubj3)}(h h]h }(hj2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hlisth]hlist}(hjMhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjnubeh}(h]h ]h"]h$]h&]hhuh1j hj5hhhjGhMtubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj1hhhjGhMtubah}(h]j,ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjGhMthj.hhubjv)}(hhh]h)}(h8create buffer chain containing specified header and datah]h8create buffer chain containing specified header and data}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMghjthhubah}(h]h ]h"]h$]h&]uh1juhj.hhhjGhMtubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX%**Parameters** ``struct tipc_msg *mhdr`` Message header, to be prepended to data ``struct msghdr *m`` User message ``int offset`` buffer offset for fragmented messages (FIXME) ``int dsz`` Total length of user data ``int pktmax`` Max packet size that can be used ``struct sk_buff_head *list`` Buffer or chain of buffers to be returned to caller **Description** Note that the recursive call we are making here is safe, since it can logically go only one further level down. **Return** message data size or errno: -ENOMEM, -EFAULTh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMkhjubj)}(hhh](j)}(hB``struct tipc_msg *mhdr`` Message header, to be prepended to data h](j)}(h``struct tipc_msg *mhdr``h]j)}(hjh]hstruct tipc_msg *mhdr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhhjubj)}(hhh]h)}(h'Message header, to be prepended to datah]h'Message header, to be prepended to data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhhjubj)}(h"``struct msghdr *m`` User message h](j)}(h``struct msghdr *m``h]j)}(hjh]hstruct msghdr *m}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMihjubj)}(hhh]h)}(h User messageh]h User message}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMihjubj)}(h=``int offset`` buffer offset for fragmented messages (FIXME) h](j)}(h``int offset``h]j)}(hj*h]h int offset}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMjhj$ubj)}(hhh]h)}(h-buffer offset for fragmented messages (FIXME)h]h-buffer offset for fragmented messages (FIXME)}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMjhj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hMjhjubj)}(h&``int dsz`` Total length of user data h](j)}(h ``int dsz``h]j)}(hjch]hint dsz}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMkhj]ubj)}(hhh]h)}(hTotal length of user datah]hTotal length of user data}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhMkhjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhMkhjubj)}(h0``int pktmax`` Max packet size that can be used h](j)}(h``int pktmax``h]j)}(hjh]h int pktmax}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMlhjubj)}(hhh]h)}(h Max packet size that can be usedh]h Max packet size that can be used}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMlhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMlhjubj)}(hR``struct sk_buff_head *list`` Buffer or chain of buffers to be returned to caller h](j)}(h``struct sk_buff_head *list``h]j)}(hjh]hstruct sk_buff_head *list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMmhjubj)}(hhh]h)}(h3Buffer or chain of buffers to be returned to callerh]h3Buffer or chain of buffers to be returned to caller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMmhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMmhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMohjubh)}(hoNote that the recursive call we are making here is safe, since it can logically go only one further level down.h]hoNote that the recursive call we are making here is safe, since it can logically go only one further level down.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMohjubh)}(h **Return**h]j)}(hj7h]hReturn}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMrhjubh)}(h,message data size or errno: -ENOMEM, -EFAULTh]h,message data size or errno: -ENOMEM, -EFAULT}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMrhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_msg_bundle (C function)c.tipc_msg_bundlehNtauh1jhjhhhNhNubj)}(hhh](j)}(hJbool tipc_msg_bundle (struct sk_buff *bskb, struct tipc_msg *msg, u32 max)h]j)}(hIbool tipc_msg_bundle(struct sk_buff *bskb, struct tipc_msg *msg, u32 max)h](j3)}(hjgh]hbool}(hj|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjxhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjxhhhjhMubjD)}(htipc_msg_bundleh]jJ)}(htipc_msg_bundleh]htipc_msg_bundle}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjxhhhjhMubj )}(h5(struct sk_buff *bskb, struct tipc_msg *msg, u32 max)h](j)}(hstruct sk_buff *bskbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_msg_bundleasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hbskbh]hbskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_msg *msgh](j!)}(hj$h]hstruct}(hj*hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj&ubj3)}(h h]h }(hj7hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj&ubh)}(hhh]jJ)}(htipc_msgh]htipc_msg}(hjHhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]jc.tipc_msg_bundleasbuh1hhj&ubj3)}(h h]h }(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj&ubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubjJ)}(hmsgh]hmsg}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 maxh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_bundleasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hmaxh]hmax}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjxhhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjthhhjhMubah}(h]joah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjqhhubjv)}(hhh]h)}(h6Append contents of a buffer to tail of an existing oneh]h6Append contents of a buffer to tail of an existing one}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjqhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct sk_buff *bskb`` the bundle buffer to append to ``struct tipc_msg *msg`` message to be appended ``u32 max`` max allowable size for the bundle buffer **Return** "true" if bundling has been performed, otherwise "false"h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubj)}(hhh](j)}(h8``struct sk_buff *bskb`` the bundle buffer to append to h](j)}(h``struct sk_buff *bskb``h]j)}(hj4h]hstruct sk_buff *bskb}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhj.ubj)}(hhh]h)}(hthe bundle buffer to append toh]hthe bundle buffer to append to}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMhj+ubj)}(h0``struct tipc_msg *msg`` message to be appended h](j)}(h``struct tipc_msg *msg``h]j)}(hjmh]hstruct tipc_msg *msg}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjgubj)}(hhh]h)}(hmessage to be appendedh]hmessage to be appended}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhMhj+ubj)}(h5``u32 max`` max allowable size for the bundle buffer h](j)}(h ``u32 max``h]j)}(hjh]hu32 max}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubj)}(hhh]h)}(h(max allowable size for the bundle bufferh]h(max allowable size for the bundle buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj+ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubh)}(h8"true" if bundling has been performed, otherwise "false"h]h@“true” if bundling has been performed, otherwise “false”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_msg_try_bundle (C function)c.tipc_msg_try_bundlehNtauh1jhjhhhNhNubj)}(hhh](j)}(hkbool tipc_msg_try_bundle (struct sk_buff *tskb, struct sk_buff **skb, u32 mss, u32 dnode, bool *new_bundle)h]j)}(hjbool tipc_msg_try_bundle(struct sk_buff *tskb, struct sk_buff **skb, u32 mss, u32 dnode, bool *new_bundle)h](j3)}(hjgh]hbool}(hj&hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"hhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMubj3)}(h h]h }(hj4hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"hhhj3hMubjD)}(htipc_msg_try_bundleh]jJ)}(htipc_msg_try_bundleh]htipc_msg_try_bundle}(hjFhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjBubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj"hhhj3hMubj )}(hR(struct sk_buff *tskb, struct sk_buff **skb, u32 mss, u32 dnode, bool *new_bundle)h](j)}(hstruct sk_buff *tskbh](j!)}(hj$h]hstruct}(hjbhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj^ubj3)}(h h]h }(hjohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjHsbc.tipc_msg_try_bundleasbuh1hhj^ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubjJ)}(htskbh]htskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjZubj)}(hstruct sk_buff **skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_try_bundleasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hj8hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjZubj)}(hu32 mssh](h)}(hhh]jJ)}(hu32h]hu32}(hjThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]jc.tipc_msg_try_bundleasbuh1hhjMubj3)}(h h]h }(hjrhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMubjJ)}(hmssh]hmss}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjMubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjZubj)}(h u32 dnodeh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_try_bundleasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hdnodeh]hdnode}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjZubj)}(hbool *new_bundleh](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h new_bundleh]h new_bundle}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjZubeh}(h]h ]h"]h$]h&]hhuh1j hj"hhhj3hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj3hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj3hMhjhhubjv)}(hhh]h)}(h+Try to bundle a new message to the last oneh]h+Try to bundle a new message to the last one}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhj0hhubah}(h]h ]h"]h$]h&]uh1juhjhhhj3hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1jhhhjhNhNubj)}(hX2**Parameters** ``struct sk_buff *tskb`` the last/target message to which the new one will be appended ``struct sk_buff **skb`` the new message skb pointer ``u32 mss`` max message size (header inclusive) ``u32 dnode`` destination node for the message ``bool *new_bundle`` if this call made a new bundle or not **Return** "true" if the new message skb is potential for bundling this time or later, in the case a bundling has been done this time, the skb is consumed (the skb pointer = NULL). Otherwise, "false" if the skb cannot be bundled at all.h](h)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjOubj)}(hhh](j)}(hW``struct sk_buff *tskb`` the last/target message to which the new one will be appended h](j)}(h``struct sk_buff *tskb``h]j)}(hjth]hstruct sk_buff *tskb}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjnubj)}(hhh]h)}(h=the last/target message to which the new one will be appendedh]h=the last/target message to which the new one will be appended}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhjkubj)}(h5``struct sk_buff **skb`` the new message skb pointer h](j)}(h``struct sk_buff **skb``h]j)}(hjh]hstruct sk_buff **skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubj)}(hhh]h)}(hthe new message skb pointerh]hthe new message skb pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjkubj)}(h0``u32 mss`` max message size (header inclusive) h](j)}(h ``u32 mss``h]j)}(hjh]hu32 mss}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubj)}(hhh]h)}(h#max message size (header inclusive)h]h#max message size (header inclusive)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjkubj)}(h/``u32 dnode`` destination node for the message h](j)}(h ``u32 dnode``h]j)}(hjh]h u32 dnode}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubj)}(hhh]h)}(h destination node for the messageh]h destination node for the message}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjkubj)}(h;``bool *new_bundle`` if this call made a new bundle or not h](j)}(h``bool *new_bundle``h]j)}(hjXh]hbool *new_bundle}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjRubj)}(hhh]h)}(h%if this call made a new bundle or noth]h%if this call made a new bundle or not}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhMhjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhMhjkubeh}(h]h ]h"]h$]h&]uh1jhjOubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjOubh)}(h"true" if the new message skb is potential for bundling this time or later, in the case a bundling has been done this time, the skb is consumed (the skb pointer = NULL). Otherwise, "false" if the skb cannot be bundled at all.h]h“true” if the new message skb is potential for bundling this time or later, in the case a bundling has been done this time, the skb is consumed (the skb pointer = NULL). Otherwise, “false” if the skb cannot be bundled at all.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_msg_extract (C function)c.tipc_msg_extracthNtauh1jhjhhhNhNubj)}(hhh](j)}(hLbool tipc_msg_extract (struct sk_buff *skb, struct sk_buff **iskb, int *pos)h]j)}(hKbool tipc_msg_extract(struct sk_buff *skb, struct sk_buff **iskb, int *pos)h](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMEubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMEubjD)}(htipc_msg_extracth]jJ)}(htipc_msg_extracth]htipc_msg_extract}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMEubj )}(h6(struct sk_buff *skb, struct sk_buff **iskb, int *pos)h](j)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj2hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jjsbc.tipc_msg_extractasbuh1hhjubj3)}(h h]h }(hjRhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hjmhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hstruct sk_buff **iskbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jNc.tipc_msg_extractasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hiskbh]hiskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hint *posh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hposh]hpos}(hj,hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMEubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMEubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMEhjhhubjv)}(hhh]h)}(h(extract bundled inner packet from bufferh]h(extract bundled inner packet from buffer}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM=hjShhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMEubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1jhhhjhNhNubj)}(hXd**Parameters** ``struct sk_buff *skb`` buffer to be extracted from. ``struct sk_buff **iskb`` extracted inner buffer, to be returned ``int *pos`` position in outer message of msg to be extracted. Returns position of next msg. Consumes outer buffer when last packet extracted **Return** true when there is an extracted buffer, otherwise falseh](h)}(h**Parameters**h]j)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMAhjrubj)}(hhh](j)}(h5``struct sk_buff *skb`` buffer to be extracted from. h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM>hjubj)}(hhh]h)}(hbuffer to be extracted from.h]hbuffer to be extracted from.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM>hjubj)}(hA``struct sk_buff **iskb`` extracted inner buffer, to be returned h](j)}(h``struct sk_buff **iskb``h]j)}(hjh]hstruct sk_buff **iskb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM?hjubj)}(hhh]h)}(h&extracted inner buffer, to be returnedh]h&extracted inner buffer, to be returned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM?hjubj)}(h``int *pos`` position in outer message of msg to be extracted. Returns position of next msg. Consumes outer buffer when last packet extracted h](j)}(h ``int *pos``h]j)}(hj h]hint *pos}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMBhjubj)}(hhh]h)}(hposition in outer message of msg to be extracted. Returns position of next msg. Consumes outer buffer when last packet extractedh]hposition in outer message of msg to be extracted. Returns position of next msg. Consumes outer buffer when last packet extracted}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM@hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMBhjubeh}(h]h ]h"]h$]h&]uh1jhjrubh)}(h **Return**h]j)}(hjEh]hReturn}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMDhjrubh)}(h7true when there is an extracted buffer, otherwise falseh]h7true when there is an extracted buffer, otherwise false}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMChjrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_msg_reverse (C function)c.tipc_msg_reversehNtauh1jhjhhhNhNubj)}(hhh](j)}(hCbool tipc_msg_reverse (u32 own_node, struct sk_buff **skb, int err)h]j)}(hBbool tipc_msg_reverse(u32 own_node, struct sk_buff **skb, int err)h](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMqubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMqubjD)}(htipc_msg_reverseh]jJ)}(htipc_msg_reverseh]htipc_msg_reverse}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMqubj )}(h-(u32 own_node, struct sk_buff **skb, int err)h](j)}(h u32 own_nodeh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_msg_reverseasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hown_nodeh]hown_node}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff **skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj.hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]jc.tipc_msg_reverseasbuh1hhj ubj3)}(h h]h }(hjLhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(hskbh]hskb}(hjthhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint errh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(herrh]herr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMqubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMqubah}(h]j}ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMqhjhhubjv)}(hhh]h)}(h8swap source and destination addresses and add error codeh]h8swap source and destination addresses and add error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMjhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMqubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX?**Parameters** ``u32 own_node`` originating node id for reversed message ``struct sk_buff **skb`` buffer containing message to be reversed; will be consumed ``int err`` error code to be set in message, if any Replaces consumed buffer with new one when successful **Return** true if success, otherwise falseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMnhjubj)}(hhh](j)}(h:``u32 own_node`` originating node id for reversed message h](j)}(h``u32 own_node``h]j)}(hjh]h u32 own_node}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMkhjubj)}(hhh]h)}(h(originating node id for reversed messageh]h(originating node id for reversed message}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hMkhj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hMkhj ubj)}(hT``struct sk_buff **skb`` buffer containing message to be reversed; will be consumed h](j)}(h``struct sk_buff **skb``h]j)}(hjMh]hstruct sk_buff **skb}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMlhjGubj)}(hhh]h)}(h:buffer containing message to be reversed; will be consumedh]h:buffer containing message to be reversed; will be consumed}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhMlhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhMlhj ubj)}(hj``int err`` error code to be set in message, if any Replaces consumed buffer with new one when successful h](j)}(h ``int err``h]j)}(hjh]hint err}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMnhjubj)}(hhh]h)}(h]error code to be set in message, if any Replaces consumed buffer with new one when successfulh]h]error code to be set in message, if any Replaces consumed buffer with new one when successful}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMmhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMnhj ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMphjubh)}(h true if success, otherwise falseh]h true if success, otherwise false}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMohjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j !tipc_msg_lookup_dest (C function)c.tipc_msg_lookup_desthNtauh1jhjhhhNhNubj)}(hhh](j)}(hJbool tipc_msg_lookup_dest (struct net *net, struct sk_buff *skb, int *err)h]j)}(hIbool tipc_msg_lookup_dest(struct net *net, struct sk_buff *skb, int *err)h](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMubjD)}(htipc_msg_lookup_desth]jJ)}(htipc_msg_lookup_desth]htipc_msg_lookup_dest}(hj'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj#ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMubj )}(h0(struct net *net, struct sk_buff *skb, int *err)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjChhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj?ubj3)}(h h]h }(hjPhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?ubh)}(hhh]jJ)}(hneth]hnet}(hjahhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]j)}jj)sbc.tipc_msg_lookup_destasbuh1hhj?ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubjJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj;ubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j}c.tipc_msg_lookup_destasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj;ubj)}(hint *errh](j3)}(hinth]hint}(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj!ubj3)}(h h]h }(hj3hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj!ubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubjJ)}(herrh]herr}(hjNhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj;ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]h)}(h-try to find new destination for named messageh]h-try to find new destination for named message}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjuhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX"**Parameters** ``struct net *net`` pointer to associated network namespace ``struct sk_buff *skb`` the buffer containing the message. ``int *err`` error code to be used by caller if lookup fails Does not consume buffer **Return** true if a destination is found, false otherwiseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubj)}(hhh](j)}(h<``struct net *net`` pointer to associated network namespace h](j)}(h``struct net *net``h]j)}(hjh]hstruct net *net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubj)}(hhh]h)}(h'pointer to associated network namespaceh]h'pointer to associated network namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h;``struct sk_buff *skb`` the buffer containing the message. h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubj)}(hhh]h)}(h"the buffer containing the message.h]h"the buffer containing the message.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hU``int *err`` error code to be used by caller if lookup fails Does not consume buffer h](j)}(h ``int *err``h]j)}(hj+h]hint *err}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhj%ubj)}(hhh]h)}(hGerror code to be used by caller if lookup fails Does not consume bufferh]hGerror code to be used by caller if lookup fails Does not consume buffer}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjgh]hReturn}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubh)}(h/true if a destination is found, false otherwiseh]h/true if a destination is found, false otherwise}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]tipc-msg-interfacesah ]h"]tipc msg interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Name Interfacesh]hTIPC Name Interfaces}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j service_range (C struct)c.service_rangehNtauh1jhjhhhNhNubj)}(hhh](j)}(h service_rangeh]j)}(hstruct service_rangeh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubjD)}(h service_rangeh]jJ)}(hjh]h service_range}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]h)}(h-container for all bindings of a service rangeh]h-container for all bindings of a service range}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK4hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hXz**Definition**:: struct service_range { u32 lower; u32 upper; struct rb_node tree_node; u32 max; struct list_head local_publ; struct list_head all_publ; }; **Members** ``lower`` service range lower bound ``upper`` service range upper bound ``tree_node`` member of service range RB tree ``max`` largest 'upper' in this node subtree ``local_publ`` list of identical publications made from this node Used by closest_first lookup and multicast lookup algorithm ``all_publ`` all publications identical to this one, whatever node and scope Used by round-robin lookup algorithmh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh:}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK8hj#ubj)}(hstruct service_range { u32 lower; u32 upper; struct rb_node tree_node; u32 max; struct list_head local_publ; struct list_head all_publ; };h]hstruct service_range { u32 lower; u32 upper; struct rb_node tree_node; u32 max; struct list_head local_publ; struct list_head all_publ; };}hjDsbah}(h]h ]h"]h$]h&]hhuh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK:hj#ubh)}(h **Members**h]j)}(hjUh]hMembers}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKChj#ubj)}(hhh](j)}(h$``lower`` service range lower bound h](j)}(h ``lower``h]j)}(hjth]hlower}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK6hjnubj)}(hhh]h)}(hservice range lower boundh]hservice range lower bound}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK6hjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhK6hjkubj)}(h$``upper`` service range upper bound h](j)}(h ``upper``h]j)}(hjh]hupper}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK7hjubj)}(hhh]h)}(hservice range upper boundh]hservice range upper bound}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK7hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK7hjkubj)}(h.``tree_node`` member of service range RB tree h](j)}(h ``tree_node``h]j)}(hjh]h tree_node}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK8hjubj)}(hhh]h)}(hmember of service range RB treeh]hmember of service range RB tree}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjkubj)}(h-``max`` largest 'upper' in this node subtree h](j)}(h``max``h]j)}(hjh]hmax}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK9hjubj)}(hhh]h)}(h$largest 'upper' in this node subtreeh]h(largest ‘upper’ in this node subtree}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hK9hj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hK9hjkubj)}(h~``local_publ`` list of identical publications made from this node Used by closest_first lookup and multicast lookup algorithm h](j)}(h``local_publ``h]j)}(hjXh]h local_publ}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK;hjRubj)}(hhh]h)}(hnlist of identical publications made from this node Used by closest_first lookup and multicast lookup algorithmh]hnlist of identical publications made from this node Used by closest_first lookup and multicast lookup algorithm}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK:hjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhK;hjkubj)}(hq``all_publ`` all publications identical to this one, whatever node and scope Used by round-robin lookup algorithmh](j)}(h ``all_publ``h]j)}(hjh]hall_publ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK``subscriptions`` list of subscriptions for this service type h](j)}(h``subscriptions``h]j)}(hj~h]h subscriptions}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKNhjxubj)}(hhh]h)}(h+list of subscriptions for this service typeh]h+list of subscriptions for this service type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKNhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhKNhjubj)}(hO``lock`` spinlock controlling access to pertaining service ranges/publications h](j)}(h``lock``h]j)}(hjh]hlock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKOhjubj)}(hhh]h)}(hEspinlock controlling access to pertaining service ranges/publicationsh]hEspinlock controlling access to pertaining service ranges/publications}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKOhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKOhjubj)}(h3``rcu`` RCU callback head used for deferred freeingh](j)}(h``rcu``h]j)}(hjh]hrcu}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKOhjubj)}(hhh]h)}(h+RCU callback head used for deferred freeingh]h+RCU callback head used for deferred freeing}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKPhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKOhjubeh}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j %service_range_foreach_match (C macro)c.service_range_foreach_matchhNtauh1jhjhhhNhNubj)}(hhh](j)}(hservice_range_foreach_matchh]j)}(hservice_range_foreach_matchh]jD)}(hservice_range_foreach_matchh]jJ)}(hjDh]hservice_range_foreach_match}(hjNhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjJubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjFhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKnubah}(h]h ]h"]h$]h&]hhjguh1jjhjihjBhhhjahKnubah}(h]j=ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjahKnhj?hhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhj?hhhjahKnubeh}(h]h ](jmacroeh"]h$]h&]jjjjzjjzjjjuh1jhhhjhNhNubh)}(h4``service_range_foreach_match (sr, sc, start, end)``h]j)}(hjh]h0service_range_foreach_match (sr, sc, start, end)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKphjhhubh block_quote)}(h6iterate over tipc service rbtree for each range match h]h)}(h5iterate over tipc service rbtree for each range matchh]h5iterate over tipc service rbtree for each range match}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKghjubah}(h]h ]h"]h$]h&]uh1jhjhKghjhhubj)}(hX**Parameters** ``sr`` the service range pointer as a loop cursor ``sc`` the pointer to tipc service which holds the service range rbtree ``start`` beginning of the search range (end >= start) for matching ``end`` end of the search range (end >= start) for matchingh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKkhjubj)}(hhh](j)}(h2``sr`` the service range pointer as a loop cursor h](j)}(h``sr``h]j)}(hjh]hsr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKihjubj)}(hhh]h)}(h*the service range pointer as a loop cursorh]h*the service range pointer as a loop cursor}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKihjubj)}(hH``sc`` the pointer to tipc service which holds the service range rbtree h](j)}(h``sc``h]j)}(hjh]hsc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKjhj ubj)}(hhh]h)}(h@the pointer to tipc service which holds the service range rbtreeh]h@the pointer to tipc service which holds the service range rbtree}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hKjhj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$hKjhjubj)}(hD``start`` beginning of the search range (end >= start) for matching h](j)}(h ``start``h]j)}(hjHh]hstart}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKkhjBubj)}(hhh]h)}(h9beginning of the search range (end >= start) for matchingh]h9beginning of the search range (end >= start) for matching}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hKkhj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hKkhjubj)}(h;``end`` end of the search range (end >= start) for matchingh](j)}(h``end``h]j)}(hjh]hend}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKmhj{ubj)}(hhh]h)}(h3end of the search range (end >= start) for matchingh]h3end of the search range (end >= start) for matching}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKlhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhKmhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j &service_range_match_first (C function)c.service_range_match_firsthNtauh1jhjhhhNhNubj)}(hhh](j)}(hXstruct service_range * service_range_match_first (struct rb_node *n, u32 start, u32 end)h]j)}(hVstruct service_range *service_range_match_first(struct rb_node *n, u32 start, u32 end)h](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubh)}(hhh]jJ)}(h service_rangeh]h service_range}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jservice_range_match_firstsbc.service_range_match_firstasbuh1hhjhhhjhKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubjD)}(hservice_range_match_firsth]jJ)}(hjh]hservice_range_match_first}(hj:hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj6ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubj )}(h'(struct rb_node *n, u32 start, u32 end)h](j)}(hstruct rb_node *nh](j!)}(hj$h]hstruct}(hjUhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjQubj3)}(h h]h }(hjbhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjQubh)}(hhh]jJ)}(hrb_nodeh]hrb_node}(hjshhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]jc.service_range_match_firstasbuh1hhjQubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjQubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubjJ)}(hjUh]hn}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjQubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjMubj)}(h u32 starth](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.service_range_match_firstasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hstarth]hstart}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjMubj)}(hu32 endh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.service_range_match_firstasbuh1hhjubj3)}(h h]h }(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hendh]hend}(hj;hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjMubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]h)}(h)find first service range matching a rangeh]h)find first service range matching a range}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKxhjbhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1jhhhjhNhNubj)}(hXf**Parameters** ``struct rb_node *n`` the root node of service range rbtree for searching ``u32 start`` beginning of the search range (end >= start) for matching ``u32 end`` end of the search range (end >= start) for matching **Return** the leftmost service range node in the rbtree that overlaps the specific range if any. Otherwise, returns NULL.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK|hjubj)}(hhh](j)}(hJ``struct rb_node *n`` the root node of service range rbtree for searching h](j)}(h``struct rb_node *n``h]j)}(hjh]hstruct rb_node *n}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKyhjubj)}(hhh]h)}(h3the root node of service range rbtree for searchingh]h3the root node of service range rbtree for searching}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKyhjubj)}(hH``u32 start`` beginning of the search range (end >= start) for matching h](j)}(h ``u32 start``h]j)}(hjh]h u32 start}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKzhjubj)}(hhh]h)}(h9beginning of the search range (end >= start) for matchingh]h9beginning of the search range (end >= start) for matching}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKzhjubj)}(h@``u32 end`` end of the search range (end >= start) for matching h](j)}(h ``u32 end``h]j)}(hjh]hu32 end}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK{hjubj)}(hhh]h)}(h3end of the search range (end >= start) for matchingh]h3end of the search range (end >= start) for matching}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hK{hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hK{hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjSh]hReturn}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK}hjubh)}(hothe leftmost service range node in the rbtree that overlaps the specific range if any. Otherwise, returns NULL.h]hothe leftmost service range node in the rbtree that overlaps the specific range if any. Otherwise, returns NULL.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK}hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j %service_range_match_next (C function)c.service_range_match_nexthNtauh1jhjhhhNhNubj)}(hhh](j)}(hWstruct service_range * service_range_match_next (struct rb_node *n, u32 start, u32 end)h]j)}(hUstruct service_range *service_range_match_next(struct rb_node *n, u32 start, u32 end)h](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubh)}(hhh]jJ)}(h service_rangeh]h service_range}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jservice_range_match_nextsbc.service_range_match_nextasbuh1hhjhhhjhKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubjD)}(hservice_range_match_nexth]jJ)}(hjh]hservice_range_match_next}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubj )}(h'(struct rb_node *n, u32 start, u32 end)h](j)}(hstruct rb_node *nh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hrb_nodeh]hrb_node}(hj0hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]jc.service_range_match_nextasbuh1hhjubj3)}(h h]h }(hjNhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjUh]hn}(hjihhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h u32 starth](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.service_range_match_nextasbuh1hhj}ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj}ubjJ)}(hstarth]hstart}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hu32 endh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.service_range_match_nextasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hendh]hend}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]h)}(h(find next service range matching a rangeh]h(find next service range matching a range}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:jj:jjjuh1jhhhjhNhNubj)}(hX**Parameters** ``struct rb_node *n`` a node in service range rbtree from which the searching starts ``u32 start`` beginning of the search range (end >= start) for matching ``u32 end`` end of the search range (end >= start) for matching **Return** the next service range node to the given node in the rbtree that overlaps the specific range if any. Otherwise, returns NULL.h](h)}(h**Parameters**h]j)}(hjDh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj>ubj)}(hhh](j)}(hU``struct rb_node *n`` a node in service range rbtree from which the searching starts h](j)}(h``struct rb_node *n``h]j)}(hjch]hstruct rb_node *n}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj]ubj)}(hhh]h)}(h>a node in service range rbtree from which the searching startsh]h>a node in service range rbtree from which the searching starts}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhKhjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhKhjZubj)}(hH``u32 start`` beginning of the search range (end >= start) for matching h](j)}(h ``u32 start``h]j)}(hjh]h u32 start}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjubj)}(hhh]h)}(h9beginning of the search range (end >= start) for matchingh]h9beginning of the search range (end >= start) for matching}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjZubj)}(h@``u32 end`` end of the search range (end >= start) for matching h](j)}(h ``u32 end``h]j)}(hjh]hu32 end}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjubj)}(hhh]h)}(h3end of the search range (end >= start) for matchingh]h3end of the search range (end >= start) for matching}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjZubeh}(h]h ]h"]h$]h&]uh1jhj>ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj>ubh)}(h}the next service range node to the given node in the rbtree that overlaps the specific range if any. Otherwise, returns NULL.h]h}the next service range node to the given node in the rbtree that overlaps the specific range if any. Otherwise, returns NULL.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_publ_create (C function)c.tipc_publ_createhNtauh1jhjhhhNhNubj)}(hhh](j)}(hcstruct publication * tipc_publ_create (struct tipc_uaddr *ua, struct tipc_socket_addr *sk, u32 key)h]j)}(hastruct publication *tipc_publ_create(struct tipc_uaddr *ua, struct tipc_socket_addr *sk, u32 key)h](j!)}(hj$h]hstruct}(hjUhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjQhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKubj3)}(h h]h }(hjchhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjQhhhjbhKubh)}(hhh]jJ)}(h publicationh]h publication}(hjthhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j)}jtipc_publ_createsbc.tipc_publ_createasbuh1hhjQhhhjbhKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjQhhhjbhKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhhjbhKubjD)}(htipc_publ_createh]jJ)}(hjh]htipc_publ_create}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjQhhhjbhKubj )}(h=(struct tipc_uaddr *ua, struct tipc_socket_addr *sk, u32 key)h](j)}(hstruct tipc_uaddr *uah](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_uaddrh]h tipc_uaddr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_publ_createasbuh1hhjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(huah]hua}(hj& hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_socket_addr *skh](j!)}(hj$h]hstruct}(hj? hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj; ubj3)}(h h]h }(hjL hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj; ubh)}(hhh]jJ)}(htipc_socket_addrh]htipc_socket_addr}(hj] hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_ modnameN classnameNjj)}j]jc.tipc_publ_createasbuh1hhj; ubj3)}(h h]h }(hj{ hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj; ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj; ubjJ)}(hskh]hsk}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj; ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 keyh](h)}(hhh]jJ)}(hu32h]hu32}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.tipc_publ_createasbuh1hhj ubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubjJ)}(hkeyh]hkey}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjQhhhjbhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjMhhhjbhKubah}(h]jHah ](jmjneh"]h$]h&]jrjs)jthuh1jhjbhKhjJhhubjv)}(hhh]h)}(hcreate a publication structureh]hcreate a publication structure}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj hhubah}(h]h ]h"]h$]h&]uh1juhjJhhhjbhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct tipc_uaddr *ua`` the service range the user is binding to ``struct tipc_socket_addr *sk`` the address of the socket that is bound ``u32 key`` publication keyh](h)}(h**Parameters**h]j)}(hj* h]h Parameters}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj( ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj$ ubj)}(hhh](j)}(hC``struct tipc_uaddr *ua`` the service range the user is binding to h](j)}(h``struct tipc_uaddr *ua``h]j)}(hjI h]hstruct tipc_uaddr *ua}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjC ubj)}(hhh]h)}(h(the service range the user is binding toh]h(the service range the user is binding to}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^ hKhj_ ubah}(h]h ]h"]h$]h&]uh1jhjC ubeh}(h]h ]h"]h$]h&]uh1jhj^ hKhj@ ubj)}(hH``struct tipc_socket_addr *sk`` the address of the socket that is bound h](j)}(h``struct tipc_socket_addr *sk``h]j)}(hj h]hstruct tipc_socket_addr *sk}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj| ubj)}(hhh]h)}(h'the address of the socket that is boundh]h'the address of the socket that is bound}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj| ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj@ ubj)}(h``u32 key`` publication keyh](j)}(h ``u32 key``h]j)}(hj h]hu32 key}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj ubj)}(hhh]h)}(hpublication keyh]hpublication key}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj@ ubeh}(h]h ]h"]h$]h&]uh1jhj$ ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_service_create (C function)c.tipc_service_createhNtauh1jhjhhhNhNubj)}(hhh](j)}(hRstruct tipc_service * tipc_service_create (struct net *net, struct tipc_uaddr *ua)h]j)}(hPstruct tipc_service *tipc_service_create(struct net *net, struct tipc_uaddr *ua)h](j!)}(hj$h]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMubj3)}(h h]h }(hj# hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhj" hMubh)}(hhh]jJ)}(h tipc_serviceh]h tipc_service}(hj4 hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj1 ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6 modnameN classnameNjj)}j]j)}jtipc_service_createsbc.tipc_service_createasbuh1hhj hhhj" hMubj3)}(h h]h }(hjU hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhj" hMubj)}(hjh]h*}(hjc hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj" hMubjD)}(htipc_service_createh]jJ)}(hjR h]htipc_service_create}(hjt hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjp ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj hhhj" hMubj )}(h((struct net *net, struct tipc_uaddr *ua)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj ubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubh)}(hhh]jJ)}(hneth]hnet}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jP c.tipc_service_createasbuh1hhj ubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(hneth]hnet}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hstruct tipc_uaddr *uah](j!)}(hj$h]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj ubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubh)}(hhh]jJ)}(h tipc_uaddrh]h tipc_uaddr}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jP c.tipc_service_createasbuh1hhj ubj3)}(h h]h }(hj; hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubj)}(hjh]h*}(hjI hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(huah]hua}(hjV hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1j hj hhhj" hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj hhhj" hMubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj" hMhj hhubjv)}(hhh]h)}(h3create a service structure for the specified 'type'h]h7create a service structure for the specified ‘type’}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj} hhubah}(h]h ]h"]h$]h&]uh1juhj hhhj" hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct net *net`` network namespace ``struct tipc_uaddr *ua`` address representing the service to be bound **Description** Allocates a single range structure and sets it to all 0's.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj ubj)}(hhh](j)}(h&``struct net *net`` network namespace h](j)}(h``struct net *net``h]j)}(hj h]hstruct net *net}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj ubj)}(hhh]h)}(hnetwork namespaceh]hnetwork namespace}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(hG``struct tipc_uaddr *ua`` address representing the service to be bound h](j)}(h``struct tipc_uaddr *ua``h]j)}(hj h]hstruct tipc_uaddr *ua}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj ubj)}(hhh]h)}(h,address representing the service to be boundh]h,address representing the service to be bound}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j)}(hj5 h]h Description}(hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3 ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj ubh)}(h:Allocates a single range structure and sets it to all 0's.h]hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(hjZh]hr}(hjKhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hstruct tipc_socket_addr *skh](j!)}(hj$h]hstruct}(hjchhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj_ubj3)}(h h]h }(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_ubh)}(hhh]jJ)}(htipc_socket_addrh]htipc_socket_addr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.tipc_service_remove_publasbuh1hhj_ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hu32 keyh](h)}(hhh]jJ)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.tipc_service_remove_publasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hkeyh]hkey}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1j hjv hhhj hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjr hhhj hMubah}(h]jm ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMhjo hhubjv)}(hhh]h)}(h#remove a publication from a serviceh]h#remove a publication from a service}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMzhj)hhubah}(h]h ]h"]h$]h&]uh1juhjo hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjDjjDjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct service_range *r`` service_range to remove publication from ``struct tipc_socket_addr *sk`` address publishing socket ``u32 key`` target publication keyh](h)}(h**Parameters**h]j)}(hjNh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM~hjHubj)}(hhh](j)}(hE``struct service_range *r`` service_range to remove publication from h](j)}(h``struct service_range *r``h]j)}(hjmh]hstruct service_range *r}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM{hjgubj)}(hhh]h)}(h(service_range to remove publication fromh]h(service_range to remove publication from}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhM{hjdubj)}(h:``struct tipc_socket_addr *sk`` address publishing socket h](j)}(h``struct tipc_socket_addr *sk``h]j)}(hjh]hstruct tipc_socket_addr *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM|hjubj)}(hhh]h)}(haddress publishing socketh]haddress publishing socket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM|hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM|hjdubj)}(h"``u32 key`` target publication keyh](j)}(h ``u32 key``h]j)}(hjh]hu32 key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM~hjubj)}(hhh]h)}(htarget publication keyh]htarget publication key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM}hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM~hjdubeh}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j #tipc_service_subscribe (C function)c.tipc_service_subscribehNtauh1jhjhhhNhNubj)}(hhh](j)}(hYvoid tipc_service_subscribe (struct tipc_service *service, struct tipc_subscription *sub)h]j)}(hXvoid tipc_service_subscribe(struct tipc_service *service, struct tipc_subscription *sub)h](j3)}(hvoidh]hvoid}(hj9hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj5hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMubj3)}(h h]h }(hjHhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj5hhhjGhMubjD)}(htipc_service_subscribeh]jJ)}(htipc_service_subscribeh]htipc_service_subscribe}(hjZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj5hhhjGhMubj )}(h=(struct tipc_service *service, struct tipc_subscription *sub)h](j)}(hstruct tipc_service *serviceh](j!)}(hj$h]hstruct}(hjvhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjrubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjrubh)}(hhh]jJ)}(h tipc_serviceh]h tipc_service}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj\sbc.tipc_service_subscribeasbuh1hhjrubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjrubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubjJ)}(hserviceh]hservice}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjrubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjnubj)}(hstruct tipc_subscription *subh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(htipc_subscriptionh]htipc_subscription}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_service_subscribeasbuh1hhjubj3)}(h h]h }(hj$hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hsubh]hsub}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjnubeh}(h]h ]h"]h$]h&]hhuh1j hj5hhhjGhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj1hhhjGhMubah}(h]j,ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjGhMhj.hhubjv)}(hhh]h)}(hattach a subscription, and optionally issue the prescribed number of events if there is any service range overlapping with the requested rangeh]hattach a subscription, and optionally issue the prescribed number of events if there is any service range overlapping with the requested range}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjfhhubah}(h]h ]h"]h$]h&]uh1juhj.hhhjGhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct tipc_service *service`` the tipc_service to attach the **sub** to ``struct tipc_subscription *sub`` the subscription to attachh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj)}(hhh](j)}(hK``struct tipc_service *service`` the tipc_service to attach the **sub** to h](j)}(h ``struct tipc_service *service``h]j)}(hjh]hstruct tipc_service *service}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj)}(hhh]h)}(h)the tipc_service to attach the **sub** toh](hthe tipc_service to attach the }(hjhhhNhNubj)}(h**sub**h]hsub}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh to}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h<``struct tipc_subscription *sub`` the subscription to attachh](j)}(h!``struct tipc_subscription *sub``h]j)}(hjh]hstruct tipc_subscription *sub}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj)}(hhh]h)}(hthe subscription to attachh]hthe subscription to attach}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j (tipc_nametbl_lookup_anycast (C function)c.tipc_nametbl_lookup_anycasthNtauh1jhjhhhNhNubj)}(hhh](j)}(hfbool tipc_nametbl_lookup_anycast (struct net *net, struct tipc_uaddr *ua, struct tipc_socket_addr *sk)h]j)}(hebool tipc_nametbl_lookup_anycast(struct net *net, struct tipc_uaddr *ua, struct tipc_socket_addr *sk)h](j3)}(hjgh]hbool}(hjOhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjKhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM9ubj3)}(h h]h }(hj]hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjKhhhj\hM9ubjD)}(htipc_nametbl_lookup_anycasth]jJ)}(htipc_nametbl_lookup_anycasth]htipc_nametbl_lookup_anycast}(hjohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjkubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjKhhhj\hM9ubj )}(hE(struct net *net, struct tipc_uaddr *ua, struct tipc_socket_addr *sk)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjqsbc.tipc_nametbl_lookup_anycastasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_uaddr *uah](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h tipc_uaddrh]h tipc_uaddr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_nametbl_lookup_anycastasbuh1hhjubj3)}(h h]h }(hj9hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(huah]hua}(hjThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_socket_addr *skh](j!)}(hj$h]hstruct}(hjmhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjiubj3)}(h h]h }(hjzhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjiubh)}(hhh]jJ)}(htipc_socket_addrh]htipc_socket_addr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_nametbl_lookup_anycastasbuh1hhjiubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjiubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjiubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjKhhhj\hM9ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjGhhhj\hM9ubah}(h]jBah ](jmjneh"]h$]h&]jrjs)jthuh1jhj\hM9hjDhhubjv)}(hhh]h)}(h.perform service instance to socket translationh]h.perform service instance to socket translation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM%hjhhubah}(h]h ]h"]h$]h&]uh1juhjDhhhj\hM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX**Parameters** ``struct net *net`` network namespace ``struct tipc_uaddr *ua`` service address to look up ``struct tipc_socket_addr *sk`` address to socket we want to find **Description** On entry, a non-zero 'sk->node' indicates the node where we want lookup to be performed, which may not be this one. On exit: - If lookup is deferred to another node, leave 'sk->node' unchanged and return 'true'. - If lookup is successful, set the 'sk->node' and 'sk->ref' (== portid) which represent the bound socket and return 'true'. - If lookup fails, return 'false' Note that for legacy users (node configured with Z.C.N address format) the 'closest-first' lookup algorithm must be maintained, i.e., if sk.node is 0 we must look in the local binding list firsth](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM)hj ubj)}(hhh](j)}(h&``struct net *net`` network namespace h](j)}(h``struct net *net``h]j)}(hj/h]hstruct net *net}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM&hj)ubj)}(hhh]h)}(hnetwork namespaceh]hnetwork namespace}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhM&hjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhM&hj&ubj)}(h5``struct tipc_uaddr *ua`` service address to look up h](j)}(h``struct tipc_uaddr *ua``h]j)}(hjhh]hstruct tipc_uaddr *ua}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM'hjbubj)}(hhh]h)}(hservice address to look uph]hservice address to look up}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hM'hj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hM'hj&ubj)}(hB``struct tipc_socket_addr *sk`` address to socket we want to find h](j)}(h``struct tipc_socket_addr *sk``h]j)}(hjh]hstruct tipc_socket_addr *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM(hjubj)}(hhh]h)}(h!address to socket we want to findh]h!address to socket we want to find}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM(hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM(hj&ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM*hj ubh)}(hsOn entry, a non-zero 'sk->node' indicates the node where we want lookup to be performed, which may not be this one.h]hwOn entry, a non-zero ‘sk->node’ indicates the node where we want lookup to be performed, which may not be this one.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM*hj ubh)}(hOn exit:h]hOn exit:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM-hj ubh)}(hhh](j)}(hTIf lookup is deferred to another node, leave 'sk->node' unchanged and return 'true'.h]h)}(hTIf lookup is deferred to another node, leave 'sk->node' unchanged and return 'true'.h]h\If lookup is deferred to another node, leave ‘sk->node’ unchanged and return ‘true’.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM/hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hyIf lookup is successful, set the 'sk->node' and 'sk->ref' (== portid) which represent the bound socket and return 'true'.h]h)}(hyIf lookup is successful, set the 'sk->node' and 'sk->ref' (== portid) which represent the bound socket and return 'true'.h]hIf lookup is successful, set the ‘sk->node’ and ‘sk->ref’ (== portid) which represent the bound socket and return ‘true’.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM1hj,ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h If lookup fails, return 'false' h]h)}(hIf lookup fails, return 'false'h]h#If lookup fails, return ‘false’}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM3hjEubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1hhj%hM/hj ubh)}(hNote that for legacy users (node configured with Z.C.N address format) the 'closest-first' lookup algorithm must be maintained, i.e., if sk.node is 0 we must look in the local binding list firsth]hNote that for legacy users (node configured with Z.C.N address format) the ‘closest-first’ lookup algorithm must be maintained, i.e., if sk.node is 0 we must look in the local binding list first}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM5hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j "tipc_nametbl_withdraw (C function)c.tipc_nametbl_withdrawhNtauh1jhjhhhNhNubj)}(hhh](j)}(hivoid tipc_nametbl_withdraw (struct net *net, struct tipc_uaddr *ua, struct tipc_socket_addr *sk, u32 key)h]j)}(hhvoid tipc_nametbl_withdraw(struct net *net, struct tipc_uaddr *ua, struct tipc_socket_addr *sk, u32 key)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMubjD)}(htipc_nametbl_withdrawh]jJ)}(htipc_nametbl_withdrawh]htipc_nametbl_withdraw}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMubj )}(hN(struct net *net, struct tipc_uaddr *ua, struct tipc_socket_addr *sk, u32 key)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_nametbl_withdrawasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hneth]hnet}(hj)hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_uaddr *uah](j!)}(hj$h]hstruct}(hjBhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj>ubj3)}(h h]h }(hjOhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj>ubh)}(hhh]jJ)}(h tipc_uaddrh]h tipc_uaddr}(hj`hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j c.tipc_nametbl_withdrawasbuh1hhj>ubj3)}(h h]h }(hj~hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj>ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubjJ)}(huah]hua}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_socket_addr *skh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(htipc_socket_addrh]htipc_socket_addr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.tipc_nametbl_withdrawasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskh]hsk}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 keyh](h)}(hhh]jJ)}(hu32h]hu32}(hj%hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j c.tipc_nametbl_withdrawasbuh1hhjubj3)}(h h]h }(hjChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hkeyh]hkey}(hjQhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]h)}(hwithdraw a service bindingh]hwithdraw a service binding}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjxhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct net *net`` network namespace ``struct tipc_uaddr *ua`` service address/range being unbound ``struct tipc_socket_addr *sk`` address of the socket being unbound from ``u32 key`` target publication keyh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj)}(hhh](j)}(h&``struct net *net`` network namespace h](j)}(h``struct net *net``h]j)}(hjh]hstruct net *net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj)}(hhh]h)}(hnetwork namespaceh]hnetwork namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h>``struct tipc_uaddr *ua`` service address/range being unbound h](j)}(h``struct tipc_uaddr *ua``h]j)}(hjh]hstruct tipc_uaddr *ua}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj)}(hhh]h)}(h#service address/range being unboundh]h#service address/range being unbound}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(hI``struct tipc_socket_addr *sk`` address of the socket being unbound from h](j)}(h``struct tipc_socket_addr *sk``h]j)}(hj.h]hstruct tipc_socket_addr *sk}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhj(ubj)}(hhh]h)}(h(address of the socket being unbound fromh]h(address of the socket being unbound from}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChMhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMhjubj)}(h"``u32 key`` target publication keyh](j)}(h ``u32 key``h]j)}(hjgh]hu32 key}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjaubj)}(hhh]h)}(htarget publication keyh]htarget publication key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j #tipc_nametbl_subscribe (C function)c.tipc_nametbl_subscribehNtauh1jhjhhhNhNubj)}(hhh](j)}(h;bool tipc_nametbl_subscribe (struct tipc_subscription *sub)h]j)}(h:bool tipc_nametbl_subscribe(struct tipc_subscription *sub)h](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM;ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM;ubjD)}(htipc_nametbl_subscribeh]jJ)}(htipc_nametbl_subscribeh]htipc_nametbl_subscribe}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM;ubj )}(h(struct tipc_subscription *sub)h]j)}(hstruct tipc_subscription *subh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(htipc_subscriptionh]htipc_subscription}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_nametbl_subscribeasbuh1hhjubj3)}(h h]h }(hj;hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hsubh]hsub}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM;ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM;ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM;hjhhubjv)}(hhh]h)}(h+add a subscription object to the name tableh]h+add a subscription object to the name table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM8hj}hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM;ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hG**Parameters** ``struct tipc_subscription *sub`` subscription to addh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM<hjubj)}(hhh]j)}(h5``struct tipc_subscription *sub`` subscription to addh](j)}(h!``struct tipc_subscription *sub``h]j)}(hjh]hstruct tipc_subscription *sub}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM>hjubj)}(hhh]h)}(hsubscription to addh]hsubscription to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j %tipc_nametbl_unsubscribe (C function)c.tipc_nametbl_unsubscribehNtauh1jhjhhhNhNubj)}(hhh](j)}(h=void tipc_nametbl_unsubscribe (struct tipc_subscription *sub)h]j)}(hsbc.tipc_nametbl_unsubscribeasbuh1hhjTubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjTubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubjJ)}(hsubh]hsub}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjTubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjPubah}(h]h ]h"]h$]h&]hhuh1j hjhhhj)hMZubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj)hMZubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj)hMZhjhhubjv)}(hhh]h)}(h,remove a subscription object from name tableh]h,remove a subscription object from name table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMWhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj)hMZubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hJ**Parameters** ``struct tipc_subscription *sub`` subscription to removeh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM[hjubj)}(hhh]j)}(h8``struct tipc_subscription *sub`` subscription to removeh](j)}(h!``struct tipc_subscription *sub``h]j)}(hjh]hstruct tipc_subscription *sub}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM]hjubj)}(hhh]h)}(hsubscription to removeh]hsubscription to remove}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMXhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hM]hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_service_delete (C function)c.tipc_service_deletehNtauh1jhjhhhNhNubj)}(hhh](j)}(hCvoid tipc_service_delete (struct net *net, struct tipc_service *sc)h]j)}(hBvoid tipc_service_delete(struct net *net, struct tipc_service *sc)h](j3)}(hvoidh]hvoid}(hjvhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjrhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjrhhhjhMubjD)}(htipc_service_deleteh]jJ)}(htipc_service_deleteh]htipc_service_delete}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjrhhhjhMubj )}(h*(struct net *net, struct tipc_service *sc)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_service_deleteasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hneth]hnet}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct tipc_service *sch](j!)}(hj$h]hstruct}(hj%hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj!ubj3)}(h h]h }(hj2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj!ubh)}(hhh]jJ)}(h tipc_serviceh]h tipc_service}(hjChhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]jc.tipc_service_deleteasbuh1hhj!ubj3)}(h h]h }(hjahhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj!ubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubjJ)}(hsch]hsc}(hj|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjrhhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjnhhhjhMubah}(h]jiah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjkhhubjv)}(hhh]h)}(h2purge all publications for a service and delete ith]h2purge all publications for a service and delete it}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjkhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h|**Parameters** ``struct net *net`` the associated network namespace ``struct tipc_service *sc`` tipc_service to deleteh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj)}(hhh](j)}(h5``struct net *net`` the associated network namespace h](j)}(h``struct net *net``h]j)}(hjh]hstruct net *net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj)}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h2``struct tipc_service *sc`` tipc_service to deleteh](j)}(h``struct tipc_service *sc``h]j)}(hj h]hstruct tipc_service *sc}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj)}(hhh]h)}(htipc_service to deleteh]htipc_service to delete}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j publ_to_item (C function)c.publ_to_itemhNtauh1jhjhhhNhNubj)}(hhh](j)}(h?void publ_to_item (struct distr_item *i, struct publication *p)h]j)}(h>void publ_to_item(struct distr_item *i, struct publication *p)h](j3)}(hvoidh]hvoid}(hjzhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjvhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK1ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjvhhhjhK1ubjD)}(h publ_to_itemh]jJ)}(h publ_to_itemh]h publ_to_item}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjvhhhjhK1ubj )}(h-(struct distr_item *i, struct publication *p)h](j)}(hstruct distr_item *ih](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h distr_itemh]h distr_item}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.publ_to_itemasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hih]hi}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct publication *ph](j!)}(hj$h]hstruct}(hj)hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj%ubj3)}(h h]h }(hj6hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%ubh)}(hhh]jJ)}(h publicationh]h publication}(hjGhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]jc.publ_to_itemasbuh1hhj%ubj3)}(h h]h }(hjehhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%ubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubjJ)}(hjh]hp}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjvhhhjhK1ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjrhhhjhK1ubah}(h]jmah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhK1hjohhubjv)}(hhh]h)}(h-add publication info to a publication messageh]h-add publication info to a publication message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK-hjhhubah}(h]h ]h"]h$]h&]uh1juhjohhhjhK1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hx**Parameters** ``struct distr_item *i`` location of item in the message ``struct publication *p`` publication infoh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK1hjubj)}(hhh](j)}(h9``struct distr_item *i`` location of item in the message h](j)}(h``struct distr_item *i``h]j)}(hjh]hstruct distr_item *i}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK/hjubj)}(hhh]h)}(hlocation of item in the messageh]hlocation of item in the message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK/hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK/hjubj)}(h*``struct publication *p`` publication infoh](j)}(h``struct publication *p``h]j)}(hj#h]hstruct publication *p}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK1hjubj)}(hhh]h)}(hpublication infoh]hpublication info}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK.hj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hK1hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j named_prepare_buf (C function)c.named_prepare_bufhNtauh1jhjhhhNhNubj)}(hhh](j)}(hRstruct sk_buff * named_prepare_buf (struct net *net, u32 type, u32 size, u32 dest)h]j)}(hPstruct sk_buff *named_prepare_buf(struct net *net, u32 type, u32 size, u32 dest)h](j!)}(hj$h]hstruct}(hj}hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjyhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKCubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjyhhhjhKCubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jnamed_prepare_bufsbc.named_prepare_bufasbuh1hhjyhhhjhKCubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjyhhhjhKCubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyhhhjhKCubjD)}(hnamed_prepare_bufh]jJ)}(hjh]hnamed_prepare_buf}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjyhhhjhKCubj )}(h/(struct net *net, u32 type, u32 size, u32 dest)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hneth]hnet}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.named_prepare_bufasbuh1hhjubj3)}(h h]h }(hj3 hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjA hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hneth]hnet}(hjN hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 typeh](h)}(hhh]jJ)}(hu32h]hu32}(hjj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjg ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjl modnameN classnameNjj)}j]jc.named_prepare_bufasbuh1hhjc ubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjc ubjJ)}(htypeh]htype}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjc ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 sizeh](h)}(hhh]jJ)}(hu32h]hu32}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.named_prepare_bufasbuh1hhj ubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubjJ)}(hsizeh]hsize}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 desth](h)}(hhh]jJ)}(hu32h]hu32}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.named_prepare_bufasbuh1hhj ubj3)}(h h]h }(hj!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubjJ)}(hdesth]hdest}(hj&!hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjyhhhjhKCubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjuhhhjhKCubah}(h]jpah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKChjrhhubjv)}(hhh]h)}(h+allocate & initialize a publication messageh]h+allocate & initialize a publication message}(hjP!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK;hjM!hhubah}(h]h ]h"]h$]h&]uh1juhjrhhhjhKCubeh}(h]h ](jfunctioneh"]h$]h&]jjjjh!jjh!jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct net *net`` the associated network namespace ``u32 type`` message type ``u32 size`` payload size ``u32 dest`` destination node **Description** The buffer returned is of size INT_H_SIZE + payload sizeh](h)}(h**Parameters**h]j)}(hjr!h]h Parameters}(hjt!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp!ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK?hjl!ubj)}(hhh](j)}(h5``struct net *net`` the associated network namespace h](j)}(h``struct net *net``h]j)}(hj!h]hstruct net *net}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKhj!ubj)}(hhh]h)}(h payload sizeh]h payload size}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hK>hj"ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj"hK>hj!ubj)}(h``u32 dest`` destination node h](j)}(h ``u32 dest``h]j)}(hj<"h]hu32 dest}(hj>"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:"ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK?hj6"ubj)}(hhh]h)}(hdestination nodeh]hdestination node}(hjU"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQ"hK?hjR"ubah}(h]h ]h"]h$]h&]uh1jhj6"ubeh}(h]h ]h"]h$]h&]uh1jhjQ"hK?hj!ubeh}(h]h ]h"]h$]h&]uh1jhjl!ubh)}(h**Description**h]j)}(hjw"h]h Description}(hjy"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju"ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKAhjl!ubh)}(h8The buffer returned is of size INT_H_SIZE + payload sizeh]h8The buffer returned is of size INT_H_SIZE + payload size}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKAhjl!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_named_publish (C function)c.tipc_named_publishhNtauh1jhjhhhNhNubj)}(hhh](j)}(hLstruct sk_buff * tipc_named_publish (struct net *net, struct publication *p)h]j)}(hJstruct sk_buff *tipc_named_publish(struct net *net, struct publication *p)h](j!)}(hj$h]hstruct}(hj"hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj"hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKXubj3)}(h h]h }(hj"hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"hhhj"hKXubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj"hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j)}jtipc_named_publishsbc.tipc_named_publishasbuh1hhj"hhhj"hKXubj3)}(h h]h }(hj"hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"hhhj"hKXubj)}(hjh]h*}(hj #hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"hhhj"hKXubjD)}(htipc_named_publishh]jJ)}(hj"h]htipc_named_publish}(hj#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj#ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj"hhhj"hKXubj )}(h((struct net *net, struct publication *p)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj6#hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj2#ubj3)}(h h]h }(hjC#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj2#ubh)}(hhh]jJ)}(hneth]hnet}(hjT#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjQ#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjV#modnameN classnameNjj)}j]j"c.tipc_named_publishasbuh1hhj2#ubj3)}(h h]h }(hjr#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj2#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2#ubjJ)}(hneth]hnet}(hj#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj2#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj.#ubj)}(hstruct publication *ph](j!)}(hj$h]hstruct}(hj#hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj#ubj3)}(h h]h }(hj#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#ubh)}(hhh]jJ)}(h publicationh]h publication}(hj#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]j"c.tipc_named_publishasbuh1hhj#ubj3)}(h h]h }(hj#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubjJ)}(hjh]hp}(hj#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj.#ubeh}(h]h ]h"]h$]h&]hhuh1j hj"hhhj"hKXubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj"hhhj"hKXubah}(h]j"ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj"hKXhj"hhubjv)}(hhh]h)}(h5tell other nodes about a new publication by this nodeh]h5tell other nodes about a new publication by this node}(hj&$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKThj#$hhubah}(h]h ]h"]h$]h&]uh1juhj"hhhj"hKXubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>$jj>$jjjuh1jhhhjhNhNubj)}(hw**Parameters** ``struct net *net`` the associated network namespace ``struct publication *p`` the new publicationh](h)}(h**Parameters**h]j)}(hjH$h]h Parameters}(hjJ$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF$ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKXhjB$ubj)}(hhh](j)}(h5``struct net *net`` the associated network namespace h](j)}(h``struct net *net``h]j)}(hjg$h]hstruct net *net}(hji$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje$ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKUhja$ubj)}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|$hKUhj}$ubah}(h]h ]h"]h$]h&]uh1jhja$ubeh}(h]h ]h"]h$]h&]uh1jhj|$hKUhj^$ubj)}(h-``struct publication *p`` the new publicationh](j)}(h``struct publication *p``h]j)}(hj$h]hstruct publication *p}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKWhj$ubj)}(hhh]h)}(hthe new publicationh]hthe new publication}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKVhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$hKWhj^$ubeh}(h]h ]h"]h$]h&]uh1jhjB$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_named_withdraw (C function)c.tipc_named_withdrawhNtauh1jhjhhhNhNubj)}(hhh](j)}(hMstruct sk_buff * tipc_named_withdraw (struct net *net, struct publication *p)h]j)}(hKstruct sk_buff *tipc_named_withdraw(struct net *net, struct publication *p)h](j!)}(hj$h]hstruct}(hj$hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj$hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKvubj3)}(h h]h }(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$hhhj%hKvubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj%hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j)}jtipc_named_withdrawsbc.tipc_named_withdrawasbuh1hhj$hhhj%hKvubj3)}(h h]h }(hj:%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$hhhj%hKvubj)}(hjh]h*}(hjH%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj%hKvubjD)}(htipc_named_withdrawh]jJ)}(hj7%h]htipc_named_withdraw}(hjY%hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjU%ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj$hhhj%hKvubj )}(h((struct net *net, struct publication *p)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjt%hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjp%ubj3)}(h h]h }(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjp%ubh)}(hhh]jJ)}(hneth]hnet}(hj%hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j5%c.tipc_named_withdrawasbuh1hhjp%ubj3)}(h h]h }(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjp%ubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjp%ubjJ)}(hneth]hnet}(hj%hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjp%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjl%ubj)}(hstruct publication *ph](j!)}(hj$h]hstruct}(hj%hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj%ubj3)}(h h]h }(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%ubh)}(hhh]jJ)}(h publicationh]h publication}(hj&hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j5%c.tipc_named_withdrawasbuh1hhj%ubj3)}(h h]h }(hj &hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%ubj)}(hjh]h*}(hj.&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubjJ)}(hjh]hp}(hj;&hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjl%ubeh}(h]h ]h"]h$]h&]hhuh1j hj$hhhj%hKvubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj$hhhj%hKvubah}(h]j$ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj%hKvhj$hhubjv)}(hhh]h)}(h;tell other nodes about a withdrawn publication by this nodeh]h;tell other nodes about a withdrawn publication by this node}(hjd&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKrhja&hhubah}(h]h ]h"]h$]h&]uh1juhj$hhhj%hKvubeh}(h]h ](jfunctioneh"]h$]h&]jjjj|&jj|&jjjuh1jhhhjhNhNubj)}(h}**Parameters** ``struct net *net`` the associated network namespace ``struct publication *p`` the withdrawn publicationh](h)}(h**Parameters**h]j)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKvhj&ubj)}(hhh](j)}(h5``struct net *net`` the associated network namespace h](j)}(h``struct net *net``h]j)}(hj&h]hstruct net *net}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKshj&ubj)}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hKshj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hKshj&ubj)}(h3``struct publication *p`` the withdrawn publicationh](j)}(h``struct publication *p``h]j)}(hj&h]hstruct publication *p}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKuhj&ubj)}(hhh]h)}(hthe withdrawn publicationh]hthe withdrawn publication}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKthj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hKuhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j named_distribute (C function)c.named_distributehNtauh1jhjhhhNhNubj)}(hhh](j)}(hovoid named_distribute (struct net *net, struct sk_buff_head *list, u32 dnode, struct list_head *pls, u16 seqno)h]j)}(hnvoid named_distribute(struct net *net, struct sk_buff_head *list, u32 dnode, struct list_head *pls, u16 seqno)h](j3)}(hvoidh]hvoid}(hj8'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj4'hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKubj3)}(h h]h }(hjG'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj4'hhhjF'hKubjD)}(hnamed_distributeh]jJ)}(hnamed_distributeh]hnamed_distribute}(hjY'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjU'ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj4'hhhjF'hKubj )}(hY(struct net *net, struct sk_buff_head *list, u32 dnode, struct list_head *pls, u16 seqno)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hju'hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjq'ubj3)}(h h]h }(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjq'ubh)}(hhh]jJ)}(hneth]hnet}(hj'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jj['sbc.named_distributeasbuh1hhjq'ubj3)}(h h]h }(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjq'ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq'ubjJ)}(hneth]hnet}(hj'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjq'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjm'ubj)}(hstruct sk_buff_head *listh](j!)}(hj$h]hstruct}(hj'hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj'ubj3)}(h h]h }(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'ubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j'c.named_distributeasbuh1hhj'ubj3)}(h h]h }(hj#(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'ubj)}(hjh]h*}(hj1(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubjJ)}(hlisth]hlist}(hj>(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjm'ubj)}(h u32 dnodeh](h)}(hhh]jJ)}(hu32h]hu32}(hjZ(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjW(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\(modnameN classnameNjj)}j]j'c.named_distributeasbuh1hhjS(ubj3)}(h h]h }(hjx(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjS(ubjJ)}(hdnodeh]hdnode}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjS(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjm'ubj)}(hstruct list_head *plsh](j!)}(hj$h]hstruct}(hj(hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj(ubj3)}(h h]h }(hj(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj(ubh)}(hhh]jJ)}(h list_headh]h list_head}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j'c.named_distributeasbuh1hhj(ubj3)}(h h]h }(hj(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubjJ)}(hplsh]hpls}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjm'ubj)}(h u16 seqnoh](h)}(hhh]jJ)}(hu16h]hu16}(hj)hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j'c.named_distributeasbuh1hhj )ubj3)}(h h]h }(hj0)hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj )ubjJ)}(hseqnoh]hseqno}(hj>)hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj )ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjm'ubeh}(h]h ]h"]h$]h&]hhuh1j hj4'hhhjF'hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj0'hhhjF'hKubah}(h]j+'ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjF'hKhj-'hhubjv)}(hhh]h)}(h7prepare name info for bulk distribution to another nodeh]h7prepare name info for bulk distribution to another node}(hjh)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKhje)hhubah}(h]h ]h"]h$]h&]uh1juhj-'hhhjF'hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj)jj)jjjuh1jhhhjhNhNubj)}(hXW**Parameters** ``struct net *net`` the associated network namespace ``struct sk_buff_head *list`` list of messages (buffers) to be returned from this function ``u32 dnode`` node to be updated ``struct list_head *pls`` linked list of publication items to be packed into buffer chain ``u16 seqno`` sequence number for this messageh](h)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKhj)ubj)}(hhh](j)}(h5``struct net *net`` the associated network namespace h](j)}(h``struct net *net``h]j)}(hj)h]hstruct net *net}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKhj)ubj)}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hKhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)hKhj)ubj)}(h[``struct sk_buff_head *list`` list of messages (buffers) to be returned from this function h](j)}(h``struct sk_buff_head *list``h]j)}(hj)h]hstruct sk_buff_head *list}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKhj)ubj)}(hhh]h)}(h6ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjY6hMhj@6hhubjv)}(hhh]h)}(h re-initialize local publicationsh]h re-initialize local publications}(hj 7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMhj7hhubah}(h]h ]h"]h$]h&]uh1juhj@6hhhjY6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#7jj#7jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct net *net`` the associated network namespace **Description** This routine is called whenever TIPC networking is enabled. All name table entries published by this node are updated to reflect the node's new network address.h](h)}(h**Parameters**h]j)}(hj-7h]h Parameters}(hj/7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+7ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMhj'7ubj)}(hhh]j)}(h5``struct net *net`` the associated network namespace h](j)}(h``struct net *net``h]j)}(hjL7h]hstruct net *net}(hjN7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ7ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMhjF7ubj)}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hje7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhja7hMhjb7ubah}(h]h ]h"]h$]h&]uh1jhjF7ubeh}(h]h ]h"]h$]h&]uh1jhja7hMhjC7ubah}(h]h ]h"]h$]h&]uh1jhj'7ubh)}(h**Description**h]j)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMhj'7ubh)}(hThis routine is called whenever TIPC networking is enabled. All name table entries published by this node are updated to reflect the node's new network address.h]hThis routine is called whenever TIPC networking is enabled. All name table entries published by this node are updated to reflect the node’s new network address.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMhj'7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]tipc-name-interfacesah ]h"]tipc name interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Node Management Interfacesh]hTIPC Node Management Interfaces}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_node (C struct) c.tipc_nodehNtauh1jhj7hhhNhNubj)}(hhh](j)}(h tipc_nodeh]j)}(hstruct tipc_nodeh](j!)}(hj$h]hstruct}(hj7hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj7hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKubj3)}(h h]h }(hj7hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7hhhj7hKubjD)}(h tipc_nodeh]jJ)}(hj7h]h tipc_node}(hj8hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj8ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj7hhhj7hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj7hhhj7hKubah}(h]j7ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj7hKhj7hhubjv)}(hhh]h)}(hTIPC node structureh]hTIPC node structure}(hj'8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKShj$8hhubah}(h]h ]h"]h$]h&]uh1juhj7hhhj7hKubeh}(h]h ](jstructeh"]h$]h&]jjjj?8jj?8jjjuh1jhhhj7hNhNubj)}(hX **Definition**:: struct tipc_node { u32 addr; struct kref kref; rwlock_t lock; struct net *net; struct hlist_node hash; int active_links[2]; struct tipc_link_entry links[MAX_BEARERS]; struct tipc_bclink_entry bc_entry; int action_flags; struct list_head list; int state; bool preliminary; bool failover_sent; u16 sync_point; int link_cnt; u16 working_links; u16 capabilities; u32 signature; u32 link_id; u8 peer_id[16]; char peer_id_string[NODE_ID_STR_LEN]; struct list_head publ_list; struct list_head conn_sks; unsigned long keepalive_intv; struct timer_list timer; struct rcu_head rcu; unsigned long delete_at; struct net *peer_net; u32 peer_hash_mix; #ifdef CONFIG_TIPC_CRYPTO; struct tipc_crypto *crypto_rx; #endif; }; **Members** ``addr`` network address of node ``kref`` reference counter to node object ``lock`` rwlock governing access to structure ``net`` the applicable net namespace ``hash`` links to adjacent nodes in unsorted hash chain ``active_links`` bearer ids of active links, used as index into links[] array ``links`` array containing references to all links to node ``bc_entry`` broadcast link entry ``action_flags`` bit mask of different types of node actions ``list`` links to adjacent nodes in sorted list of cluster's nodes ``state`` connectivity state vs peer node ``preliminary`` a preliminary node or not ``failover_sent`` failover sent or not ``sync_point`` sequence number where synch/failover is finished ``link_cnt`` number of links to node ``working_links`` number of working links to node (both active and standby) ``capabilities`` bitmap, indicating peer node's functional capabilities ``signature`` node instance identifier ``link_id`` local and remote bearer ids of changing link, if any ``peer_id`` 128-bit ID of peer ``peer_id_string`` ID string of peer ``publ_list`` list of publications ``conn_sks`` list of connections (FIXME) ``keepalive_intv`` keepalive interval in milliseconds ``timer`` node's keepalive timer ``rcu`` rcu struct for tipc_node ``delete_at`` indicates the time for deleting a down node ``peer_net`` peer's net namespace ``peer_hash_mix`` hash for this peer (FIXME) ``crypto_rx`` RX crypto handlerh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjK8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG8ubh:}(hjG8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKWhjC8ubj)}(hX:struct tipc_node { u32 addr; struct kref kref; rwlock_t lock; struct net *net; struct hlist_node hash; int active_links[2]; struct tipc_link_entry links[MAX_BEARERS]; struct tipc_bclink_entry bc_entry; int action_flags; struct list_head list; int state; bool preliminary; bool failover_sent; u16 sync_point; int link_cnt; u16 working_links; u16 capabilities; u32 signature; u32 link_id; u8 peer_id[16]; char peer_id_string[NODE_ID_STR_LEN]; struct list_head publ_list; struct list_head conn_sks; unsigned long keepalive_intv; struct timer_list timer; struct rcu_head rcu; unsigned long delete_at; struct net *peer_net; u32 peer_hash_mix; #ifdef CONFIG_TIPC_CRYPTO; struct tipc_crypto *crypto_rx; #endif; };h]hX:struct tipc_node { u32 addr; struct kref kref; rwlock_t lock; struct net *net; struct hlist_node hash; int active_links[2]; struct tipc_link_entry links[MAX_BEARERS]; struct tipc_bclink_entry bc_entry; int action_flags; struct list_head list; int state; bool preliminary; bool failover_sent; u16 sync_point; int link_cnt; u16 working_links; u16 capabilities; u32 signature; u32 link_id; u8 peer_id[16]; char peer_id_string[NODE_ID_STR_LEN]; struct list_head publ_list; struct list_head conn_sks; unsigned long keepalive_intv; struct timer_list timer; struct rcu_head rcu; unsigned long delete_at; struct net *peer_net; u32 peer_hash_mix; #ifdef CONFIG_TIPC_CRYPTO; struct tipc_crypto *crypto_rx; #endif; };}hjd8sbah}(h]h ]h"]h$]h&]hhuh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKYhjC8ubh)}(h **Members**h]j)}(hju8h]hMembers}(hjw8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs8ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chK|hjC8ubj)}(hhh](j)}(h!``addr`` network address of node h](j)}(h``addr``h]j)}(hj8h]haddr}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKUhj8ubj)}(hhh]h)}(hnetwork address of nodeh]hnetwork address of node}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hKUhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hKUhj8ubj)}(h*``kref`` reference counter to node object h](j)}(h``kref``h]j)}(hj8h]hkref}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKVhj8ubj)}(hhh]h)}(h reference counter to node objecth]h reference counter to node object}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hKVhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hKVhj8ubj)}(h.``lock`` rwlock governing access to structure h](j)}(h``lock``h]j)}(hj9h]hlock}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKWhj9ubj)}(hhh]h)}(h$rwlock governing access to structureh]h$rwlock governing access to structure}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKWhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hKWhj8ubj)}(h%``net`` the applicable net namespace h](j)}(h``net``h]j)}(hj?9h]hnet}(hjA9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=9ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKXhj99ubj)}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hjX9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT9hKXhjU9ubah}(h]h ]h"]h$]h&]uh1jhj99ubeh}(h]h ]h"]h$]h&]uh1jhjT9hKXhj8ubj)}(h8``hash`` links to adjacent nodes in unsorted hash chain h](j)}(h``hash``h]j)}(hjx9h]hhash}(hjz9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv9ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKYhjr9ubj)}(hhh]h)}(h.links to adjacent nodes in unsorted hash chainh]h.links to adjacent nodes in unsorted hash chain}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKYhj9ubah}(h]h ]h"]h$]h&]uh1jhjr9ubeh}(h]h ]h"]h$]h&]uh1jhj9hKYhj8ubj)}(hN``active_links`` bearer ids of active links, used as index into links[] array h](j)}(h``active_links``h]j)}(hj9h]h active_links}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKZhj9ubj)}(hhh]h)}(h;ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chK`hj:;ubj)}(hhh]h)}(hfailover sent or noth]hfailover sent or not}(hjY;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU;hK`hjV;ubah}(h]h ]h"]h$]h&]uh1jhj:;ubeh}(h]h ]h"]h$]h&]uh1jhjU;hK`hj8ubj)}(h@``sync_point`` sequence number where synch/failover is finished h](j)}(h``sync_point``h]j)}(hjy;h]h sync_point}(hj{;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw;ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKahjs;ubj)}(hhh]h)}(h0sequence number where synch/failover is finishedh]h0sequence number where synch/failover is finished}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hKahj;ubah}(h]h ]h"]h$]h&]uh1jhjs;ubeh}(h]h ]h"]h$]h&]uh1jhj;hKahj8ubj)}(h%``link_cnt`` number of links to node h](j)}(h ``link_cnt``h]j)}(hj;h]hlink_cnt}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKdhj;ubj)}(hhh]h)}(hnumber of links to nodeh]hnumber of links to node}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hKdhj;ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;hKdhj8ubj)}(hL``working_links`` number of working links to node (both active and standby) h](j)}(h``working_links``h]j)}(hj;h]h working_links}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKchj;ubj)}(hhh]h)}(h9number of working links to node (both active and standby)h]h9number of working links to node (both active and standby)}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hKchj<ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj<hKchj8ubj)}(hH``capabilities`` bitmap, indicating peer node's functional capabilities h](j)}(h``capabilities``h]j)}(hj$<h]h capabilities}(hj&<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"<ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKehj<ubj)}(hhh]h)}(h6bitmap, indicating peer node's functional capabilitiesh]h8bitmap, indicating peer node’s functional capabilities}(hj=<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9<hKehj:<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj9<hKehj8ubj)}(h'``signature`` node instance identifier h](j)}(h ``signature``h]j)}(hj]<h]h signature}(hj_<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[<ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKfhjW<ubj)}(hhh]h)}(hnode instance identifierh]hnode instance identifier}(hjv<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjr<hKfhjs<ubah}(h]h ]h"]h$]h&]uh1jhjW<ubeh}(h]h ]h"]h$]h&]uh1jhjr<hKfhj8ubj)}(hA``link_id`` local and remote bearer ids of changing link, if any h](j)}(h ``link_id``h]j)}(hj<h]hlink_id}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKghj<ubj)}(hhh]h)}(h4local and remote bearer ids of changing link, if anyh]h4local and remote bearer ids of changing link, if any}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hKghj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj<hKghj8ubj)}(h``peer_id`` 128-bit ID of peer h](j)}(h ``peer_id``h]j)}(hj<h]hpeer_id}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKhhj<ubj)}(hhh]h)}(h128-bit ID of peerh]h128-bit ID of peer}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hKhhj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj<hKhhj8ubj)}(h%``peer_id_string`` ID string of peer h](j)}(h``peer_id_string``h]j)}(hj=h]hpeer_id_string}(hj =hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKihj=ubj)}(hhh]h)}(hID string of peerh]hID string of peer}(hj!=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hKihj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hKihj8ubj)}(h#``publ_list`` list of publications h](j)}(h ``publ_list``h]j)}(hjA=h]h publ_list}(hjC=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?=ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKjhj;=ubj)}(hhh]h)}(hlist of publicationsh]hlist of publications}(hjZ=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV=hKjhjW=ubah}(h]h ]h"]h$]h&]uh1jhj;=ubeh}(h]h ]h"]h$]h&]uh1jhjV=hKjhj8ubj)}(h)``conn_sks`` list of connections (FIXME) h](j)}(h ``conn_sks``h]j)}(hjz=h]hconn_sks}(hj|=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx=ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKkhjt=ubj)}(hhh]h)}(hlist of connections (FIXME)h]hlist of connections (FIXME)}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hKkhj=ubah}(h]h ]h"]h$]h&]uh1jhjt=ubeh}(h]h ]h"]h$]h&]uh1jhj=hKkhj8ubj)}(h6``keepalive_intv`` keepalive interval in milliseconds h](j)}(h``keepalive_intv``h]j)}(hj=h]hkeepalive_intv}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKmhj=ubj)}(hhh]h)}(h"keepalive interval in millisecondsh]h"keepalive interval in milliseconds}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hKmhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hKmhj8ubj)}(h!``timer`` node's keepalive timer h](j)}(h ``timer``h]j)}(hj=h]htimer}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKlhj=ubj)}(hhh]h)}(hnode's keepalive timerh]hnode’s keepalive timer}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hKlhj>ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj>hKlhj8ubj)}(h!``rcu`` rcu struct for tipc_node h](j)}(h``rcu``h]j)}(hj%>h]hrcu}(hj'>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#>ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKnhj>ubj)}(hhh]h)}(hrcu struct for tipc_nodeh]hrcu struct for tipc_node}(hj>>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:>hKnhj;>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj:>hKnhj8ubj)}(h:``delete_at`` indicates the time for deleting a down node h](j)}(h ``delete_at``h]j)}(hj^>h]h delete_at}(hj`>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\>ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKohjX>ubj)}(hhh]h)}(h+indicates the time for deleting a down nodeh]h+indicates the time for deleting a down node}(hjw>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjs>hKohjt>ubah}(h]h ]h"]h$]h&]uh1jhjX>ubeh}(h]h ]h"]h$]h&]uh1jhjs>hKohj8ubj)}(h"``peer_net`` peer's net namespace h](j)}(h ``peer_net``h]j)}(hj>h]hpeer_net}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKphj>ubj)}(hhh]h)}(hpeer's net namespaceh]hpeer’s net namespace}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hKphj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hKphj8ubj)}(h-``peer_hash_mix`` hash for this peer (FIXME) h](j)}(h``peer_hash_mix``h]j)}(hj>h]h peer_hash_mix}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKqhj>ubj)}(hhh]h)}(hhash for this peer (FIXME)h]hhash for this peer (FIXME)}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hKqhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hKqhj8ubj)}(h``crypto_rx`` RX crypto handlerh](j)}(h ``crypto_rx``h]j)}(hj ?h]h crypto_rx}(hj ?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKqhj?ubj)}(hhh]h)}(hRX crypto handlerh]hRX crypto handler}(hj"?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKrhj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hKqhj8ubeh}(h]h ]h"]h$]h&]uh1jhjC8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  tipc_node_crypto_rx (C function)c.tipc_node_crypto_rxhNtauh1jhj7hhhNhNubj)}(hhh](j)}(h@struct tipc_crypto * tipc_node_crypto_rx (struct tipc_node *__n)h]j)}(h>struct tipc_crypto *tipc_node_crypto_rx(struct tipc_node *__n)h](j!)}(hj$h]hstruct}(hjc?hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj_?hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubj3)}(h h]h }(hjq?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_?hhhjp?hMubh)}(hhh]jJ)}(h tipc_cryptoh]h tipc_crypto}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jtipc_node_crypto_rxsbc.tipc_node_crypto_rxasbuh1hhj_?hhhjp?hMubj3)}(h h]h }(hj?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_?hhhjp?hMubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_?hhhjp?hMubjD)}(htipc_node_crypto_rxh]jJ)}(hj?h]htipc_node_crypto_rx}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj_?hhhjp?hMubj )}(h(struct tipc_node *__n)h]j)}(hstruct tipc_node *__nh](j!)}(hj$h]hstruct}(hj?hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj?ubj3)}(h h]h }(hj?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?ubh)}(hhh]jJ)}(h tipc_nodeh]h tipc_node}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j?c.tipc_node_crypto_rxasbuh1hhj?ubj3)}(h h]h }(hj@hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?ubj)}(hjh]h*}(hj'@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubjJ)}(h__nh]h__n}(hj4@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?ubah}(h]h ]h"]h$]h&]hhuh1j hj_?hhhjp?hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj[?hhhjp?hMubah}(h]jV?ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjp?hMhjX?hhubjv)}(hhh]h)}(h#Retrieve crypto RX handle from nodeh]h#Retrieve crypto RX handle from node}(hj^@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj[@hhubah}(h]h ]h"]h$]h&]uh1juhjX?hhhjp?hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjv@jjv@jjjuh1jhhhj7hNhNubj)}(hl**Parameters** ``struct tipc_node *__n`` target tipc_node **Note** node ref counter must be held first!h](h)}(h**Parameters**h]j)}(hj@h]h Parameters}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~@ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjz@ubj)}(hhh]j)}(h+``struct tipc_node *__n`` target tipc_node h](j)}(h``struct tipc_node *__n``h]j)}(hj@h]hstruct tipc_node *__n}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj@ubj)}(hhh]h)}(htarget tipc_nodeh]htarget tipc_node}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1jhjz@ubh)}(h**Note**h]j)}(hj@h]hNote}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjz@ubh)}(h$node ref counter must be held first!h]h$node ref counter must be held first!}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjz@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j  __tipc_node_link_up (C function)c.__tipc_node_link_uphNtauh1jhj7hhhNhNubj)}(hhh](j)}(hYvoid __tipc_node_link_up (struct tipc_node *n, int bearer_id, struct sk_buff_head *xmitq)h]j)}(hXvoid __tipc_node_link_up(struct tipc_node *n, int bearer_id, struct sk_buff_head *xmitq)h](j3)}(hvoidh]hvoid}(hjAhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjAhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMXubj3)}(h h]h }(hj.AhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjAhhhj-AhMXubjD)}(h__tipc_node_link_uph]jJ)}(h__tipc_node_link_uph]h__tipc_node_link_up}(hj@AhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjBhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjAubj)}(hjh]h*}(hjLBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubjJ)}(hxmitqh]hxmitq}(hjYBhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjAubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjTAubeh}(h]h ]h"]h$]h&]hhuh1j hjAhhhj-AhMXubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjAhhhj-AhMXubah}(h]jAah ](jmjneh"]h$]h&]jrjs)jthuh1jhj-AhMXhjAhhubjv)}(hhh]h)}(hhandle addition of linkh]hhandle addition of link}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMQhjBhhubah}(h]h ]h"]h$]h&]uh1juhjAhhhj-AhMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1jhhhj7hNhNubj)}(hX**Parameters** ``struct tipc_node *n`` target tipc_node ``int bearer_id`` id of the bearer ``struct sk_buff_head *xmitq`` queue for messages to be xmited on Node lock must be held by caller Link becomes active (alone or shared) or standby, depending on its priority.h](h)}(h**Parameters**h]j)}(hjBh]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMUhjBubj)}(hhh](j)}(h)``struct tipc_node *n`` target tipc_node h](j)}(h``struct tipc_node *n``h]j)}(hjBh]hstruct tipc_node *n}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMRhjBubj)}(hhh]h)}(htarget tipc_nodeh]htarget tipc_node}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhMRhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhMRhjBubj)}(h#``int bearer_id`` id of the bearer h](j)}(h``int bearer_id``h]j)}(hjBh]h int bearer_id}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMShjBubj)}(hhh]h)}(hid of the bearerh]hid of the bearer}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChMShjCubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjChMShjBubj)}(h``struct sk_buff_head *xmitq`` queue for messages to be xmited on Node lock must be held by caller Link becomes active (alone or shared) or standby, depending on its priority.h](j)}(h``struct sk_buff_head *xmitq``h]j)}(hj6Ch]hstruct sk_buff_head *xmitq}(hj8ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Cubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMUhj0Cubj)}(hhh]h)}(hqueue for messages to be xmited on Node lock must be held by caller Link becomes active (alone or shared) or standby, depending on its priority.h]hqueue for messages to be xmited on Node lock must be held by caller Link becomes active (alone or shared) or standby, depending on its priority.}(hjOChhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMThjLCubah}(h]h ]h"]h$]h&]uh1jhj0Cubeh}(h]h ]h"]h$]h&]uh1jhjKChMUhjBubeh}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_node_link_up (C function)c.tipc_node_link_uphNtauh1jhj7hhhNhNubj)}(hhh](j)}(hWvoid tipc_node_link_up (struct tipc_node *n, int bearer_id, struct sk_buff_head *xmitq)h]j)}(hVvoid tipc_node_link_up(struct tipc_node *n, int bearer_id, struct sk_buff_head *xmitq)h](j3)}(hvoidh]hvoid}(hjChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjChhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubj3)}(h h]h }(hjChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjChhhjChMubjD)}(htipc_node_link_uph]jJ)}(htipc_node_link_uph]htipc_node_link_up}(hjChhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjChhhjChMubj )}(h@(struct tipc_node *n, int bearer_id, struct sk_buff_head *xmitq)h](j)}(hstruct tipc_node *nh](j!)}(hj$h]hstruct}(hjChhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjCubj3)}(h h]h }(hjChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjCubh)}(hhh]jJ)}(h tipc_nodeh]h tipc_node}(hjChhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jjCsbc.tipc_node_link_upasbuh1hhjCubj3)}(h h]h }(hj DhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjCubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubjJ)}(hjUh]hn}(hj&DhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjCubj)}(h int bearer_idh](j3)}(hinth]hint}(hj>DhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:Dubj3)}(h h]h }(hjLDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:DubjJ)}(h bearer_idh]h bearer_id}(hjZDhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj:Dubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjCubj)}(hstruct sk_buff_head *xmitqh](j!)}(hj$h]hstruct}(hjsDhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjoDubj3)}(h h]h }(hjDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjoDubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjDhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]jDc.tipc_node_link_upasbuh1hhjoDubj3)}(h h]h }(hjDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjoDubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoDubjJ)}(hxmitqh]hxmitq}(hjDhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjoDubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjCubeh}(h]h ]h"]h$]h&]hhuh1j hjChhhjChMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjChhhjChMubah}(h]jCah ](jmjneh"]h$]h&]jrjs)jthuh1jhjChMhjChhubjv)}(hhh]h)}(hhandle addition of linkh]hhandle addition of link}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjDhhubah}(h]h ]h"]h$]h&]uh1juhjChhhjChMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj Ejj Ejjjuh1jhhhj7hNhNubj)}(hX**Parameters** ``struct tipc_node *n`` target tipc_node ``int bearer_id`` id of the bearer ``struct sk_buff_head *xmitq`` queue for messages to be xmited on **Description** Link becomes active (alone or shared) or standby, depending on its priority.h](h)}(h**Parameters**h]j)}(hjEh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjEubj)}(hhh](j)}(h)``struct tipc_node *n`` target tipc_node h](j)}(h``struct tipc_node *n``h]j)}(hj5Eh]hstruct tipc_node *n}(hj7EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3Eubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj/Eubj)}(hhh]h)}(htarget tipc_nodeh]htarget tipc_node}(hjNEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJEhMhjKEubah}(h]h ]h"]h$]h&]uh1jhj/Eubeh}(h]h ]h"]h$]h&]uh1jhjJEhMhj,Eubj)}(h#``int bearer_id`` id of the bearer h](j)}(h``int bearer_id``h]j)}(hjnEh]h int bearer_id}(hjpEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlEubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjhEubj)}(hhh]h)}(hid of the bearerh]hid of the bearer}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjEubah}(h]h ]h"]h$]h&]uh1jhjhEubeh}(h]h ]h"]h$]h&]uh1jhjEhMhj,Eubj)}(hB``struct sk_buff_head *xmitq`` queue for messages to be xmited on h](j)}(h``struct sk_buff_head *xmitq``h]j)}(hjEh]hstruct sk_buff_head *xmitq}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjEubj)}(hhh]h)}(h"queue for messages to be xmited onh]h"queue for messages to be xmited on}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhMhj,Eubeh}(h]h ]h"]h$]h&]uh1jhjEubh)}(h**Description**h]j)}(hjEh]h Description}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjEubh)}(hLLink becomes active (alone or shared) or standby, depending on its priority.h]hLLink becomes active (alone or shared) or standby, depending on its priority.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j $tipc_node_link_failover (C function)c.tipc_node_link_failoverhNtauh1jhj7hhhNhNubj)}(hhh](j)}(hzvoid tipc_node_link_failover (struct tipc_node *n, struct tipc_link *l, struct tipc_link *tnl, struct sk_buff_head *xmitq)h]j)}(hyvoid tipc_node_link_failover(struct tipc_node *n, struct tipc_link *l, struct tipc_link *tnl, struct sk_buff_head *xmitq)h](j3)}(hvoidh]hvoid}(hj'FhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#FhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubj3)}(h h]h }(hj6FhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#Fhhhj5FhMubjD)}(htipc_node_link_failoverh]jJ)}(htipc_node_link_failoverh]htipc_node_link_failover}(hjHFhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjDFubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj#Fhhhj5FhMubj )}(h](struct tipc_node *n, struct tipc_link *l, struct tipc_link *tnl, struct sk_buff_head *xmitq)h](j)}(hstruct tipc_node *nh](j!)}(hj$h]hstruct}(hjdFhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj`Fubj3)}(h h]h }(hjqFhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj`Fubh)}(hhh]jJ)}(h tipc_nodeh]h tipc_node}(hjFhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]j)}jjJFsbc.tipc_node_link_failoverasbuh1hhj`Fubj3)}(h h]h }(hjFhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj`Fubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`FubjJ)}(hjUh]hn}(hjFhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj`Fubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj\Fubj)}(hstruct tipc_link *lh](j!)}(hj$h]hstruct}(hjFhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjFubj3)}(h h]h }(hjFhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjFubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjFhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]jFc.tipc_node_link_failoverasbuh1hhjFubj3)}(h h]h }(hjGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjFubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubjJ)}(hjLh]hl}(hj,GhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjFubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj\Fubj)}(hstruct tipc_link *tnlh](j!)}(hj$h]hstruct}(hjDGhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj@Gubj3)}(h h]h }(hjQGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@Gubh)}(hhh]jJ)}(h tipc_linkh]h tipc_link}(hjbGhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_Gubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdGmodnameN classnameNjj)}j]jFc.tipc_node_link_failoverasbuh1hhj@Gubj3)}(h h]h }(hjGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@Gubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@GubjJ)}(htnlh]htnl}(hjGhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj@Gubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj\Fubj)}(hstruct sk_buff_head *xmitqh](j!)}(hj$h]hstruct}(hjGhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjGubj3)}(h h]h }(hjGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjGubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjGhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]jFc.tipc_node_link_failoverasbuh1hhjGubj3)}(h h]h }(hjGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjGubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubjJ)}(hxmitqh]hxmitq}(hj HhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj\Fubeh}(h]h ]h"]h$]h&]hhuh1j hj#Fhhhj5FhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjFhhhj5FhMubah}(h]jFah ](jmjneh"]h$]h&]jrjs)jthuh1jhj5FhMhjFhhubjv)}(hhh]h)}(h&start failover in case "half-failover"h]h*start failover in case “half-failover”}(hj5HhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj2Hhhubah}(h]h ]h"]h$]h&]uh1juhjFhhhj5FhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMHjjMHjjjuh1jhhhj7hNhNubj)}(hX**Parameters** ``struct tipc_node *n`` tipc node structure ``struct tipc_link *l`` link peer endpoint failingover (- can be NULL) ``struct tipc_link *tnl`` tunnel link ``struct sk_buff_head *xmitq`` queue for messages to be xmited on tnl link later **Description** This function is only called in a very special situation where link failover can be already started on peer node but not on this node. This can happen when e.g.:: 1. Both links <1A-2A>, <1B-2B> down 2. Link endpoint 2A up, but 1A still down (e.g. due to network disturbance, wrong session, etc.) 3. Link <1B-2B> up 4. Link endpoint 2A down (e.g. due to link tolerance timeout) 5. Node 2 starts failover onto link <1B-2B> ==> Node 1 does never start link/node failover!h](h)}(h**Parameters**h]j)}(hjWHh]h Parameters}(hjYHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUHubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjQHubj)}(hhh](j)}(h,``struct tipc_node *n`` tipc node structure h](j)}(h``struct tipc_node *n``h]j)}(hjvHh]hstruct tipc_node *n}(hjxHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtHubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjpHubj)}(hhh]h)}(htipc node structureh]htipc node structure}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jhjpHubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjmHubj)}(hG``struct tipc_link *l`` link peer endpoint failingover (- can be NULL) h](j)}(h``struct tipc_link *l``h]j)}(hjHh]hstruct tipc_link *l}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjHubj)}(hhh]h)}(h.link peer endpoint failingover (- can be NULL)h]h.link peer endpoint failingover (- can be NULL)}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjmHubj)}(h&``struct tipc_link *tnl`` tunnel link h](j)}(h``struct tipc_link *tnl``h]j)}(hjHh]hstruct tipc_link *tnl}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjHubj)}(hhh]h)}(h tunnel linkh]h tunnel link}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjmHubj)}(hQ``struct sk_buff_head *xmitq`` queue for messages to be xmited on tnl link later h](j)}(h``struct sk_buff_head *xmitq``h]j)}(hj!Ih]hstruct sk_buff_head *xmitq}(hj#IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjIubj)}(hhh]h)}(h1queue for messages to be xmited on tnl link laterh]h1queue for messages to be xmited on tnl link later}(hj:IhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6IhMhj7Iubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhj6IhMhjmHubeh}(h]h ]h"]h$]h&]uh1jhjQHubh)}(h**Description**h]j)}(hj\Ih]h Description}(hj^IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZIubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjQHubh)}(hThis function is only called in a very special situation where link failover can be already started on peer node but not on this node. This can happen when e.g.::h]hThis function is only called in a very special situation where link failover can be already started on peer node but not on this node. This can happen when e.g.:}(hjrIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjQHubj)}(hX21. Both links <1A-2A>, <1B-2B> down 2. Link endpoint 2A up, but 1A still down (e.g. due to network disturbance, wrong session, etc.) 3. Link <1B-2B> up 4. Link endpoint 2A down (e.g. due to link tolerance timeout) 5. Node 2 starts failover onto link <1B-2B> ==> Node 1 does never start link/node failover!h]hX21. Both links <1A-2A>, <1B-2B> down 2. Link endpoint 2A up, but 1A still down (e.g. due to network disturbance, wrong session, etc.) 3. Link <1B-2B> up 4. Link endpoint 2A down (e.g. due to link tolerance timeout) 5. Node 2 starts failover onto link <1B-2B> ==> Node 1 does never start link/node failover!}hjIsbah}(h]h ]h"]h$]h&]hhuh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjQHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j "__tipc_node_link_down (C function)c.__tipc_node_link_downhNtauh1jhj7hhhNhNubj)}(hhh](j)}(h|void __tipc_node_link_down (struct tipc_node *n, int *bearer_id, struct sk_buff_head *xmitq, struct tipc_media_addr **maddr)h]j)}(h{void __tipc_node_link_down(struct tipc_node *n, int *bearer_id, struct sk_buff_head *xmitq, struct tipc_media_addr **maddr)h](j3)}(hvoidh]hvoid}(hjIhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjIhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubj3)}(h h]h }(hjIhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjIhhhjIhMubjD)}(h__tipc_node_link_downh]jJ)}(h__tipc_node_link_downh]h__tipc_node_link_down}(hjIhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjIubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjIhhhjIhMubj )}(ha(struct tipc_node *n, int *bearer_id, struct sk_buff_head *xmitq, struct tipc_media_addr **maddr)h](j)}(hstruct tipc_node *nh](j!)}(hj$h]hstruct}(hjIhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjIubj3)}(h h]h }(hjIhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjIubh)}(hhh]jJ)}(h tipc_nodeh]h tipc_node}(hj JhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj JmodnameN classnameNjj)}j]j)}jjIsbc.__tipc_node_link_downasbuh1hhjIubj3)}(h h]h }(hj+JhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjIubj)}(hjh]h*}(hj9JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubjJ)}(hjUh]hn}(hjFJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjIubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubj)}(hint *bearer_idh](j3)}(hinth]hint}(hj^JhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZJubj3)}(h h]h }(hjlJhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZJubj)}(hjh]h*}(hjzJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZJubjJ)}(h bearer_idh]h bearer_id}(hjJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZJubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubj)}(hstruct sk_buff_head *xmitqh](j!)}(hj$h]hstruct}(hjJhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjJubj3)}(h h]h }(hjJhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjJubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j'Jc.__tipc_node_link_downasbuh1hhjJubj3)}(h h]h }(hjJhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjJubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubjJ)}(hxmitqh]hxmitq}(hjJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjJubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubj)}(hstruct tipc_media_addr **maddrh](j!)}(hj$h]hstruct}(hjKhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj Kubj3)}(h h]h }(hjKhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj Kubh)}(hhh]jJ)}(htipc_media_addrh]htipc_media_addr}(hj.KhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj+Kubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0KmodnameN classnameNjj)}j]j'Jc.__tipc_node_link_downasbuh1hhj Kubj3)}(h h]h }(hjLKhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj Kubj)}(hjh]h*}(hjZKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Kubj)}(hjh]h*}(hjgKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj KubjJ)}(hmaddrh]hmaddr}(hjtKhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj Kubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubeh}(h]h ]h"]h$]h&]hhuh1j hjIhhhjIhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjIhhhjIhMubah}(h]jIah ](jmjneh"]h$]h&]jrjs)jthuh1jhjIhMhjIhhubjv)}(hhh]h)}(hhandle loss of linkh]hhandle loss of link}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjKhhubah}(h]h ]h"]h$]h&]uh1juhjIhhhjIhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1jhhhj7hNhNubj)}(h**Parameters** ``struct tipc_node *n`` target tipc_node ``int *bearer_id`` id of the bearer ``struct sk_buff_head *xmitq`` queue for messages to be xmited on ``struct tipc_media_addr **maddr`` output media address of the bearerh](h)}(h**Parameters**h]j)}(hjKh]h Parameters}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjKubj)}(hhh](j)}(h)``struct tipc_node *n`` target tipc_node h](j)}(h``struct tipc_node *n``h]j)}(hjKh]hstruct tipc_node *n}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjKubj)}(hhh]h)}(htarget tipc_nodeh]htarget tipc_node}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhMhjKubj)}(h$``int *bearer_id`` id of the bearer h](j)}(h``int *bearer_id``h]j)}(hjLh]hint *bearer_id}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjLubj)}(hhh]h)}(hid of the bearerh]hid of the bearer}(hj1LhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-LhMhj.Lubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhj-LhMhjKubj)}(hB``struct sk_buff_head *xmitq`` queue for messages to be xmited on h](j)}(h``struct sk_buff_head *xmitq``h]j)}(hjQLh]hstruct sk_buff_head *xmitq}(hjSLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOLubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjKLubj)}(hhh]h)}(h"queue for messages to be xmited onh]h"queue for messages to be xmited on}(hjjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfLhMhjgLubah}(h]h ]h"]h$]h&]uh1jhjKLubeh}(h]h ]h"]h$]h&]uh1jhjfLhMhjKubj)}(hE``struct tipc_media_addr **maddr`` output media address of the bearerh](j)}(h"``struct tipc_media_addr **maddr``h]j)}(hjLh]hstruct tipc_media_addr **maddr}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjLubj)}(hhh]h)}(h"output media address of the bearerh]h"output media address of the bearer}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhMhjKubeh}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j #tipc_node_get_linkname (C function)c.tipc_node_get_linknamehNtauh1jhj7hhhNhNubj)}(hhh](j)}(haint tipc_node_get_linkname (struct net *net, u32 bearer_id, u32 addr, char *linkname, size_t len)h]j)}(h`int tipc_node_get_linkname(struct net *net, u32 bearer_id, u32 addr, char *linkname, size_t len)h](j3)}(hinth]hint}(hjLhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjLhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM ubj3)}(h h]h }(hjLhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjLhhhjLhM ubjD)}(htipc_node_get_linknameh]jJ)}(htipc_node_get_linknameh]htipc_node_get_linkname}(hjMhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjMubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjLhhhjLhM ubj )}(hF(struct net *net, u32 bearer_id, u32 addr, char *linkname, size_t len)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj!MhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjMubj3)}(h h]h }(hj.MhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMubh)}(hhh]jJ)}(hneth]hnet}(hj?MhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j)}(h``struct net *net``h]j)}(hjcRh]hstruct net *net}(hjeRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaRubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj]Rubj)}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hj|RhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxRhMhjyRubah}(h]h ]h"]h$]h&]uh1jhj]Rubeh}(h]h ]h"]h$]h&]uh1jhjxRhMhjZRubj)}(hB``struct sk_buff_head *list`` chain of buffers containing message h](j)}(h``struct sk_buff_head *list``h]j)}(hjRh]hstruct sk_buff_head *list}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjRubj)}(hhh]h)}(h#chain of buffers containing messageh]h#chain of buffers containing message}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhMhjZRubj)}(h*``u32 dnode`` address of destination node h](j)}(h ``u32 dnode``h]j)}(hjRh]h u32 dnode}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjRubj)}(hhh]h)}(haddress of destination nodeh]haddress of destination node}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhMhjZRubj)}(h[``int selector`` a number used for deterministic link selection Consumes the buffer chain. h](j)}(h``int selector``h]j)}(hjSh]h int selector}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Subah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjSubj)}(hhh]h)}(hIa number used for deterministic link selection Consumes the buffer chain.h]hIa number used for deterministic link selection Consumes the buffer chain.}(hj'ShhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj$Subah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhj#ShMhjZRubeh}(h]h ]h"]h$]h&]uh1jhj>Rubh)}(h **Return**h]j)}(hjJSh]hReturn}(hjLShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHSubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj>Rubh)}(hC0 if success, otherwise: -ELINKCONG,-EHOSTUNREACH,-EMSGSIZE,-ENOBUFh]hC0 if success, otherwise: -ELINKCONG,-EHOSTUNREACH,-EMSGSIZE,-ENOBUF}(hj`ShhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj>Rubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_node_bc_rcv (C function)c.tipc_node_bc_rcvhNtauh1jhj7hhhNhNubj)}(hhh](j)}(hKvoid tipc_node_bc_rcv (struct net *net, struct sk_buff *skb, int bearer_id)h]j)}(hJvoid tipc_node_bc_rcv(struct net *net, struct sk_buff *skb, int bearer_id)h](j3)}(hvoidh]hvoid}(hjShhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjShhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMMubj3)}(h h]h }(hjShhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjShhhjShMMubjD)}(htipc_node_bc_rcvh]jJ)}(htipc_node_bc_rcvh]htipc_node_bc_rcv}(hjShhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjSubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjShhhjShMMubj )}(h5(struct net *net, struct sk_buff *skb, int bearer_id)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjShhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjSubj3)}(h h]h }(hjShhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjSubh)}(hhh]jJ)}(hneth]hnet}(hjShhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j)}jjSsbc.tipc_node_bc_rcvasbuh1hhjSubj3)}(h h]h }(hj ThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjSubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubjJ)}(hneth]hnet}(hj%ThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjSubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjSubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hj>ThhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj:Tubj3)}(h h]h }(hjKThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:Tubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj\ThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjYTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^TmodnameN classnameNjj)}j]jTc.tipc_node_bc_rcvasbuh1hhj:Tubj3)}(h h]h }(hjzThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:Tubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:TubjJ)}(hskbh]hskb}(hjThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj:Tubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjSubj)}(h int bearer_idh](j3)}(hinth]hint}(hjThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjTubj3)}(h h]h }(hjThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjTubjJ)}(h bearer_idh]h bearer_id}(hjThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjTubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjSubeh}(h]h ]h"]h$]h&]hhuh1j hjShhhjShMMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjShhhjShMMubah}(h]jSah ](jmjneh"]h$]h&]jrjs)jthuh1jhjShMMhjShhubjv)}(hhh]h)}(h4process TIPC broadcast packet arriving from off-nodeh]h4process TIPC broadcast packet arriving from off-node}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMFhjThhubah}(h]h ]h"]h$]h&]uh1juhjShhhjShMMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj Ujj Ujjjuh1jhhhj7hNhNubj)}(h**Parameters** ``struct net *net`` the applicable net namespace ``struct sk_buff *skb`` TIPC packet ``int bearer_id`` id of bearer message arrived on **Description** Invoked with no locks held.h](h)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMJhjUubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j)}(h``struct net *net``h]j)}(hj5Uh]hstruct net *net}(hj7UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3Uubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMGhj/Uubj)}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hjNUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJUhMGhjKUubah}(h]h ]h"]h$]h&]uh1jhj/Uubeh}(h]h ]h"]h$]h&]uh1jhjJUhMGhj,Uubj)}(h$``struct sk_buff *skb`` TIPC packet h](j)}(h``struct sk_buff *skb``h]j)}(hjnUh]hstruct sk_buff *skb}(hjpUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlUubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMHhjhUubj)}(hhh]h)}(h TIPC packeth]h TIPC packet}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMHhjUubah}(h]h ]h"]h$]h&]uh1jhjhUubeh}(h]h ]h"]h$]h&]uh1jhjUhMHhj,Uubj)}(h2``int bearer_id`` id of bearer message arrived on h](j)}(h``int bearer_id``h]j)}(hjUh]h int bearer_id}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMIhjUubj)}(hhh]h)}(hid of bearer message arrived onh]hid of bearer message arrived on}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMIhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhMIhj,Uubeh}(h]h ]h"]h$]h&]uh1jhjUubh)}(h**Description**h]j)}(hjUh]h Description}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMKhjUubh)}(hInvoked with no locks held.h]hInvoked with no locks held.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMKhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j "tipc_node_check_state (C function)c.tipc_node_check_statehNtauh1jhj7hhhNhNubj)}(hhh](j)}(hpbool tipc_node_check_state (struct tipc_node *n, struct sk_buff *skb, int bearer_id, struct sk_buff_head *xmitq)h]j)}(hobool tipc_node_check_state(struct tipc_node *n, struct sk_buff *skb, int bearer_id, struct sk_buff_head *xmitq)h](j3)}(hjgh]hbool}(hj'VhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#VhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubj3)}(h h]h }(hj5VhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#Vhhhj4VhMubjD)}(htipc_node_check_stateh]jJ)}(htipc_node_check_stateh]htipc_node_check_state}(hjGVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCVubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj#Vhhhj4VhMubj )}(hU(struct tipc_node *n, struct sk_buff *skb, int bearer_id, struct sk_buff_head *xmitq)h](j)}(hstruct tipc_node *nh](j!)}(hj$h]hstruct}(hjcVhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj_Vubj3)}(h h]h }(hjpVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_Vubh)}(hhh]jJ)}(h tipc_nodeh]h tipc_node}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj~Vubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]j)}jjIVsbc.tipc_node_check_stateasbuh1hhj_Vubj3)}(h h]h }(hjVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_Vubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_VubjJ)}(hjUh]hn}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_Vubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[Vubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjVhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjVubj3)}(h h]h }(hjVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjVubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]jVc.tipc_node_check_stateasbuh1hhjVubj3)}(h h]h }(hjWhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjVubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubjJ)}(hskbh]hskb}(hj+WhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[Vubj)}(h int bearer_idh](j3)}(hinth]hint}(hjDWhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@Wubj3)}(h h]h }(hjRWhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@WubjJ)}(h bearer_idh]h bearer_id}(hj`WhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj@Wubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[Vubj)}(hstruct sk_buff_head *xmitqh](j!)}(hj$h]hstruct}(hjyWhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjuWubj3)}(h h]h }(hjWhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjuWubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjWhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]jVc.tipc_node_check_stateasbuh1hhjuWubj3)}(h h]h }(hjWhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjuWubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuWubjJ)}(hxmitqh]hxmitq}(hjWhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjuWubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[Vubeh}(h]h ]h"]h$]h&]hhuh1j hj#Vhhhj4VhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjVhhhj4VhMubah}(h]jVah ](jmjneh"]h$]h&]jrjs)jthuh1jhj4VhMhjVhhubjv)}(hhh]h)}(h(check and if necessary update node stateh]h(check and if necessary update node state}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjWhhubah}(h]h ]h"]h$]h&]uh1juhjVhhhj4VhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1jhhhj7hNhNubj)}(hX**Parameters** ``struct tipc_node *n`` target tipc_node ``struct sk_buff *skb`` TIPC packet ``int bearer_id`` identity of bearer delivering the packet ``struct sk_buff_head *xmitq`` queue for messages to be xmited on **Return** true if state and msg are ok, otherwise falseh](h)}(h**Parameters**h]j)}(hjXh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjXubj)}(hhh](j)}(h)``struct tipc_node *n`` target tipc_node h](j)}(h``struct tipc_node *n``h]j)}(hj;Xh]hstruct tipc_node *n}(hj=XhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Xubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj5Xubj)}(hhh]h)}(htarget tipc_nodeh]htarget tipc_node}(hjTXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPXhMhjQXubah}(h]h ]h"]h$]h&]uh1jhj5Xubeh}(h]h ]h"]h$]h&]uh1jhjPXhMhj2Xubj)}(h$``struct sk_buff *skb`` TIPC packet h](j)}(h``struct sk_buff *skb``h]j)}(hjtXh]hstruct sk_buff *skb}(hjvXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrXubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjnXubj)}(hhh]h)}(h TIPC packeth]h TIPC packet}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jhjnXubeh}(h]h ]h"]h$]h&]uh1jhjXhMhj2Xubj)}(h;``int bearer_id`` identity of bearer delivering the packet h](j)}(h``int bearer_id``h]j)}(hjXh]h int bearer_id}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjXubj)}(hhh]h)}(h(identity of bearer delivering the packeth]h(identity of bearer delivering the packet}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhMhj2Xubj)}(hB``struct sk_buff_head *xmitq`` queue for messages to be xmited on h](j)}(h``struct sk_buff_head *xmitq``h]j)}(hjXh]hstruct sk_buff_head *xmitq}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjXubj)}(hhh]h)}(h"queue for messages to be xmited onh]h"queue for messages to be xmited on}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhMhj2Xubeh}(h]h ]h"]h$]h&]uh1jhjXubh)}(h **Return**h]j)}(hj!Yh]hReturn}(hj#YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjXubh)}(h-true if state and msg are ok, otherwise falseh]h-true if state and msg are ok, otherwise false}(hj7YhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_rcv (C function) c.tipc_rcvhNtauh1jhj7hhhNhNubj)}(hhh](j)}(hKvoid tipc_rcv (struct net *net, struct sk_buff *skb, struct tipc_bearer *b)h]j)}(hJvoid tipc_rcv(struct net *net, struct sk_buff *skb, struct tipc_bearer *b)h](j3)}(hvoidh]hvoid}(hjfYhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbYhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM#ubj3)}(h h]h }(hjuYhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbYhhhjtYhM#ubjD)}(htipc_rcvh]jJ)}(htipc_rcvh]htipc_rcv}(hjYhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjYubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjbYhhhjtYhM#ubj )}(h=(struct net *net, struct sk_buff *skb, struct tipc_bearer *b)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjYhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjYubj3)}(h h]h }(hjYhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjYubh)}(hhh]jJ)}(hneth]hnet}(hjYhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jjYsb c.tipc_rcvasbuh1hhjYubj3)}(h h]h }(hjYhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjYubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubjJ)}(hneth]hnet}(hjYhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjYubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjYubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjZhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjZubj3)}(h h]h }(hj"ZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hj3ZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj0Zubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5ZmodnameN classnameNjj)}j]jY c.tipc_rcvasbuh1hhjZubj3)}(h h]h }(hjQZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZubj)}(hjh]h*}(hj_ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubjJ)}(hskbh]hskb}(hjlZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjYubj)}(hstruct tipc_bearer *bh](j!)}(hj$h]hstruct}(hjZhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjZubj3)}(h h]h }(hjZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZubh)}(hhh]jJ)}(h tipc_bearerh]h tipc_bearer}(hjZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]jY c.tipc_rcvasbuh1hhjZubj3)}(h h]h }(hjZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubjJ)}(hj,h]hb}(hjZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjYubeh}(h]h ]h"]h$]h&]hhuh1j hjbYhhhjtYhM#ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj^YhhhjtYhM#ubah}(h]jYYah ](jmjneh"]h$]h&]jrjs)jthuh1jhjtYhM#hj[Yhhubjv)}(hhh]h)}(h4process TIPC packets/messages arriving from off-nodeh]h4process TIPC packets/messages arriving from off-node}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj[hhubah}(h]h ]h"]h$]h&]uh1juhj[YhhhjtYhM#ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj[jj[jjjuh1jhhhj7hNhNubj)}(hXB**Parameters** ``struct net *net`` the applicable net namespace ``struct sk_buff *skb`` TIPC packet ``struct tipc_bearer *b`` pointer to bearer message arrived on **Description** Invoked with no locks held. Bearer pointer must point to a valid bearer structure (i.e. cannot be NULL), but bearer can be inactive.h](h)}(h**Parameters**h]j)}(hj'[h]h Parameters}(hj)[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%[ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj![ubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j)}(h``struct net *net``h]j)}(hjF[h]hstruct net *net}(hjH[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD[ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj@[ubj)}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hj_[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[[hMhj\[ubah}(h]h ]h"]h$]h&]uh1jhj@[ubeh}(h]h ]h"]h$]h&]uh1jhj[[hMhj=[ubj)}(h$``struct sk_buff *skb`` TIPC packet h](j)}(h``struct sk_buff *skb``h]j)}(hj[h]hstruct sk_buff *skb}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}[ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjy[ubj)}(hhh]h)}(h TIPC packeth]h TIPC packet}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hMhj[ubah}(h]h ]h"]h$]h&]uh1jhjy[ubeh}(h]h ]h"]h$]h&]uh1jhj[hMhj=[ubj)}(h?``struct tipc_bearer *b`` pointer to bearer message arrived on h](j)}(h``struct tipc_bearer *b``h]j)}(hj[h]hstruct tipc_bearer *b}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj[ubj)}(hhh]h)}(h$pointer to bearer message arrived onh]h$pointer to bearer message arrived on}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hMhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hMhj=[ubeh}(h]h ]h"]h$]h&]uh1jhj![ubh)}(h**Description**h]j)}(hj[h]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hj![ubh)}(hInvoked with no locks held. Bearer pointer must point to a valid bearer structure (i.e. cannot be NULL), but bearer can be inactive.h]hInvoked with no locks held. Bearer pointer must point to a valid bearer structure (i.e. cannot be NULL), but bearer can be inactive.}(hj \hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hj![ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_node_dump (C function)c.tipc_node_dumphNtauh1jhj7hhhNhNubj)}(hhh](j)}(h>int tipc_node_dump (struct tipc_node *n, bool more, char *buf)h]j)}(h=int tipc_node_dump(struct tipc_node *n, bool more, char *buf)h](j3)}(hinth]hint}(hj8\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj4\hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM ubj3)}(h h]h }(hjG\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj4\hhhjF\hM ubjD)}(htipc_node_dumph]jJ)}(htipc_node_dumph]htipc_node_dump}(hjY\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjU\ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj4\hhhjF\hM ubj )}(h+(struct tipc_node *n, bool more, char *buf)h](j)}(hstruct tipc_node *nh](j!)}(hj$h]hstruct}(hju\hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjq\ubj3)}(h h]h }(hj\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjq\ubh)}(hhh]jJ)}(h tipc_nodeh]h tipc_node}(hj\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]j)}jj[\sbc.tipc_node_dumpasbuh1hhjq\ubj3)}(h h]h }(hj\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjq\ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq\ubjJ)}(hjUh]hn}(hj\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjq\ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjm\ubj)}(h bool moreh](j3)}(hjgh]hbool}(hj\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj\ubj3)}(h h]h }(hj\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj\ubjJ)}(hmoreh]hmore}(hj]hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjm\ubj)}(h char *bufh](j3)}(hcharh]hchar}(hj]hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj]ubj3)}(h h]h }(hj(]hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj]ubj)}(hjh]h*}(hj6]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubjJ)}(hbufh]hbuf}(hjC]hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjm\ubeh}(h]h ]h"]h$]h&]hhuh1j hj4\hhhjF\hM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj0\hhhjF\hM ubah}(h]j+\ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjF\hM hj-\hhubjv)}(hhh]h)}(hdump TIPC node datah]hdump TIPC node data}(hjm]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hjj]hhubah}(h]h ]h"]h$]h&]uh1juhj-\hhhjF\hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1jhhhj7hNhNubj)}(h**Parameters** ``struct tipc_node *n`` tipc node to be dumped ``bool more`` dump more? - false: dump only tipc node data - true: dump node link data as well ``char *buf`` returned buffer of dump data in formath](h)}(h**Parameters**h]j)}(hj]h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hj]ubj)}(hhh](j)}(h/``struct tipc_node *n`` tipc node to be dumped h](j)}(h``struct tipc_node *n``h]j)}(hj]h]hstruct tipc_node *n}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hj]ubj)}(hhh]h)}(htipc node to be dumpedh]htipc node to be dumped}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hM hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hM hj]ubj)}(h_``bool more`` dump more? - false: dump only tipc node data - true: dump node link data as well h](j)}(h ``bool more``h]j)}(hj]h]h bool more}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hj]ubj)}(hhh]h)}(hPdump more? - false: dump only tipc node data - true: dump node link data as wellh]hPdump more? - false: dump only tipc node data - true: dump node link data as well}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hM hj]ubj)}(h4``char *buf`` returned buffer of dump data in formath](j)}(h ``char *buf``h]j)}(hj!^h]h char *buf}(hj#^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hj^ubj)}(hhh]h)}(h&returned buffer of dump data in formath]h&returned buffer of dump data in format}(hj:^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hj7^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj6^hM hj]ubeh}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubeh}(h]tipc-node-management-interfacesah ]h"]tipc node management interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Socket Interfacesh]hTIPC Socket Interfaces}(hjm^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj^hhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sock (C struct) c.tipc_sockhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h tipc_sockh]j)}(hstruct tipc_sockh](j!)}(hj$h]hstruct}(hj^hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj^hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKubj3)}(h h]h }(hj^hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^hhhj^hKubjD)}(h tipc_sockh]jJ)}(hj^h]h tipc_sock}(hj^hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj^ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj^hhhj^hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj^hhhj^hKubah}(h]j^ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj^hKhj^hhubjv)}(hhh]h)}(hTIPC socket structureh]hTIPC socket structure}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKKhj^hhubah}(h]h ]h"]h$]h&]uh1juhj^hhhj^hKubeh}(h]h ](jstructeh"]h$]h&]jjjj^jj^jjjuh1jhhhjj^hNhNubj)}(hX? **Definition**:: struct tipc_sock { struct sock sk; u32 max_pkt; u32 maxnagle; u32 portid; struct tipc_msg phdr; struct list_head cong_links; struct list_head publications; u32 pub_count; atomic_t dupl_rcvcnt; u16 conn_timeout; bool probe_unacked; u16 cong_link_cnt; u16 snt_unacked; u16 snd_win; u16 peer_caps; u16 rcv_unacked; u16 rcv_win; struct sockaddr_tipc peer; struct rhash_head node; struct tipc_mc_method mc_method; struct rcu_head rcu; struct tipc_group *group; u32 oneway; u32 nagle_start; u16 snd_backlog; u16 msg_acc; u16 pkt_cnt; bool expect_ack; bool nodelay; bool group_is_open; bool published; u8 conn_addrtype; }; **Members** ``sk`` socket - interacts with 'port' and with user via the socket API ``max_pkt`` maximum packet size "hint" used when building messages sent by port ``maxnagle`` maximum size of msg which can be subject to nagle ``portid`` unique port identity in TIPC socket hash table ``phdr`` preformatted message header used when sending messages ``cong_links`` list of congested links ``publications`` list of publications for port ``pub_count`` total # of publications port has made during its lifetime ``dupl_rcvcnt`` number of bytes counted twice, in both backlog and rcv queue ``conn_timeout`` the time we can wait for an unresponded setup request ``probe_unacked`` probe has not received ack yet ``cong_link_cnt`` number of congested links ``snt_unacked`` # messages sent by socket, and not yet acked by peer ``snd_win`` send window size ``peer_caps`` peer capabilities mask ``rcv_unacked`` # messages read by user, but not yet acked back to peer ``rcv_win`` receive window size ``peer`` 'connected' peer for dgram/rdm ``node`` hash table node ``mc_method`` cookie for use between socket and broadcast layer ``rcu`` rcu struct for tipc_sock ``group`` TIPC communications group ``oneway`` message count in one direction (FIXME) ``nagle_start`` current nagle value ``snd_backlog`` send backlog count ``msg_acc`` messages accepted; used in managing backlog and nagle ``pkt_cnt`` TIPC socket packet count ``expect_ack`` whether this TIPC socket is expecting an ack ``nodelay`` setsockopt() TIPC_NODELAY setting ``group_is_open`` TIPC socket group is fully open (FIXME) ``published`` true if port has one or more associated names ``conn_addrtype`` address type used when establishing connectionh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh:}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKOhj^ubj)}(hXstruct tipc_sock { struct sock sk; u32 max_pkt; u32 maxnagle; u32 portid; struct tipc_msg phdr; struct list_head cong_links; struct list_head publications; u32 pub_count; atomic_t dupl_rcvcnt; u16 conn_timeout; bool probe_unacked; u16 cong_link_cnt; u16 snt_unacked; u16 snd_win; u16 peer_caps; u16 rcv_unacked; u16 rcv_win; struct sockaddr_tipc peer; struct rhash_head node; struct tipc_mc_method mc_method; struct rcu_head rcu; struct tipc_group *group; u32 oneway; u32 nagle_start; u16 snd_backlog; u16 msg_acc; u16 pkt_cnt; bool expect_ack; bool nodelay; bool group_is_open; bool published; u8 conn_addrtype; };h]hXstruct tipc_sock { struct sock sk; u32 max_pkt; u32 maxnagle; u32 portid; struct tipc_msg phdr; struct list_head cong_links; struct list_head publications; u32 pub_count; atomic_t dupl_rcvcnt; u16 conn_timeout; bool probe_unacked; u16 cong_link_cnt; u16 snt_unacked; u16 snd_win; u16 peer_caps; u16 rcv_unacked; u16 rcv_win; struct sockaddr_tipc peer; struct rhash_head node; struct tipc_mc_method mc_method; struct rcu_head rcu; struct tipc_group *group; u32 oneway; u32 nagle_start; u16 snd_backlog; u16 msg_acc; u16 pkt_cnt; bool expect_ack; bool nodelay; bool group_is_open; bool published; u8 conn_addrtype; };}hj_sbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKQhj^ubh)}(h **Members**h]j)}(hj$_h]hMembers}(hj&_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"_ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKthj^ubj)}(hhh](j)}(hG``sk`` socket - interacts with 'port' and with user via the socket API h](j)}(h``sk``h]j)}(hjC_h]hsk}(hjE_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA_ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKMhj=_ubj)}(hhh]h)}(h?socket - interacts with 'port' and with user via the socket APIh]hCsocket - interacts with ‘port’ and with user via the socket API}(hj\_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX_hKMhjY_ubah}(h]h ]h"]h$]h&]uh1jhj=_ubeh}(h]h ]h"]h$]h&]uh1jhjX_hKMhj:_ubj)}(hP``max_pkt`` maximum packet size "hint" used when building messages sent by port h](j)}(h ``max_pkt``h]j)}(hj|_h]hmax_pkt}(hj~_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz_ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKNhjv_ubj)}(hhh]h)}(hCmaximum packet size "hint" used when building messages sent by porth]hGmaximum packet size “hint” used when building messages sent by port}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hKNhj_ubah}(h]h ]h"]h$]h&]uh1jhjv_ubeh}(h]h ]h"]h$]h&]uh1jhj_hKNhj:_ubj)}(h?``maxnagle`` maximum size of msg which can be subject to nagle h](j)}(h ``maxnagle``h]j)}(hj_h]hmaxnagle}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKOhj_ubj)}(hhh]h)}(h1maximum size of msg which can be subject to nagleh]h1maximum size of msg which can be subject to nagle}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hKOhj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hKOhj:_ubj)}(h:``portid`` unique port identity in TIPC socket hash table h](j)}(h ``portid``h]j)}(hj_h]hportid}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKPhj_ubj)}(hhh]h)}(h.unique port identity in TIPC socket hash tableh]h.unique port identity in TIPC socket hash table}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hKPhj`ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj`hKPhj:_ubj)}(h@``phdr`` preformatted message header used when sending messages h](j)}(h``phdr``h]j)}(hj'`h]hphdr}(hj)`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%`ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKQhj!`ubj)}(hhh]h)}(h6preformatted message header used when sending messagesh]h6preformatted message header used when sending messages}(hj@`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<`hKQhj=`ubah}(h]h ]h"]h$]h&]uh1jhj!`ubeh}(h]h ]h"]h$]h&]uh1jhj<`hKQhj:_ubj)}(h'``cong_links`` list of congested links h](j)}(h``cong_links``h]j)}(hj``h]h cong_links}(hjb`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^`ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKRhjZ`ubj)}(hhh]h)}(hlist of congested linksh]hlist of congested links}(hjy`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhju`hKRhjv`ubah}(h]h ]h"]h$]h&]uh1jhjZ`ubeh}(h]h ]h"]h$]h&]uh1jhju`hKRhj:_ubj)}(h/``publications`` list of publications for port h](j)}(h``publications``h]j)}(hj`h]h publications}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKShj`ubj)}(hhh]h)}(hlist of publications for porth]hlist of publications for port}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hKShj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKShj:_ubj)}(hH``pub_count`` total # of publications port has made during its lifetime h](j)}(h ``pub_count``h]j)}(hj`h]h pub_count}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKThj`ubj)}(hhh]h)}(h9total # of publications port has made during its lifetimeh]h9total # of publications port has made during its lifetime}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hKThj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKThj:_ubj)}(hM``dupl_rcvcnt`` number of bytes counted twice, in both backlog and rcv queue h](j)}(h``dupl_rcvcnt``h]j)}(hj ah]h dupl_rcvcnt}(hj ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj aubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKWhjaubj)}(hhh]h)}(haubj)}(hhh]h)}(h5the time we can wait for an unresponded setup requesth]h5the time we can wait for an unresponded setup request}(hj]ahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYahKUhjZaubah}(h]h ]h"]h$]h&]uh1jhj>aubeh}(h]h ]h"]h$]h&]uh1jhjYahKUhj:_ubj)}(h1``probe_unacked`` probe has not received ack yet h](j)}(h``probe_unacked``h]j)}(hj}ah]h probe_unacked}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{aubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKVhjwaubj)}(hhh]h)}(hprobe has not received ack yeth]hprobe has not received ack yet}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahKVhjaubah}(h]h ]h"]h$]h&]uh1jhjwaubeh}(h]h ]h"]h$]h&]uh1jhjahKVhj:_ubj)}(h,``cong_link_cnt`` number of congested links h](j)}(h``cong_link_cnt``h]j)}(hjah]h cong_link_cnt}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKXhjaubj)}(hhh]h)}(hnumber of congested linksh]hnumber of congested links}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahKXhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahKXhj:_ubj)}(hE``snt_unacked`` # messages sent by socket, and not yet acked by peer h](j)}(h``snt_unacked``h]j)}(hjah]h snt_unacked}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKYhjaubj)}(hhh]h)}(h4# messages sent by socket, and not yet acked by peerh]h4# messages sent by socket, and not yet acked by peer}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhKYhjbubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjbhKYhj:_ubj)}(h``snd_win`` send window size h](j)}(h ``snd_win``h]j)}(hj(bh]hsnd_win}(hj*bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&bubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKZhj"bubj)}(hhh]h)}(hsend window sizeh]hsend window size}(hjAbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=bhKZhj>bubah}(h]h ]h"]h$]h&]uh1jhj"bubeh}(h]h ]h"]h$]h&]uh1jhj=bhKZhj:_ubj)}(h%``peer_caps`` peer capabilities mask h](j)}(h ``peer_caps``h]j)}(hjabh]h peer_caps}(hjcbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_bubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK[hj[bubj)}(hhh]h)}(hpeer capabilities maskh]hpeer capabilities mask}(hjzbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvbhK[hjwbubah}(h]h ]h"]h$]h&]uh1jhj[bubeh}(h]h ]h"]h$]h&]uh1jhjvbhK[hj:_ubj)}(hH``rcv_unacked`` # messages read by user, but not yet acked back to peer h](j)}(h``rcv_unacked``h]j)}(hjbh]h rcv_unacked}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK\hjbubj)}(hhh]h)}(h7# messages read by user, but not yet acked back to peerh]h7# messages read by user, but not yet acked back to peer}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhK\hjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhK\hj:_ubj)}(h ``rcv_win`` receive window size h](j)}(h ``rcv_win``h]j)}(hjbh]hrcv_win}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK]hjbubj)}(hhh]h)}(hreceive window sizeh]hreceive window size}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhK]hjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhK]hj:_ubj)}(h(``peer`` 'connected' peer for dgram/rdm h](j)}(h``peer``h]j)}(hj ch]hpeer}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj cubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK^hjcubj)}(hhh]h)}(h'connected' peer for dgram/rdmh]h"‘connected’ peer for dgram/rdm}(hj%chhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!chK^hj"cubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj!chK^hj:_ubj)}(h``node`` hash table node h](j)}(h``node``h]j)}(hjEch]hnode}(hjGchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCcubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK_hj?cubj)}(hhh]h)}(hhash table nodeh]hhash table node}(hj^chhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZchK_hj[cubah}(h]h ]h"]h$]h&]uh1jhj?cubeh}(h]h ]h"]h$]h&]uh1jhjZchK_hj:_ubj)}(h@``mc_method`` cookie for use between socket and broadcast layer h](j)}(h ``mc_method``h]j)}(hj~ch]h mc_method}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|cubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK`hjxcubj)}(hhh]h)}(h1cookie for use between socket and broadcast layerh]h1cookie for use between socket and broadcast layer}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchK`hjcubah}(h]h ]h"]h$]h&]uh1jhjxcubeh}(h]h ]h"]h$]h&]uh1jhjchK`hj:_ubj)}(h!``rcu`` rcu struct for tipc_sock h](j)}(h``rcu``h]j)}(hjch]hrcu}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKahjcubj)}(hhh]h)}(hrcu struct for tipc_sockh]hrcu struct for tipc_sock}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchKahjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchKahj:_ubj)}(h$``group`` TIPC communications group h](j)}(h ``group``h]j)}(hjch]hgroup}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKbhjcubj)}(hhh]h)}(hTIPC communications grouph]hTIPC communications group}(hj dhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKbhjdubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjdhKbhj:_ubj)}(h2``oneway`` message count in one direction (FIXME) h](j)}(h ``oneway``h]j)}(hj)dh]honeway}(hj+dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'dubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKchj#dubj)}(hhh]h)}(h&message count in one direction (FIXME)h]h&message count in one direction (FIXME)}(hjBdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>dhKchj?dubah}(h]h ]h"]h$]h&]uh1jhj#dubeh}(h]h ]h"]h$]h&]uh1jhj>dhKchj:_ubj)}(h$``nagle_start`` current nagle value h](j)}(h``nagle_start``h]j)}(hjbdh]h nagle_start}(hjddhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`dubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKdhj\dubj)}(hhh]h)}(hcurrent nagle valueh]hcurrent nagle value}(hj{dhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwdhKdhjxdubah}(h]h ]h"]h$]h&]uh1jhj\dubeh}(h]h ]h"]h$]h&]uh1jhjwdhKdhj:_ubj)}(h#``snd_backlog`` send backlog count h](j)}(h``snd_backlog``h]j)}(hjdh]h snd_backlog}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKehjdubj)}(hhh]h)}(hsend backlog counth]hsend backlog count}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKehjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKehj:_ubj)}(hB``msg_acc`` messages accepted; used in managing backlog and nagle h](j)}(h ``msg_acc``h]j)}(hjdh]hmsg_acc}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKfhjdubj)}(hhh]h)}(h5messages accepted; used in managing backlog and nagleh]h5messages accepted; used in managing backlog and nagle}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKfhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKfhj:_ubj)}(h%``pkt_cnt`` TIPC socket packet count h](j)}(h ``pkt_cnt``h]j)}(hj eh]hpkt_cnt}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj eubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKghjeubj)}(hhh]h)}(hTIPC socket packet counth]hTIPC socket packet count}(hj&ehhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ehKghj#eubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhj"ehKghj:_ubj)}(h<``expect_ack`` whether this TIPC socket is expecting an ack h](j)}(h``expect_ack``h]j)}(hjFeh]h expect_ack}(hjHehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDeubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKhhj@eubj)}(hhh]h)}(h,whether this TIPC socket is expecting an ackh]h,whether this TIPC socket is expecting an ack}(hj_ehhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ehKhhj\eubah}(h]h ]h"]h$]h&]uh1jhj@eubeh}(h]h ]h"]h$]h&]uh1jhj[ehKhhj:_ubj)}(h.``nodelay`` setsockopt() TIPC_NODELAY setting h](j)}(h ``nodelay``h]j)}(hjeh]hnodelay}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}eubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKihjyeubj)}(hhh]h)}(h!setsockopt() TIPC_NODELAY settingh]h!setsockopt() TIPC_NODELAY setting}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehKihjeubah}(h]h ]h"]h$]h&]uh1jhjyeubeh}(h]h ]h"]h$]h&]uh1jhjehKihj:_ubj)}(h:``group_is_open`` TIPC socket group is fully open (FIXME) h](j)}(h``group_is_open``h]j)}(hjeh]h group_is_open}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKjhjeubj)}(hhh]h)}(h'TIPC socket group is fully open (FIXME)h]h'TIPC socket group is fully open (FIXME)}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehKjhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehKjhj:_ubj)}(h<``published`` true if port has one or more associated names h](j)}(h ``published``h]j)}(hjeh]h published}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKkhjeubj)}(hhh]h)}(h-true if port has one or more associated namesh]h-true if port has one or more associated names}(hj fhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhKkhjfubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjfhKkhj:_ubj)}(h@``conn_addrtype`` address type used when establishing connectionh](j)}(h``conn_addrtype``h]j)}(hj*fh]h conn_addrtype}(hj,fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(fubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKkhj$fubj)}(hhh]h)}(h.address type used when establishing connectionh]h.address type used when establishing connection}(hjCfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKlhj@fubah}(h]h ]h"]h$]h&]uh1jhj$fubeh}(h]h ]h"]h$]h&]uh1jhj?fhKkhj:_ubeh}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j !tsk_advance_rx_queue (C function)c.tsk_advance_rx_queuehNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h+void tsk_advance_rx_queue (struct sock *sk)h]j)}(h*void tsk_advance_rx_queue(struct sock *sk)h](j3)}(hvoidh]hvoid}(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjfhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjfhhhjfhMubjD)}(htsk_advance_rx_queueh]jJ)}(htsk_advance_rx_queueh]htsk_advance_rx_queue}(hjfhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjfubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjfhhhjfhMubj )}(h(struct sock *sk)h]j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjfhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjfubj3)}(h h]h }(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjfubh)}(hhh]jJ)}(hsockh]hsock}(hjfhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jjfsbc.tsk_advance_rx_queueasbuh1hhjfubj3)}(h h]h }(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjfubj)}(hjh]h*}(hj ghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubjJ)}(hskh]hsk}(hjghhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjfubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjfubah}(h]h ]h"]h$]h&]hhuh1j hjfhhhjfhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj|fhhhjfhMubah}(h]jwfah ](jmjneh"]h$]h&]jrjs)jthuh1jhjfhMhjyfhhubjv)}(hhh]h)}(h,discard first buffer in socket receive queueh]h,discard first buffer in socket receive queue}(hjDghhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjAghhubah}(h]h ]h"]h$]h&]uh1juhjyfhhhjfhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\gjj\gjjjuh1jhhhjj^hNhNubj)}(hc**Parameters** ``struct sock *sk`` network socket **Description** Caller must hold socket lockh](h)}(h**Parameters**h]j)}(hjfgh]h Parameters}(hjhghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdgubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj`gubj)}(hhh]j)}(h#``struct sock *sk`` network socket h](j)}(h``struct sock *sk``h]j)}(hjgh]hstruct sock *sk}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjgubj)}(hhh]h)}(hnetwork socketh]hnetwork socket}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghMhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghMhj|gubah}(h]h ]h"]h$]h&]uh1jhj`gubh)}(h**Description**h]j)}(hjgh]h Description}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj`gubh)}(hCaller must hold socket lockh]hCaller must hold socket lock}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj`gubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tsk_rej_rx_queue (C function)c.tsk_rej_rx_queuehNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h2void tsk_rej_rx_queue (struct sock *sk, int error)h]j)}(h1void tsk_rej_rx_queue(struct sock *sk, int error)h](j3)}(hvoidh]hvoid}(hjhhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM2ubj3)}(h h]h }(hjhhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhhjhhM2ubjD)}(htsk_rej_rx_queueh]jJ)}(htsk_rej_rx_queueh]htsk_rej_rx_queue}(hj&hhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj"hubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhhjhhM2ubj )}(h(struct sock *sk, int error)h](j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjBhhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj>hubj3)}(h h]h }(hjOhhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj>hubh)}(hhh]jJ)}(hsockh]hsock}(hj`hhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj]hubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbhmodnameN classnameNjj)}j]j)}jj(hsbc.tsk_rej_rx_queueasbuh1hhj>hubj3)}(h h]h }(hjhhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj>hubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hubjJ)}(hskh]hsk}(hjhhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj>hubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj:hubj)}(h int errorh](j3)}(hinth]hint}(hjhhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhubj3)}(h h]h }(hjhhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhubjJ)}(herrorh]herror}(hjhhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjhubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj:hubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhhjhhM2ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjghhhjhhM2ubah}(h]jgah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhhM2hjghhubjv)}(hhh]h)}(h*reject all buffers in socket receive queueh]h*reject all buffers in socket receive queue}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM,hjhhhubah}(h]h ]h"]h$]h&]uh1juhjghhhjhhM2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjijjijjjuh1jhhhjj^hNhNubj)}(h**Parameters** ``struct sock *sk`` network socket ``int error`` response error code **Description** Caller must hold socket lockh](h)}(h**Parameters**h]j)}(hjih]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM0hjiubj)}(hhh](j)}(h#``struct sock *sk`` network socket h](j)}(h``struct sock *sk``h]j)}(hj;ih]hstruct sock *sk}(hj=ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9iubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM-hj5iubj)}(hhh]h)}(hnetwork socketh]hnetwork socket}(hjTihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPihM-hjQiubah}(h]h ]h"]h$]h&]uh1jhj5iubeh}(h]h ]h"]h$]h&]uh1jhjPihM-hj2iubj)}(h"``int error`` response error code h](j)}(h ``int error``h]j)}(hjtih]h int error}(hjvihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjriubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM.hjniubj)}(hhh]h)}(hresponse error codeh]hresponse error code}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihM.hjiubah}(h]h ]h"]h$]h&]uh1jhjniubeh}(h]h ]h"]h$]h&]uh1jhjihM.hj2iubeh}(h]h ]h"]h$]h&]uh1jhjiubh)}(h**Description**h]j)}(hjih]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM0hjiubh)}(hCaller must hold socket lockh]hCaller must hold socket lock}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM0hjiubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sk_create (C function)c.tipc_sk_createhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hQint tipc_sk_create (struct net *net, struct socket *sock, int protocol, int kern)h]j)}(hPint tipc_sk_create(struct net *net, struct socket *sock, int protocol, int kern)h](j3)}(hinth]hint}(hjihhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjihhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjihhhjjhMubjD)}(htipc_sk_createh]jJ)}(htipc_sk_createh]htipc_sk_create}(hjjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjihhhjjhMubj )}(h>(struct net *net, struct socket *sock, int protocol, int kern)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj1jhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj-jubj3)}(h h]h }(hj>jhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-jubh)}(hhh]jJ)}(hneth]hnet}(hjOjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjLjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQjmodnameN classnameNjj)}j]j)}jjjsbc.tipc_sk_createasbuh1hhj-jubj3)}(h h]h }(hjojhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-jubj)}(hjh]h*}(hj}jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-jubjJ)}(hneth]hnet}(hjjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj-jubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)jubj)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hjjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjjubj3)}(h h]h }(hjjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjjubh)}(hhh]jJ)}(hsocketh]hsocket}(hjjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]jkjc.tipc_sk_createasbuh1hhjjubj3)}(h h]h }(hjjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubjJ)}(hsockh]hsock}(hjjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)jubj)}(h int protocolh](j3)}(hinth]hint}(hjkhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjkubj3)}(h h]h }(hj!khhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjkubjJ)}(hprotocolh]hprotocol}(hj/khhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjkubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)jubj)}(hint kernh](j3)}(hinth]hint}(hjHkhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjDkubj3)}(h h]h }(hjVkhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjDkubjJ)}(hkernh]hkern}(hjdkhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjDkubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)jubeh}(h]h ]h"]h$]h&]hhuh1j hjihhhjjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjihhhjjhMubah}(h]jiah ](jmjneh"]h$]h&]jrjs)jthuh1jhjjhMhjihhubjv)}(hhh]h)}(hcreate a TIPC socketh]hcreate a TIPC socket}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjkhhubah}(h]h ]h"]h$]h&]uh1juhjihhhjjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1jhhhjj^hNhNubj)}(hX**Parameters** ``struct net *net`` network namespace (must be default network) ``struct socket *sock`` pre-allocated socket structure ``int protocol`` protocol indicator (must be 0) ``int kern`` caused by kernel or by userspace? **Description** This routine creates additional data structures used by the TIPC socket, initializes them, and links them together. **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hjkh]h Parameters}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjkubj)}(hhh](j)}(h@``struct net *net`` network namespace (must be default network) h](j)}(h``struct net *net``h]j)}(hjkh]hstruct net *net}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjkubj)}(hhh]h)}(h+network namespace (must be default network)h]h+network namespace (must be default network)}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhMhjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhMhjkubj)}(h7``struct socket *sock`` pre-allocated socket structure h](j)}(h``struct socket *sock``h]j)}(hjlh]hstruct socket *sock}(hj lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjlubj)}(hhh]h)}(hpre-allocated socket structureh]hpre-allocated socket structure}(hj!lhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhMhjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhMhjkubj)}(h0``int protocol`` protocol indicator (must be 0) h](j)}(h``int protocol``h]j)}(hjAlh]h int protocol}(hjClhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?lubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj;lubj)}(hhh]h)}(hprotocol indicator (must be 0)h]hprotocol indicator (must be 0)}(hjZlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVlhMhjWlubah}(h]h ]h"]h$]h&]uh1jhj;lubeh}(h]h ]h"]h$]h&]uh1jhjVlhMhjkubj)}(h/``int kern`` caused by kernel or by userspace? h](j)}(h ``int kern``h]j)}(hjzlh]hint kern}(hj|lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxlubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjtlubj)}(hhh]h)}(h!caused by kernel or by userspace?h]h!caused by kernel or by userspace?}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhMhjlubah}(h]h ]h"]h$]h&]uh1jhjtlubeh}(h]h ]h"]h$]h&]uh1jhjlhMhjkubeh}(h]h ]h"]h$]h&]uh1jhjkubh)}(h**Description**h]j)}(hjlh]h Description}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjkubh)}(hsThis routine creates additional data structures used by the TIPC socket, initializes them, and links them together.h]hsThis routine creates additional data structures used by the TIPC socket, initializes them, and links them together.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjkubh)}(h **Return**h]j)}(hjlh]hReturn}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjkubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjkubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_release (C function)c.tipc_releasehNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h&int tipc_release (struct socket *sock)h]j)}(h%int tipc_release(struct socket *sock)h](j3)}(hinth]hint}(hj!mhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjmhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMpubj3)}(h h]h }(hj0mhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjmhhhj/mhMpubjD)}(h tipc_releaseh]jJ)}(h tipc_releaseh]h tipc_release}(hjBmhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj>mubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjmhhhj/mhMpubj )}(h(struct socket *sock)h]j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hj^mhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjZmubj3)}(h h]h }(hjkmhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZmubh)}(hhh]jJ)}(hsocketh]hsocket}(hj|mhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjymubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~mmodnameN classnameNjj)}j]j)}jjDmsbc.tipc_releaseasbuh1hhjZmubj3)}(h h]h }(hjmhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZmubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZmubjJ)}(hsockh]hsock}(hjmhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZmubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjVmubah}(h]h ]h"]h$]h&]hhuh1j hjmhhhj/mhMpubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjmhhhj/mhMpubah}(h]jmah ](jmjneh"]h$]h&]jrjs)jthuh1jhj/mhMphjmhhubjv)}(hhh]h)}(hdestroy a TIPC socketh]hdestroy a TIPC socket}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMahjmhhubah}(h]h ]h"]h$]h&]uh1juhjmhhhj/mhMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1jhhhjj^hNhNubj)}(hX**Parameters** ``struct socket *sock`` socket to destroy **Description** This routine cleans up any messages that are still queued on the socket. For DGRAM and RDM socket types, all queued messages are rejected. For SEQPACKET and STREAM socket types, the first message is rejected and any others are discarded. (If the first message on a STREAM socket is partially-read, it is discarded and the next one is rejected instead.) **NOTE** Rejected messages are not necessarily returned to the sender! They are returned or discarded according to the "destination droppable" setting specified for the message by the sender. **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hjnh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMehjmubj)}(hhh]j)}(h*``struct socket *sock`` socket to destroy h](j)}(h``struct socket *sock``h]j)}(hj"nh]hstruct socket *sock}(hj$nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj nubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMbhjnubj)}(hhh]h)}(hsocket to destroyh]hsocket to destroy}(hj;nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7nhMbhj8nubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhj7nhMbhjnubah}(h]h ]h"]h$]h&]uh1jhjmubh)}(h**Description**h]j)}(hj]nh]h Description}(hj_nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[nubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMdhjmubh)}(hXaThis routine cleans up any messages that are still queued on the socket. For DGRAM and RDM socket types, all queued messages are rejected. For SEQPACKET and STREAM socket types, the first message is rejected and any others are discarded. (If the first message on a STREAM socket is partially-read, it is discarded and the next one is rejected instead.)h]hXaThis routine cleans up any messages that are still queued on the socket. For DGRAM and RDM socket types, all queued messages are rejected. For SEQPACKET and STREAM socket types, the first message is rejected and any others are discarded. (If the first message on a STREAM socket is partially-read, it is discarded and the next one is rejected instead.)}(hjsnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMdhjmubh)}(h**NOTE**h]j)}(hjnh]hNOTE}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMjhjmubh)}(hRejected messages are not necessarily returned to the sender! They are returned or discarded according to the "destination droppable" setting specified for the message by the sender.h]hRejected messages are not necessarily returned to the sender! They are returned or discarded according to the “destination droppable” setting specified for the message by the sender.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMjhjmubh)}(h **Return**h]j)}(hjnh]hReturn}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMnhjmubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMnhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j __tipc_bind (C function) c.__tipc_bindhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hHint __tipc_bind (struct socket *sock, struct sockaddr *skaddr, int alen)h]j)}(hGint __tipc_bind(struct socket *sock, struct sockaddr *skaddr, int alen)h](j3)}(hinth]hint}(hjnhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjnhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjnhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjnhhhjnhMubjD)}(h __tipc_bindh]jJ)}(h __tipc_bindh]h __tipc_bind}(hjohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj oubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjnhhhjnhMubj )}(h8(struct socket *sock, struct sockaddr *skaddr, int alen)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hj-ohhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj)oubj3)}(h h]h }(hj:ohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj)oubh)}(hhh]jJ)}(hsocketh]hsocket}(hjKohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjHoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMomodnameN classnameNjj)}j]j)}jjosb c.__tipc_bindasbuh1hhj)oubj3)}(h h]h }(hjkohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj)oubj)}(hjh]h*}(hjyohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)oubjJ)}(hsockh]hsock}(hjohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj)oubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj%oubj)}(hstruct sockaddr *skaddrh](j!)}(hj$h]hstruct}(hjohhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjoubj3)}(h h]h }(hjohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjoubh)}(hhh]jJ)}(hsockaddrh]hsockaddr}(hjohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]jgo c.__tipc_bindasbuh1hhjoubj3)}(h h]h }(hjohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjoubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubjJ)}(hskaddrh]hskaddr}(hjohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjoubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj%oubj)}(hint alenh](j3)}(hinth]hint}(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj pubj3)}(h h]h }(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj pubjJ)}(halenh]halen}(hj+phhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj pubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj%oubeh}(h]h ]h"]h$]h&]hhuh1j hjnhhhjnhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjnhhhjnhMubah}(h]jnah ](jmjneh"]h$]h&]jrjs)jthuh1jhjnhMhjnhhubjv)}(hhh]h)}(h4associate or disassociate TIPC name(s) with a socketh]h4associate or disassociate TIPC name(s) with a socket}(hjUphhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjRphhubah}(h]h ]h"]h$]h&]uh1juhjnhhhjnhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmpjjmpjjjuh1jhhhjj^hNhNubj)}(hX]**Parameters** ``struct socket *sock`` socket structure ``struct sockaddr *skaddr`` socket address describing name(s) and desired operation ``int alen`` size of socket address data structure **Description** Name and name sequence binding are indicated using a positive scope value; a negative scope value unbinds the specified name. Specifying no name (i.e. a socket address length of 0) unbinds all names from the socket. **Return** 0 on success, errno otherwise **NOTE** This routine doesn't need to take the socket lock since it doesn't access any non-constant socket information.h](h)}(h**Parameters**h]j)}(hjwph]h Parameters}(hjyphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjupubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqpubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hjph]hstruct socket *sock}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjpubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphMhjpubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjphMhjpubj)}(hT``struct sockaddr *skaddr`` socket address describing name(s) and desired operation h](j)}(h``struct sockaddr *skaddr``h]j)}(hjph]hstruct sockaddr *skaddr}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjpubj)}(hhh]h)}(h7socket address describing name(s) and desired operationh]h7socket address describing name(s) and desired operation}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphMhjpubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjphMhjpubj)}(h3``int alen`` size of socket address data structure h](j)}(h ``int alen``h]j)}(hjqh]hint alen}(hj qhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqubj)}(hhh]h)}(h%size of socket address data structureh]h%size of socket address data structure}(hj!qhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjpubeh}(h]h ]h"]h$]h&]uh1jhjqpubh)}(h**Description**h]j)}(hjCqh]h Description}(hjEqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAqubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqpubh)}(hName and name sequence binding are indicated using a positive scope value; a negative scope value unbinds the specified name. Specifying no name (i.e. a socket address length of 0) unbinds all names from the socket.h]hName and name sequence binding are indicated using a positive scope value; a negative scope value unbinds the specified name. Specifying no name (i.e. a socket address length of 0) unbinds all names from the socket.}(hjYqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqpubh)}(h **Return**h]j)}(hjjqh]hReturn}(hjlqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhqubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqpubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqpubh)}(h**NOTE**h]j)}(hjqh]hNOTE}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqpubj)}(hhh]j)}(hnThis routine doesn't need to take the socket lock since it doesn't access any non-constant socket information.h](j)}(hBThis routine doesn't need to take the socket lock since it doesn'th]hFThis routine doesn’t need to take the socket lock since it doesn’t}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqubj)}(hhh]h)}(h+access any non-constant socket information.h]h+access any non-constant socket information.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhjqpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_getname (C function)c.tipc_getnamehNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hHint tipc_getname (struct socket *sock, struct sockaddr *uaddr, int peer)h]j)}(hGint tipc_getname(struct socket *sock, struct sockaddr *uaddr, int peer)h](j3)}(hinth]hint}(hjrhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjqhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjrhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjqhhhjrhMubjD)}(h tipc_getnameh]jJ)}(h tipc_getnameh]h tipc_getname}(hj"rhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjrubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjqhhhjrhMubj )}(h7(struct socket *sock, struct sockaddr *uaddr, int peer)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hj>rhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj:rubj3)}(h h]h }(hjKrhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:rubh)}(hhh]jJ)}(hsocketh]hsocket}(hj\rhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjYrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^rmodnameN classnameNjj)}j]j)}jj$rsbc.tipc_getnameasbuh1hhj:rubj3)}(h h]h }(hj|rhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:rubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:rubjJ)}(hsockh]hsock}(hjrhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj:rubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6rubj)}(hstruct sockaddr *uaddrh](j!)}(hj$h]hstruct}(hjrhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjrubj3)}(h h]h }(hjrhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjrubh)}(hhh]jJ)}(hsockaddrh]hsockaddr}(hjrhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jxrc.tipc_getnameasbuh1hhjrubj3)}(h h]h }(hjrhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjrubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubjJ)}(huaddrh]huaddr}(hjshhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjrubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6rubj)}(hint peerh](j3)}(hinth]hint}(hj shhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjsubj3)}(h h]h }(hj.shhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjsubjJ)}(hpeerh]hpeer}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj:ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj+hMubj )}(h?(struct socket *sock, struct msghdr *m, int dlen, long timeout)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hjZhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjVubj3)}(h h]h }(hjghhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjVubh)}(hhh]jJ)}(hsocketh]hsocket}(hjxhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jj@sbc.tipc_send_group_mcastasbuh1hhjVubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubjJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjRubj)}(hstruct msghdr *mh](j!)}(hj$h]hstruct}(hj̊hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjȊubj3)}(h h]h }(hjيhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjȊubh)}(hhh]jJ)}(hmsghdrh]hmsghdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_send_group_mcastasbuh1hhjȊubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjȊubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjȊubjJ)}(hj6h]hm}(hj#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjȊubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjRubj)}(hint dlenh](j3)}(hinth]hint}(hj;hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7ubj3)}(h h]h }(hjIhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7ubjJ)}(hdlenh]hdlen}(hjWhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj7ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjRubj)}(h long timeouth](j3)}(hlongh]hlong}(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjlubj3)}(h h]h }(hj~hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjlubjJ)}(htimeouth]htimeout}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjlubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjRubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhj+hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj+hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj+hMhjhhubjv)}(hhh]h)}(h/send message to all members with given identityh]h/send message to all members with given identity}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMyhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj+hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj΋jj΋jjjuh1jhhhjj^hNhNubj)}(hXQ**Parameters** ``struct socket *sock`` socket structure ``struct msghdr *m`` message to send ``int dlen`` total length of message data ``long timeout`` timeout to wait for wakeup **Description** Called from function tipc_sendmsg(), which has done all sanity checks **Return** the number of bytes sent on success, or errnoh](h)}(h**Parameters**h]j)}(hj؋h]h Parameters}(hjڋhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj֋ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM}hjҋubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hjh]hstruct socket *sock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMzhjubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMzhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMzhjubj)}(h%``struct msghdr *m`` message to send h](j)}(h``struct msghdr *m``h]j)}(hj0h]hstruct msghdr *m}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM{hj*ubj)}(hhh]h)}(hmessage to sendh]hmessage to send}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhM{hjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhM{hjubj)}(h*``int dlen`` total length of message data h](j)}(h ``int dlen``h]j)}(hjih]hint dlen}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM|hjcubj)}(hhh]h)}(htotal length of message datah]htotal length of message data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hM|hjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hM|hjubj)}(h,``long timeout`` timeout to wait for wakeup h](j)}(h``long timeout``h]j)}(hjh]h long timeout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM}hjubj)}(hhh]h)}(htimeout to wait for wakeuph]htimeout to wait for wakeup}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM}hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM}hjubeh}(h]h ]h"]h$]h&]uh1jhjҋubh)}(h**Description**h]j)}(hj݌h]h Description}(hjߌhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjیubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjҋubh)}(hECalled from function tipc_sendmsg(), which has done all sanity checksh]hECalled from function tipc_sendmsg(), which has done all sanity checks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjҋubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjҋubh)}(h-the number of bytes sent on success, or errnoh]h-the number of bytes sent on success, or errno}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjҋubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sk_mcast_rcv (C function)c.tipc_sk_mcast_rcvhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(havoid tipc_sk_mcast_rcv (struct net *net, struct sk_buff_head *arrvq, struct sk_buff_head *inputq)h]j)}(h`void tipc_sk_mcast_rcv(struct net *net, struct sk_buff_head *arrvq, struct sk_buff_head *inputq)h](j3)}(hvoidh]hvoid}(hjIhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjEhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjEhhhjWhMubjD)}(htipc_sk_mcast_rcvh]jJ)}(htipc_sk_mcast_rcvh]htipc_sk_mcast_rcv}(hjjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjfubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjEhhhjWhMubj )}(hJ(struct net *net, struct sk_buff_head *arrvq, struct sk_buff_head *inputq)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjlsbc.tipc_sk_mcast_rcvasbuh1hhjubj3)}(h h]h }(hjčhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjҍhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hneth]hnet}(hjߍhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj~ubj)}(hstruct sk_buff_head *arrvqh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_mcast_rcvasbuh1hhjubj3)}(h h]h }(hj4hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(harrvqh]harrvq}(hjOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj~ubj)}(hstruct sk_buff_head *inputqh](j!)}(hj$h]hstruct}(hjhhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjdubj3)}(h h]h }(hjuhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjdubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_mcast_rcvasbuh1hhjdubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjdubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubjJ)}(hinputqh]hinputq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjdubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj~ubeh}(h]h ]h"]h$]h&]hhuh1j hjEhhhjWhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjAhhhjWhMubah}(h]j<ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjWhMhj>hhubjv)}(hhh]h)}(h5Deliver multicast messages to all destination socketsh]h5Deliver multicast messages to all destination sockets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhj>hhhjWhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(hXj**Parameters** ``struct net *net`` the associated network namespace ``struct sk_buff_head *arrvq`` queue with arriving messages, to be cloned after destination lookup ``struct sk_buff_head *inputq`` queue with cloned messages, delivered to socket after dest lookup **Description** Multi-threaded: parallel calls with reference to same queues may occurh](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh](j)}(h5``struct net *net`` the associated network namespace h](j)}(h``struct net *net``h]j)}(hj*h]hstruct net *net}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj$ubj)}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMhj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhj!ubj)}(hc``struct sk_buff_head *arrvq`` queue with arriving messages, to be cloned after destination lookup h](j)}(h``struct sk_buff_head *arrvq``h]j)}(hjch]hstruct sk_buff_head *arrvq}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj]ubj)}(hhh]h)}(hCqueue with arriving messages, to be cloned after destination lookuph]hCqueue with arriving messages, to be cloned after destination lookup}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhMhjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhMhj!ubj)}(hb``struct sk_buff_head *inputq`` queue with cloned messages, delivered to socket after dest lookup h](j)}(h``struct sk_buff_head *inputq``h]j)}(hjh]hstruct sk_buff_head *inputq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh]h)}(hAqueue with cloned messages, delivered to socket after dest lookuph]hAqueue with cloned messages, delivered to socket after dest lookup}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj!ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj׏h]h Description}(hjُhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjՏubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubh)}(hFMulti-threaded: parallel calls with reference to same queues may occurh]hFMulti-threaded: parallel calls with reference to same queues may occur}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j #tipc_sk_conn_proto_rcv (C function)c.tipc_sk_conn_proto_rcvhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hvoid tipc_sk_conn_proto_rcv (struct tipc_sock *tsk, struct sk_buff *skb, struct sk_buff_head *inputq, struct sk_buff_head *xmitq)h]j)}(hvoid tipc_sk_conn_proto_rcv(struct tipc_sock *tsk, struct sk_buff *skb, struct sk_buff_head *inputq, struct sk_buff_head *xmitq)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM,ubj3)}(h h]h }(hj+hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj*hM,ubjD)}(htipc_sk_conn_proto_rcvh]jJ)}(htipc_sk_conn_proto_rcvh]htipc_sk_conn_proto_rcv}(hj=hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj9ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj*hM,ubj )}(he(struct tipc_sock *tsk, struct sk_buff *skb, struct sk_buff_head *inputq, struct sk_buff_head *xmitq)h](j)}(hstruct tipc_sock *tskh](j!)}(hj$h]hstruct}(hjYhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjUubj3)}(h h]h }(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjUubh)}(hhh]jJ)}(h tipc_sockh]h tipc_sock}(hjwhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j)}jj?sbc.tipc_sk_conn_proto_rcvasbuh1hhjUubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubjJ)}(htskh]htsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjUubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjQubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjːhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjǐubj3)}(h h]h }(hjؐhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjǐubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_conn_proto_rcvasbuh1hhjǐubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjǐubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjǐubjJ)}(hskbh]hskb}(hj"hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjǐubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjQubj)}(hstruct sk_buff_head *inputqh](j!)}(hj$h]hstruct}(hj;hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj7ubj3)}(h h]h }(hjHhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7ubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjYhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]jc.tipc_sk_conn_proto_rcvasbuh1hhj7ubj3)}(h h]h }(hjwhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubjJ)}(hinputqh]hinputq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj7ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjQubj)}(hstruct sk_buff_head *xmitqh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjɑhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjƑubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjˑmodnameN classnameNjj)}j]jc.tipc_sk_conn_proto_rcvasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hxmitqh]hxmitq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjQubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhj*hM,ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj*hM,ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj*hM,hjhhubjv)}(hhh]h)}(h)receive a connection mng protocol messageh]h)receive a connection mng protocol message}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM&hj)hhubah}(h]h ]h"]h$]h&]uh1juhjhhhj*hM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjDjjDjjjuh1jhhhjj^hNhNubj)}(h**Parameters** ``struct tipc_sock *tsk`` receiving socket ``struct sk_buff *skb`` pointer to message buffer. ``struct sk_buff_head *inputq`` buffer list containing the buffers ``struct sk_buff_head *xmitq`` output message areah](h)}(h**Parameters**h]j)}(hjNh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM*hjHubj)}(hhh](j)}(h+``struct tipc_sock *tsk`` receiving socket h](j)}(h``struct tipc_sock *tsk``h]j)}(hjmh]hstruct tipc_sock *tsk}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM'hjgubj)}(hhh]h)}(hreceiving socketh]hreceiving socket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjdubj)}(h3``struct sk_buff *skb`` pointer to message buffer. h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM(hjubj)}(hhh]h)}(hpointer to message buffer.h]hpointer to message buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM(hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM(hjdubj)}(hC``struct sk_buff_head *inputq`` buffer list containing the buffers h](j)}(h``struct sk_buff_head *inputq``h]j)}(hjߒh]hstruct sk_buff_head *inputq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjݒubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM)hjْubj)}(hhh]h)}(h"buffer list containing the buffersh]h"buffer list containing the buffers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM)hjubah}(h]h ]h"]h$]h&]uh1jhjْubeh}(h]h ]h"]h$]h&]uh1jhjhM)hjdubj)}(h2``struct sk_buff_head *xmitq`` output message areah](j)}(h``struct sk_buff_head *xmitq``h]j)}(hjh]hstruct sk_buff_head *xmitq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM+hjubj)}(hhh]h)}(houtput message areah]houtput message area}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM*hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hM+hjdubeh}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sendmsg (C function)c.tipc_sendmsghNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hDint tipc_sendmsg (struct socket *sock, struct msghdr *m, size_t dsz)h]j)}(hCint tipc_sendmsg(struct socket *sock, struct msghdr *m, size_t dsz)h](j3)}(hinth]hint}(hjrhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjnhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMpubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjnhhhjhMpubjD)}(h tipc_sendmsgh]jJ)}(h tipc_sendmsgh]h tipc_sendmsg}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjnhhhjhMpubj )}(h3(struct socket *sock, struct msghdr *m, size_t dsz)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsocketh]hsocket}(hj͓hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjʓubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjϓmodnameN classnameNjj)}j]j)}jjsbc.tipc_sendmsgasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct msghdr *mh](j!)}(hj$h]hstruct}(hj!hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hmsghdrh]hmsghdr}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]jc.tipc_sendmsgasbuh1hhjubj3)}(h h]h }(hj]hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hj6h]hm}(hjxhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t dszh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sendmsgasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hdszh]hdsz}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjnhhhjhMpubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjjhhhjhMpubah}(h]jeah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMphjghhubjv)}(hhh]h)}(h%send message in connectionless mannerh]h%send message in connectionless manner}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMdhjhhubah}(h]h ]h"]h$]h&]uh1juhjghhhjhMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(hX**Parameters** ``struct socket *sock`` socket structure ``struct msghdr *m`` message to send ``size_t dsz`` amount of user data to be sent **Description** Message must have an destination specified explicitly. Used for SOCK_RDM and SOCK_DGRAM messages, and for 'SYN' messages on SOCK_SEQPACKET and SOCK_STREAM connections. (Note: 'SYN+' is prohibited on SOCK_STREAM.) **Return** the number of bytes sent on success, or errno otherwiseh](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhhjubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hj*h]hstruct socket *sock}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMehj$ubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMehj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hMehj!ubj)}(h%``struct msghdr *m`` message to send h](j)}(h``struct msghdr *m``h]j)}(hjch]hstruct msghdr *m}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMfhj]ubj)}(hhh]h)}(hmessage to sendh]hmessage to send}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhMfhjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhMfhj!ubj)}(h.``size_t dsz`` amount of user data to be sent h](j)}(h``size_t dsz``h]j)}(hjh]h size_t dsz}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMghjubj)}(hhh]h)}(hamount of user data to be senth]hamount of user data to be sent}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMghjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMghj!ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjוh]h Description}(hjٕhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjՕubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMihjubh)}(hMessage must have an destination specified explicitly. Used for SOCK_RDM and SOCK_DGRAM messages, and for 'SYN' messages on SOCK_SEQPACKET and SOCK_STREAM connections. (Note: 'SYN+' is prohibited on SOCK_STREAM.)h]hMessage must have an destination specified explicitly. Used for SOCK_RDM and SOCK_DGRAM messages, and for ‘SYN’ messages on SOCK_SEQPACKET and SOCK_STREAM connections. (Note: ‘SYN+’ is prohibited on SOCK_STREAM.)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMihjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMnhjubh)}(h7the number of bytes sent on success, or errno otherwiseh]h7the number of bytes sent on success, or errno otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMnhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sendstream (C function)c.tipc_sendstreamhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hGint tipc_sendstream (struct socket *sock, struct msghdr *m, size_t dsz)h]j)}(hFint tipc_sendstream(struct socket *sock, struct msghdr *m, size_t dsz)h](j3)}(hinth]hint}(hjChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjRhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?hhhjQhMubjD)}(htipc_sendstreamh]jJ)}(htipc_sendstreamh]htipc_sendstream}(hjdhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj`ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj?hhhjQhMubj )}(h3(struct socket *sock, struct msghdr *m, size_t dsz)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj|ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|ubh)}(hhh]jJ)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjfsbc.tipc_sendstreamasbuh1hhj|ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|ubj)}(hjh]h*}(hj̖hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubjJ)}(hsockh]hsock}(hjٖhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj|ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjxubj)}(hstruct msghdr *mh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hmsghdrh]hmsghdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sendstreamasbuh1hhjubj3)}(h h]h }(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hj6h]hm}(hjIhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjxubj)}(h size_t dszh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hjdhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]jc.tipc_sendstreamasbuh1hhj]ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj]ubjJ)}(hdszh]hdsz}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjxubeh}(h]h ]h"]h$]h&]hhuh1j hj?hhhjQhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj;hhhjQhMubah}(h]j6ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjQhMhj8hhubjv)}(hhh]h)}(hsend stream-oriented datah]hsend stream-oriented data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhj8hhhjQhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjҗjjҗjjjuh1jhhhjj^hNhNubj)}(hX%**Parameters** ``struct socket *sock`` socket structure ``struct msghdr *m`` data to send ``size_t dsz`` total length of data to be transmitted **Description** Used for SOCK_STREAM data. **Return** the number of bytes sent on success (or partial success), or errno if no data senth](h)}(h**Parameters**h]j)}(hjܗh]h Parameters}(hjޗhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjڗubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj֗ubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hjh]hstruct socket *sock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h"``struct msghdr *m`` data to send h](j)}(h``struct msghdr *m``h]j)}(hj4h]hstruct msghdr *m}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj.ubj)}(hhh]h)}(h data to sendh]h data to send}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMhjubj)}(h6``size_t dsz`` total length of data to be transmitted h](j)}(h``size_t dsz``h]j)}(hjmh]h size_t dsz}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjgubj)}(hhh]h)}(h&total length of data to be transmittedh]h&total length of data to be transmitted}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhj֗ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj֗ubh)}(hUsed for SOCK_STREAM data.h]hUsed for SOCK_STREAM data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj֗ubh)}(h **Return**h]j)}(hjϘh]hReturn}(hjјhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj͘ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj֗ubh)}(hRthe number of bytes sent on success (or partial success), or errno if no data senth]hRthe number of bytes sent on success (or partial success), or errno if no data sent}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj֗ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_send_packet (C function)c.tipc_send_packethNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hHint tipc_send_packet (struct socket *sock, struct msghdr *m, size_t dsz)h]j)}(hGint tipc_send_packet(struct socket *sock, struct msghdr *m, size_t dsz)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMoubj3)}(h h]h }(hj#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj"hMoubjD)}(htipc_send_packeth]jJ)}(htipc_send_packeth]htipc_send_packet}(hj5hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj1ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj"hMoubj )}(h3(struct socket *sock, struct msghdr *m, size_t dsz)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hjQhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjMubj3)}(h h]h }(hj^hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMubh)}(hhh]jJ)}(hsocketh]hsocket}(hjohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jj7sbc.tipc_send_packetasbuh1hhjMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubjJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjMubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubj)}(hstruct msghdr *mh](j!)}(hj$h]hstruct}(hjÙhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjЙhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hmsghdrh]hmsghdr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjޙubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_send_packetasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hj6h]hm}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubj)}(h size_t dszh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hj5hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]jc.tipc_send_packetasbuh1hhj.ubj3)}(h h]h }(hjShhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj.ubjJ)}(hdszh]hdsz}(hjahhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhj"hMoubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj hhhj"hMoubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj"hMohj hhubjv)}(hhh]h)}(h"send a connection-oriented messageh]h"send a connection-oriented message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMfhjhhubah}(h]h ]h"]h$]h&]uh1juhj hhhj"hMoubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(hX**Parameters** ``struct socket *sock`` socket structure ``struct msghdr *m`` message to send ``size_t dsz`` length of data to be transmitted **Description** Used for SOCK_SEQPACKET messages. **Return** the number of bytes sent on success, or errno otherwiseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMjhjubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hj̚h]hstruct socket *sock}(hjΚhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjʚubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMghjƚubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMghjubah}(h]h ]h"]h$]h&]uh1jhjƚubeh}(h]h ]h"]h$]h&]uh1jhjhMghjÚubj)}(h%``struct msghdr *m`` message to send h](j)}(h``struct msghdr *m``h]j)}(hjh]hstruct msghdr *m}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhhjubj)}(hhh]h)}(hmessage to sendh]hmessage to send}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhhjÚubj)}(h0``size_t dsz`` length of data to be transmitted h](j)}(h``size_t dsz``h]j)}(hj>h]h size_t dsz}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMihj8ubj)}(hhh]h)}(h length of data to be transmittedh]h length of data to be transmitted}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShMihjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShMihjÚubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjyh]h Description}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMkhjubh)}(h!Used for SOCK_SEQPACKET messages.h]h!Used for SOCK_SEQPACKET messages.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMkhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMmhjubh)}(h7the number of bytes sent on success, or errno otherwiseh]h7the number of bytes sent on success, or errno otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMmhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j "tipc_sk_set_orig_addr (C function)c.tipc_sk_set_orig_addrhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hBvoid tipc_sk_set_orig_addr (struct msghdr *m, struct sk_buff *skb)h]j)}(hAvoid tipc_sk_set_orig_addr(struct msghdr *m, struct sk_buff *skb)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMubjD)}(htipc_sk_set_orig_addrh]jJ)}(htipc_sk_set_orig_addrh]htipc_sk_set_orig_addr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMubj )}(h'(struct msghdr *m, struct sk_buff *skb)h](j)}(hstruct msghdr *mh](j!)}(hj$h]hstruct}(hj"hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hmsghdrh]hmsghdr}(hj@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]j)}jjsbc.tipc_sk_set_orig_addrasbuh1hhjubj3)}(h h]h }(hj`hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hj6h]hm}(hj{hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j\c.tipc_sk_set_orig_addrasbuh1hhjubj3)}(h h]h }(hjϜhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjݜhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjݛhhhjhMubah}(h]j؛ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjڛhhubjv)}(hhh]h)}(h-capture sender's address for received messageh]h/capture sender’s address for received message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjڛhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1jhhhjj^hNhNubj)}(h**Parameters** ``struct msghdr *m`` descriptor for message info ``struct sk_buff *skb`` received message **Note** Address is not captured if not requested by receiver.h](h)}(h**Parameters**h]j)}(hj6h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj0ubj)}(hhh](j)}(h1``struct msghdr *m`` descriptor for message info h](j)}(h``struct msghdr *m``h]j)}(hjUh]hstruct msghdr *m}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjOubj)}(hhh]h)}(hdescriptor for message infoh]hdescriptor for message info}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhMhjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhMhjLubj)}(h)``struct sk_buff *skb`` received message h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh]h)}(hreceived messageh]hreceived message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjLubeh}(h]h ]h"]h$]h&]uh1jhj0ubh)}(h**Note**h]j)}(hjɝh]hNote}(hj˝hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjǝubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj0ubh)}(h5Address is not captured if not requested by receiver.h]h5Address is not captured if not requested by receiver.}(hjߝhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j "tipc_sk_anc_data_recv (C function)c.tipc_sk_anc_data_recvhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hXint tipc_sk_anc_data_recv (struct msghdr *m, struct sk_buff *skb, struct tipc_sock *tsk)h]j)}(hWint tipc_sk_anc_data_recv(struct msghdr *m, struct sk_buff *skb, struct tipc_sock *tsk)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhjhMubjD)}(htipc_sk_anc_data_recvh]jJ)}(htipc_sk_anc_data_recvh]htipc_sk_anc_data_recv}(hj/hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj+ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj hhhjhMubj )}(h>(struct msghdr *m, struct sk_buff *skb, struct tipc_sock *tsk)h](j)}(hstruct msghdr *mh](j!)}(hj$h]hstruct}(hjKhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjGubj3)}(h h]h }(hjXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjGubh)}(hhh]jJ)}(hmsghdrh]hmsghdr}(hjihhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jj1sbc.tipc_sk_anc_data_recvasbuh1hhjGubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubjJ)}(hj6h]hm}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjCubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjɞhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjڞhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjמubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjܞmodnameN classnameNjj)}j]jc.tipc_sk_anc_data_recvasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjCubj)}(hstruct tipc_sock *tskh](j!)}(hj$h]hstruct}(hj,hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj(ubj3)}(h h]h }(hj9hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj(ubh)}(hhh]jJ)}(h tipc_sockh]h tipc_sock}(hjJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]jc.tipc_sk_anc_data_recvasbuh1hhj(ubj3)}(h h]h }(hjhhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj(ubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubjJ)}(htskh]htsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjCubeh}(h]h ]h"]h$]h&]hhuh1j hj hhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]h)}(h6optionally capture ancillary data for received messageh]h6optionally capture ancillary data for received message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjşjjşjjjuh1jhhhjj^hNhNubj)}(hX***Parameters** ``struct msghdr *m`` descriptor for message info ``struct sk_buff *skb`` received message buffer ``struct tipc_sock *tsk`` TIPC port associated with message **Note** Ancillary data is not captured if not requested by receiver. **Return** 0 if successful, otherwise errnoh](h)}(h**Parameters**h]j)}(hjϟh]h Parameters}(hjџhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj͟ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjɟubj)}(hhh](j)}(h1``struct msghdr *m`` descriptor for message info h](j)}(h``struct msghdr *m``h]j)}(hjh]hstruct msghdr *m}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh]h)}(hdescriptor for message infoh]hdescriptor for message info}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h0``struct sk_buff *skb`` received message buffer h](j)}(h``struct sk_buff *skb``h]j)}(hj'h]hstruct sk_buff *skb}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj!ubj)}(hhh]h)}(hreceived message bufferh]hreceived message buffer}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhjubj)}(h<``struct tipc_sock *tsk`` TIPC port associated with message h](j)}(h``struct tipc_sock *tsk``h]j)}(hj`h]hstruct tipc_sock *tsk}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjZubj)}(hhh]h)}(h!TIPC port associated with messageh]h!TIPC port associated with message}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhMhjvubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjuhMhjubeh}(h]h ]h"]h$]h&]uh1jhjɟubh)}(h**Note**h]j)}(hjh]hNote}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjɟubh)}(hhhhjThMubah}(h]j9ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjThMhj;hhubjv)}(hhh]h)}(hreceive stream-oriented datah]hreceive stream-oriented data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhj;hhhjThMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1jhhhjj^hNhNubj)}(hX**Parameters** ``struct socket *sock`` network socket ``struct msghdr *m`` descriptor for message info ``size_t buflen`` total size of user buffer area ``int flags`` receive flags **Description** Used for SOCK_STREAM messages only. If not enough data is available will optionally wait for more; never truncates data. **Return** size of returned message data, errno otherwiseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh](j)}(h'``struct socket *sock`` network socket h](j)}(h``struct socket *sock``h]j)}(hj3h]hstruct socket *sock}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj-ubj)}(hhh]h)}(hnetwork socketh]hnetwork socket}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMhj*ubj)}(h1``struct msghdr *m`` descriptor for message info h](j)}(h``struct msghdr *m``h]j)}(hjlh]hstruct msghdr *m}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjfubj)}(hhh]h)}(hdescriptor for message infoh]hdescriptor for message info}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhMhj*ubj)}(h1``size_t buflen`` total size of user buffer area h](j)}(h``size_t buflen``h]j)}(hjh]h size_t buflen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh]h)}(htotal size of user buffer areah]htotal size of user buffer area}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj*ubj)}(h``int flags`` receive flags h](j)}(h ``int flags``h]j)}(hjަh]h int flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjܦubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjئubj)}(hhh]h)}(h receive flagsh]h receive flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjئubeh}(h]h ]h"]h$]h&]uh1jhjhMhj*ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubh)}(hyUsed for SOCK_STREAM messages only. If not enough data is available will optionally wait for more; never truncates data.h]hyUsed for SOCK_STREAM messages only. If not enough data is available will optionally wait for more; never truncates data.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubh)}(h **Return**h]j)}(hj@h]hReturn}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubh)}(h.size of returned message data, errno otherwiseh]h.size of returned message data, errno otherwise}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_write_space (C function)c.tipc_write_spacehNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h'void tipc_write_space (struct sock *sk)h]j)}(h&void tipc_write_space(struct sock *sk)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM=ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM=ubjD)}(htipc_write_spaceh]jJ)}(htipc_write_spaceh]htipc_write_space}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM=ubj )}(h(struct sock *sk)h]j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hj§hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjϧhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjݧubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_write_spaceasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM=ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj}hhhjhM=ubah}(h]jxah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM=hjzhhubjv)}(hhh]h)}(h-wake up thread if port congestion is releasedh]h-wake up thread if port congestion is released}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM:hjBhhubah}(h]h ]h"]h$]h&]uh1juhjzhhhjhM=ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1jhhhjj^hNhNubj)}(h,**Parameters** ``struct sock *sk`` socketh](h)}(h**Parameters**h]j)}(hjgh]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM>hjaubj)}(hhh]j)}(h``struct sock *sk`` socketh](j)}(h``struct sock *sk``h]j)}(hjh]hstruct sock *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM@hjubj)}(hhh]h)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM;hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM@hj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_data_ready (C function)c.tipc_data_readyhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h&void tipc_data_ready (struct sock *sk)h]j)}(h%void tipc_data_ready(struct sock *sk)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjܨhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjܨhhhjhMMubjD)}(htipc_data_readyh]jJ)}(htipc_data_readyh]htipc_data_ready}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjܨhhhjhMMubj )}(h(struct sock *sk)h]j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj*hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsockh]hsock}(hj;hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j)}jjsbc.tipc_data_readyasbuh1hhjubj3)}(h h]h }(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskh]hsk}(hjvhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjܨhhhjhMMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjبhhhjhMMubah}(h]jӨah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMMhjըhhubjv)}(hhh]h)}(h7wake up threads to indicate messages have been receivedh]h7wake up threads to indicate messages have been received}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMJhjhhubah}(h]h ]h"]h$]h&]uh1juhjըhhhjhMMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(h,**Parameters** ``struct sock *sk`` socketh](h)}(h**Parameters**h]j)}(hj©h]h Parameters}(hjĩhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMNhjubj)}(hhh]j)}(h``struct sock *sk`` socketh](j)}(h``struct sock *sk``h]j)}(hjh]hstruct sock *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjߩubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMPhj۩ubj)}(hhh]h)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMKhjubah}(h]h ]h"]h$]h&]uh1jhj۩ubeh}(h]h ]h"]h$]h&]uh1jhjhMPhjةubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j #tipc_sk_filter_connect (C function)c.tipc_sk_filter_connecthNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hdbool tipc_sk_filter_connect (struct tipc_sock *tsk, struct sk_buff *skb, struct sk_buff_head *xmitq)h]j)}(hcbool tipc_sk_filter_connect(struct tipc_sock *tsk, struct sk_buff *skb, struct sk_buff_head *xmitq)h](j3)}(hjgh]hbool}(hj;hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjIhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj7hhhjHhMubjD)}(htipc_sk_filter_connecth]jJ)}(htipc_sk_filter_connecth]htipc_sk_filter_connect}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjWubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj7hhhjHhMubj )}(hH(struct tipc_sock *tsk, struct sk_buff *skb, struct sk_buff_head *xmitq)h](j)}(hstruct tipc_sock *tskh](j!)}(hj$h]hstruct}(hjwhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjsubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjsubh)}(hhh]jJ)}(h tipc_sockh]h tipc_sock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj]sbc.tipc_sk_filter_connectasbuh1hhjsubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjsubj)}(hjh]h*}(hjêhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubjJ)}(htskh]htsk}(hjЪhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjsubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjoubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.tipc_sk_filter_connectasbuh1hhjubj3)}(h h]h }(hj%hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hj@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjoubj)}(hstruct sk_buff_head *xmitqh](j!)}(hj$h]hstruct}(hjYhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjUubj3)}(h h]h }(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjUubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjwhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jc.tipc_sk_filter_connectasbuh1hhjUubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubjJ)}(hxmitqh]hxmitq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjUubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjoubeh}(h]h ]h"]h$]h&]hhuh1j hj7hhhjHhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj3hhhjHhMubah}(h]j.ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjHhMhj0hhubjv)}(hhh]h)}(h4check incoming message for a connection-based socketh]h4check incoming message for a connection-based socket}(hjګhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj׫hhubah}(h]h ]h"]h$]h&]uh1juhj0hhhjHhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(h**Parameters** ``struct tipc_sock *tsk`` TIPC socket ``struct sk_buff *skb`` pointer to message buffer. ``struct sk_buff_head *xmitq`` for Nagle ACK if any **Return** true if message should be added to receive queue, false otherwiseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh](j)}(h&``struct tipc_sock *tsk`` TIPC socket h](j)}(h``struct tipc_sock *tsk``h]j)}(hjh]hstruct tipc_sock *tsk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh]h)}(h TIPC socketh]h TIPC socket}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hMhjubj)}(h3``struct sk_buff *skb`` pointer to message buffer. h](j)}(h``struct sk_buff *skb``h]j)}(hjTh]hstruct sk_buff *skb}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjNubj)}(hhh]h)}(hpointer to message buffer.h]hpointer to message buffer.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihMhjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihMhjubj)}(h4``struct sk_buff_head *xmitq`` for Nagle ACK if any h](j)}(h``struct sk_buff_head *xmitq``h]j)}(hjh]hstruct sk_buff_head *xmitq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh]h)}(hfor Nagle ACK if anyh]hfor Nagle ACK if any}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjȬh]hReturn}(hjʬhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjƬubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubh)}(hAtrue if message should be added to receive queue, false otherwiseh]hAtrue if message should be added to receive queue, false otherwise}(hjެhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j rcvbuf_limit (C function)c.rcvbuf_limithNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h@unsigned int rcvbuf_limit (struct sock *sk, struct sk_buff *skb)h]j)}(h?unsigned int rcvbuf_limit(struct sock *sk, struct sk_buff *skb)h](j3)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhjhM ubj3)}(hinth]hint}(hj*hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhjhM ubj3)}(h h]h }(hj8hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhjhM ubjD)}(h rcvbuf_limith]jJ)}(h rcvbuf_limith]h rcvbuf_limit}(hjJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjFubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj hhhjhM ubj )}(h&(struct sock *sk, struct sk_buff *skb)h](j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjfhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjbubj3)}(h h]h }(hjshhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbubh)}(hhh]jJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjLsbc.rcvbuf_limitasbuh1hhjbubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjbubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjحhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjԭubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjԭubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.rcvbuf_limitasbuh1hhjԭubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjԭubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjԭubjJ)}(hskbh]hskb}(hj/hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjԭubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubeh}(h]h ]h"]h$]h&]hhuh1j hj hhhjhM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]h)}(h1get proper overload limit of socket receive queueh]h1get proper overload limit of socket receive queue}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjVhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1jhhhjj^hNhNubj)}(hX**Parameters** ``struct sock *sk`` socket ``struct sk_buff *skb`` message **Description** For connection oriented messages, irrespective of importance, default queue limit is 2 MB. For connectionless messages, queue limits are based on message importance as follows: TIPC_LOW_IMPORTANCE (2 MB) TIPC_MEDIUM_IMPORTANCE (4 MB) TIPC_HIGH_IMPORTANCE (8 MB) TIPC_CRITICAL_IMPORTANCE (16 MB) **Return** overload limit according to corresponding message importanceh](h)}(h**Parameters**h]j)}(hj{h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjuubj)}(hhh](j)}(h``struct sock *sk`` socket h](j)}(h``struct sock *sk``h]j)}(hjh]hstruct sock *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj)}(hhh]h)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h ``struct sk_buff *skb`` message h](j)}(h``struct sk_buff *skb``h]j)}(hjӮh]hstruct sk_buff *skb}(hjծhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjѮubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjͮubj)}(hhh]h)}(hmessageh]hmessage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjͮubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjuubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjuubh)}(hZFor connection oriented messages, irrespective of importance, default queue limit is 2 MB.h]hZFor connection oriented messages, irrespective of importance, default queue limit is 2 MB.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjuubh)}(hUFor connectionless messages, queue limits are based on message importance as follows:h]hUFor connectionless messages, queue limits are based on message importance as follows:}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjuubh)}(hTIPC_LOW_IMPORTANCE (2 MB) TIPC_MEDIUM_IMPORTANCE (4 MB) TIPC_HIGH_IMPORTANCE (8 MB) TIPC_CRITICAL_IMPORTANCE (16 MB)h]hTIPC_LOW_IMPORTANCE (2 MB) TIPC_MEDIUM_IMPORTANCE (4 MB) TIPC_HIGH_IMPORTANCE (8 MB) TIPC_CRITICAL_IMPORTANCE (16 MB)}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjuubh)}(h **Return**h]j)}(hjSh]hReturn}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjuubh)}(hint tipc_sk_backlog_rcv (struct sock *sk, struct sk_buff *skb)h]j)}(h=int tipc_sk_backlog_rcv(struct sock *sk, struct sk_buff *skb)h](j3)}(hinth]hint}(hjzhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjvhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM] ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjvhhhjhM] ubjD)}(htipc_sk_backlog_rcvh]jJ)}(htipc_sk_backlog_rcvh]htipc_sk_backlog_rcv}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjvhhhjhM] ubj )}(h&(struct sock *sk, struct sk_buff *skb)h](j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjIJhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsockh]hsock}(hjղhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjҲubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjײmodnameN classnameNjj)}j]j)}jjsbc.tipc_sk_backlog_rcvasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hj)hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj%ubj3)}(h h]h }(hj6hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%ubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjGhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]jc.tipc_sk_backlog_rcvasbuh1hhj%ubj3)}(h h]h }(hjehhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%ubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubjJ)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjvhhhjhM] ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjrhhhjhM] ubah}(h]jmah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM] hjohhubjv)}(hhh]h)}(h*handle incoming message from backlog queueh]h*handle incoming message from backlog queue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMW hjhhubah}(h]h ]h"]h$]h&]uh1juhjohhhjhM] ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj³jj³jjjuh1jhhhjj^hNhNubj)}(h~**Parameters** ``struct sock *sk`` socket ``struct sk_buff *skb`` message **Description** Caller must hold socket lockh](h)}(h**Parameters**h]j)}(hj̳h]h Parameters}(hjγhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjʳubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM[ hjƳubj)}(hhh](j)}(h``struct sock *sk`` socket h](j)}(h``struct sock *sk``h]j)}(hjh]hstruct sock *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMX hjubj)}(hhh]h)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMX hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMX hjubj)}(h ``struct sk_buff *skb`` message h](j)}(h``struct sk_buff *skb``h]j)}(hj$h]hstruct sk_buff *skb}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMY hjubj)}(hhh]h)}(hmessageh]hmessage}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMY hj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hMY hjubeh}(h]h ]h"]h$]h&]uh1jhjƳubh)}(h**Description**h]j)}(hj_h]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM[ hjƳubh)}(hCaller must hold socket lockh]hCaller must hold socket lock}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM[ hjƳubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sk_enqueue (C function)c.tipc_sk_enqueuehNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hjvoid tipc_sk_enqueue (struct sk_buff_head *inputq, struct sock *sk, u32 dport, struct sk_buff_head *xmitq)h]j)}(hivoid tipc_sk_enqueue(struct sk_buff_head *inputq, struct sock *sk, u32 dport, struct sk_buff_head *xmitq)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMx ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMx ubjD)}(htipc_sk_enqueueh]jJ)}(htipc_sk_enqueueh]htipc_sk_enqueue}(hjŴhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMx ubj )}(hU(struct sk_buff_head *inputq, struct sock *sk, u32 dport, struct sk_buff_head *xmitq)h](j)}(hstruct sk_buff_head *inputqh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjݴubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjݴubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjǴsbc.tipc_sk_enqueueasbuh1hhjݴubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjݴubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjݴubjJ)}(hinputqh]hinputq}(hj:hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjݴubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjٴubj)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjShhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjOubj3)}(h h]h }(hj`hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjOubh)}(hhh]jJ)}(hsockh]hsock}(hjqhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]jc.tipc_sk_enqueueasbuh1hhjOubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjٴubj)}(h u32 dporth](h)}(hhh]jJ)}(hu32h]hu32}(hjƵhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjõubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjȵmodnameN classnameNjj)}j]jc.tipc_sk_enqueueasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hdporth]hdport}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjٴubj)}(hstruct sk_buff_head *xmitqh](j!)}(hj$h]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hj)hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]jc.tipc_sk_enqueueasbuh1hhjubj3)}(h h]h }(hjGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hxmitqh]hxmitq}(hjbhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjٴubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMx ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMx ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMx hjhhubjv)}(hhh]h)}(hgextract all buffers with destination 'dport' from inputq and try adding them to socket or backlog queueh]hkextract all buffers with destination ‘dport’ from inputq and try adding them to socket or backlog queue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMo hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMx ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(hX?**Parameters** ``struct sk_buff_head *inputq`` list of incoming buffers with potentially different destinations ``struct sock *sk`` socket where the buffers should be enqueued ``u32 dport`` port number for the socket ``struct sk_buff_head *xmitq`` output queue **Description** Caller must hold socket lockh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMs hjubj)}(hhh](j)}(ha``struct sk_buff_head *inputq`` list of incoming buffers with potentially different destinations h](j)}(h``struct sk_buff_head *inputq``h]j)}(hjͶh]hstruct sk_buff_head *inputq}(hj϶hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj˶ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMq hjǶubj)}(hhh]h)}(h@list of incoming buffers with potentially different destinationsh]h@list of incoming buffers with potentially different destinations}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMq hjubah}(h]h ]h"]h$]h&]uh1jhjǶubeh}(h]h ]h"]h$]h&]uh1jhjhMq hjĶubj)}(h@``struct sock *sk`` socket where the buffers should be enqueued h](j)}(h``struct sock *sk``h]j)}(hjh]hstruct sock *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMr hjubj)}(hhh]h)}(h+socket where the buffers should be enqueuedh]h+socket where the buffers should be enqueued}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMr hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMr hjĶubj)}(h)``u32 dport`` port number for the socket h](j)}(h ``u32 dport``h]j)}(hj?h]h u32 dport}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMs hj9ubj)}(hhh]h)}(hport number for the socketh]hport number for the socket}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMs hjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThMs hjĶubj)}(h,``struct sk_buff_head *xmitq`` output queue h](j)}(h``struct sk_buff_head *xmitq``h]j)}(hjxh]hstruct sk_buff_head *xmitq}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMt hjrubj)}(hhh]h)}(h output queueh]h output queue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMt hjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMt hjĶubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMv hjubh)}(hCaller must hold socket lockh]hCaller must hold socket lock}(hjɷhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMv hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sk_rcv (C function) c.tipc_sk_rcvhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h?void tipc_sk_rcv (struct net *net, struct sk_buff_head *inputq)h]j)}(h>void tipc_sk_rcv(struct net *net, struct sk_buff_head *inputq)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM ubjD)}(h tipc_sk_rcvh]jJ)}(h tipc_sk_rcvh]h tipc_sk_rcv}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM ubj )}(h.(struct net *net, struct sk_buff_head *inputq)h](j)}(hstruct net *neth](j!)}(hj$h]hstruct}(hj5hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj1ubj3)}(h h]h }(hjBhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj1ubh)}(hhh]jJ)}(hneth]hnet}(hjShhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjsb c.tipc_sk_rcvasbuh1hhj1ubj3)}(h h]h }(hjshhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubjJ)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubj)}(hstruct sk_buff_head *inputqh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjŸhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj¸ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjǸmodnameN classnameNjj)}j]jo c.tipc_sk_rcvasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hinputqh]hinputq}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]h)}(h"handle a chain of incoming buffersh]h"handle a chain of incoming buffers}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj%hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@jj@jjjuh1jhhhjj^hNhNubj)}(hX **Parameters** ``struct net *net`` the associated network namespace ``struct sk_buff_head *inputq`` buffer list containing the buffers Consumes all buffers in list until inputq is empty **Note** may be called in multiple threads referring to the same queueh](h)}(h**Parameters**h]j)}(hjJh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjDubj)}(hhh](j)}(h5``struct net *net`` the associated network namespace h](j)}(h``struct net *net``h]j)}(hjih]hstruct net *net}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjcubj)}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hM hjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hM hj`ubj)}(hv``struct sk_buff_head *inputq`` buffer list containing the buffers Consumes all buffers in list until inputq is empty h](j)}(h``struct sk_buff_head *inputq``h]j)}(hjh]hstruct sk_buff_head *inputq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(hUbuffer list containing the buffers Consumes all buffers in list until inputq is emptyh]hUbuffer list containing the buffers Consumes all buffers in list until inputq is empty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj`ubeh}(h]h ]h"]h$]h&]uh1jhjDubh)}(h**Note**h]j)}(hj޹h]hNote}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjܹubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjDubh)}(h=may be called in multiple threads referring to the same queueh]h=may be called in multiple threads referring to the same queue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_connect (C function)c.tipc_connecthNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hUint tipc_connect (struct socket *sock, struct sockaddr *dest, int destlen, int flags)h]j)}(hTint tipc_connect(struct socket *sock, struct sockaddr *dest, int destlen, int flags)h](j3)}(hinth]hint}(hj#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubj3)}(h h]h }(hj2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj1hM ubjD)}(h tipc_connecth]jJ)}(h tipc_connecth]h tipc_connect}(hjDhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj@ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj1hM ubj )}(hD(struct socket *sock, struct sockaddr *dest, int destlen, int flags)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hj`hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj\ubj3)}(h h]h }(hjmhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj\ubh)}(hhh]jJ)}(hsocketh]hsocket}(hj~hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjFsbc.tipc_connectasbuh1hhj\ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj\ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubjJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjXubj)}(hstruct sockaddr *desth](j!)}(hj$h]hstruct}(hjҺhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjκubj3)}(h h]h }(hjߺhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjκubh)}(hhh]jJ)}(hsockaddrh]hsockaddr}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_connectasbuh1hhjκubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjκubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjκubjJ)}(hdesth]hdest}(hj)hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjκubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjXubj)}(h int destlenh](j3)}(hinth]hint}(hjBhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj>ubj3)}(h h]h }(hjPhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj>ubjJ)}(hdestlenh]hdestlen}(hj^hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjXubj)}(h int flagsh](j3)}(hinth]hint}(hjwhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjsubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjsubjJ)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjsubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjXubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhj1hM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj1hM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj1hM hjhhubjv)}(hhh]h)}(h+establish a connection to another TIPC porth]h+establish a connection to another TIPC port}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj1hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjջjjջjjjuh1jhhhjj^hNhNubj)}(hX**Parameters** ``struct socket *sock`` socket structure ``struct sockaddr *dest`` socket address for destination port ``int destlen`` size of socket address data structure ``int flags`` file-related flags associated with socket **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hj߻h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjݻubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjٻubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hjh]hstruct socket *sock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h>``struct sockaddr *dest`` socket address for destination port h](j)}(h``struct sockaddr *dest``h]j)}(hj7h]hstruct sockaddr *dest}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj1ubj)}(hhh]h)}(h#socket address for destination porth]h#socket address for destination port}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhM hjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhM hjubj)}(h6``int destlen`` size of socket address data structure h](j)}(h``int destlen``h]j)}(hjph]h int destlen}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjjubj)}(hhh]h)}(h%size of socket address data structureh]h%size of socket address data structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h8``int flags`` file-related flags associated with socket h](j)}(h ``int flags``h]j)}(hjh]h int flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(h)file-related flags associated with socketh]h)file-related flags associated with socket}(hj¼hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjٻubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjٻubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjٻubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_listen (C function) c.tipc_listenhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h.int tipc_listen (struct socket *sock, int len)h]j)}(h-int tipc_listen(struct socket *sock, int len)h](j3)}(hinth]hint}(hj)hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMf ubj3)}(h h]h }(hj8hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%hhhj7hMf ubjD)}(h tipc_listenh]jJ)}(h tipc_listenh]h tipc_listen}(hjJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjFubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj%hhhj7hMf ubj )}(h(struct socket *sock, int len)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hjfhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjbubj3)}(h h]h }(hjshhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbubh)}(hhh]jJ)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjLsb c.tipc_listenasbuh1hhjbubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubjJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjbubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubj)}(hint lenh](j3)}(hinth]hint}(hjؽhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjԽubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjԽubjJ)}(hlenh]hlen}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjԽubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubeh}(h]h ]h"]h$]h&]hhuh1j hj%hhhj7hMf ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj!hhhj7hMf ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj7hMf hjhhubjv)}(hhh]h)}(h/allow socket to listen for incoming connectionsh]h/allow socket to listen for incoming connections}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM` hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj7hMf ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1jhhhjj^hNhNubj)}(h}**Parameters** ``struct socket *sock`` socket structure ``int len`` (unused) **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hj@h]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMd hj:ubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hj_h]hstruct socket *sock}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMa hjYubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthMa hjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthMa hjVubj)}(h``int len`` (unused) h](j)}(h ``int len``h]j)}(hjh]hint len}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMb hjubj)}(hhh]h)}(h(unused)h]h(unused)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMb hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMb hjVubeh}(h]h ]h"]h$]h&]uh1jhj:ubh)}(h **Return**h]j)}(hjӾh]hReturn}(hjվhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjѾubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMd hj:ubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMd hj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_accept (C function) c.tipc_accepthNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h\int tipc_accept (struct socket *sock, struct socket *new_sock, struct proto_accept_arg *arg)h]j)}(h[int tipc_accept(struct socket *sock, struct socket *new_sock, struct proto_accept_arg *arg)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubj3)}(h h]h }(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj&hM ubjD)}(h tipc_accepth]jJ)}(h tipc_accepth]h tipc_accept}(hj9hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj5ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj&hM ubj )}(hL(struct socket *sock, struct socket *new_sock, struct proto_accept_arg *arg)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hjUhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjQubj3)}(h h]h }(hjbhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjQubh)}(hhh]jJ)}(hsocketh]hsocket}(hjshhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jj;sb c.tipc_acceptasbuh1hhjQubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjQubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubjJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjQubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjMubj)}(hstruct socket *new_sockh](j!)}(hj$h]hstruct}(hjǿhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjÿubj3)}(h h]h }(hjԿhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjÿubh)}(hhh]jJ)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.tipc_acceptasbuh1hhjÿubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjÿubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjÿubjJ)}(hnew_sockh]hnew_sock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjÿubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjMubj)}(hstruct proto_accept_arg *argh](j!)}(hj$h]hstruct}(hj7hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj3ubj3)}(h h]h }(hjDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj3ubh)}(hhh]jJ)}(hproto_accept_argh]hproto_accept_arg}(hjUhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j c.tipc_acceptasbuh1hhj3ubj3)}(h h]h }(hjshhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj3ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubjJ)}(hargh]harg}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj3ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjMubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhj&hM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj&hM ubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj&hM hj hhubjv)}(hhh]h)}(hwait for connection requesth]hwait for connection request}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhj hhhj&hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(h**Parameters** ``struct socket *sock`` listening socket ``struct socket *new_sock`` new socket that is to be connected ``struct proto_accept_arg *arg`` arguments for accept **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh](j)}(h)``struct socket *sock`` listening socket h](j)}(h``struct socket *sock``h]j)}(hjh]hstruct socket *sock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(hlistening socketh]hlistening socket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h?``struct socket *new_sock`` new socket that is to be connected h](j)}(h``struct socket *new_sock``h]j)}(hj2h]hstruct socket *new_sock}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj,ubj)}(hhh]h)}(h"new socket that is to be connectedh]h"new socket that is to be connected}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhM hjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhM hjubj)}(h6``struct proto_accept_arg *arg`` arguments for accept h](j)}(h ``struct proto_accept_arg *arg``h]j)}(hjkh]hstruct proto_accept_arg *arg}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjeubj)}(hhh]h)}(harguments for accepth]harguments for accept}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_shutdown (C function)c.tipc_shutdownhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h0int tipc_shutdown (struct socket *sock, int how)h]j)}(h/int tipc_shutdown(struct socket *sock, int how)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM ubjD)}(h tipc_shutdownh]jJ)}(h tipc_shutdownh]h tipc_shutdown}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM ubj )}(h(struct socket *sock, int how)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hj(hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj$ubj3)}(h h]h }(hj5hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$ubh)}(hhh]jJ)}(hsocketh]hsocket}(hjFhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jjsbc.tipc_shutdownasbuh1hhj$ubj3)}(h h]h }(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$ubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubjJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hint howh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hhowh]hhow}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]h)}(hshutdown socket connectionh]hshutdown socket connection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(h**Parameters** ``struct socket *sock`` socket structure ``int how`` direction to close (must be SHUT_RDWR) **Description** Terminates connection (if necessary), then purges socket's receive queue. **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hj!h]hstruct socket *sock}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hM hj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hM hjubj)}(h3``int how`` direction to close (must be SHUT_RDWR) h](j)}(h ``int how``h]j)}(hjZh]hint how}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjTubj)}(hhh]h)}(h&direction to close (must be SHUT_RDWR)h]h&direction to close (must be SHUT_RDWR)}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohM hjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohM hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubh)}(hITerminates connection (if necessary), then purges socket's receive queue.h]hKTerminates connection (if necessary), then purges socket’s receive queue.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_setsockopt (C function)c.tipc_setsockopthNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hZint tipc_setsockopt (struct socket *sock, int lvl, int opt, sockptr_t ov, unsigned int ol)h]j)}(hYint tipc_setsockopt(struct socket *sock, int lvl, int opt, sockptr_t ov, unsigned int ol)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMA ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMA ubjD)}(htipc_setsockopth]jJ)}(htipc_setsockopth]htipc_setsockopt}(hj"hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMA ubj )}(hF(struct socket *sock, int lvl, int opt, sockptr_t ov, unsigned int ol)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hj>hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj:ubj3)}(h h]h }(hjKhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:ubh)}(hhh]jJ)}(hsocketh]hsocket}(hj\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jj$sbc.tipc_setsockoptasbuh1hhj:ubj3)}(h h]h }(hj|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj:ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubjJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj:ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hint lvlh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hlvlh]hlvl}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hint opth](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hopth]hopt}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(h sockptr_t ovh](h)}(hhh]jJ)}(h sockptr_th]h sockptr_t}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jxc.tipc_setsockoptasbuh1hhjubj3)}(h h]h }(hj;hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hovh]hov}(hjIhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hunsigned int olh](j3)}(hunsignedh]hunsigned}(hjbhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubj3)}(h h]h }(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubj3)}(hinth]hint}(hj~hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubjJ)}(holh]hol}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMA ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMA ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMA hjhhubjv)}(hhh]h)}(hset socket optionh]hset socket option}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM5 hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMA ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(hXp**Parameters** ``struct socket *sock`` socket structure ``int lvl`` option level ``int opt`` option identifier ``sockptr_t ov`` pointer to new option value ``unsigned int ol`` length of option value **Description** For stream sockets only, accepts and ignores all IPPROTO_TCP options (to ease compatibility). **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM9 hjubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hjh]hstruct socket *sock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM6 hjubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM6 hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6 hjubj)}(h``int lvl`` option level h](j)}(h ``int lvl``h]j)}(hj>h]hint lvl}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM7 hj8ubj)}(hhh]h)}(h option levelh]h option level}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShM7 hjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShM7 hjubj)}(h``int opt`` option identifier h](j)}(h ``int opt``h]j)}(hjwh]hint opt}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM8 hjqubj)}(hhh]h)}(hoption identifierh]hoption identifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM8 hjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhM8 hjubj)}(h-``sockptr_t ov`` pointer to new option value h](j)}(h``sockptr_t ov``h]j)}(hjh]h sockptr_t ov}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM9 hjubj)}(hhh]h)}(hpointer to new option valueh]hpointer to new option value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM9 hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM9 hjubj)}(h+``unsigned int ol`` length of option value h](j)}(h``unsigned int ol``h]j)}(hjh]hunsigned int ol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM: hjubj)}(hhh]h)}(hlength of option valueh]hlength of option value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM: hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM: hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj$h]h Description}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM< hjubh)}(h]For stream sockets only, accepts and ignores all IPPROTO_TCP options (to ease compatibility).h]h]For stream sockets only, accepts and ignores all IPPROTO_TCP options (to ease compatibility).}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM< hjubh)}(h **Return**h]j)}(hjKh]hReturn}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM? hjubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM? hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_getsockopt (C function)c.tipc_getsockopthNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h\int tipc_getsockopt (struct socket *sock, int lvl, int opt, char __user *ov, int __user *ol)h]j)}(h[int tipc_getsockopt(struct socket *sock, int lvl, int opt, char __user *ov, int __user *ol)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhM ubjD)}(htipc_getsockopth]jJ)}(htipc_getsockopth]htipc_getsockopt}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhM ubj )}(hH(struct socket *sock, int lvl, int opt, char __user *ov, int __user *ol)h](j)}(hstruct socket *sockh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_getsockoptasbuh1hhjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hsockh]hsock}(hj&hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint lvlh](j3)}(hinth]hint}(hj?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj;ubj3)}(h h]h }(hjMhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj;ubjJ)}(hlvlh]hlvl}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj;ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint opth](j3)}(hinth]hint}(hjthhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjpubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjpubjJ)}(hopth]hopt}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjpubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hchar __user *ovh](j3)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh__user}(hjhhhNhNubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hovh]hov}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint __user *olh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh__user}(hjhhhNhNubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(holh]hol}(hj8hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]h)}(hget socket optionh]hget socket option}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj_hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1jhhhjj^hNhNubj)}(hX**Parameters** ``struct socket *sock`` socket structure ``int lvl`` option level ``int opt`` option identifier ``char __user *ov`` receptacle for option value ``int __user *ol`` receptacle for length of option value **Description** For stream sockets only, returns 0 length result for all IPPROTO_TCP options (to ease compatibility). **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj~ubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j)}(h``struct socket *sock``h]j)}(hjh]hstruct socket *sock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(hsocket structureh]hsocket structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h``int lvl`` option level h](j)}(h ``int lvl``h]j)}(hjh]hint lvl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(h option levelh]h option level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h``int opt`` option identifier h](j)}(h ``int opt``h]j)}(hjh]hint opt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(hoption identifierh]hoption identifier}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hM hj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hM hjubj)}(h0``char __user *ov`` receptacle for option value h](j)}(h``char __user *ov``h]j)}(hjNh]hchar __user *ov}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjHubj)}(hhh]h)}(hreceptacle for option valueh]hreceptacle for option value}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchM hjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchM hjubj)}(h9``int __user *ol`` receptacle for length of option value h](j)}(h``int __user *ol``h]j)}(hjh]hint __user *ol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(h%receptacle for length of option valueh]h%receptacle for length of option value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhj~ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj~ubh)}(heFor stream sockets only, returns 0 length result for all IPPROTO_TCP options (to ease compatibility).h]heFor stream sockets only, returns 0 length result for all IPPROTO_TCP options (to ease compatibility).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj~ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj~ubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_socket_init (C function)c.tipc_socket_inithNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hint tipc_socket_init (void)h]j)}(hint tipc_socket_init(void)h](j3)}(hinth]hint}(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMh ubj3)}(h h]h }(hj=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*hhhj<hMh ubjD)}(htipc_socket_inith]jJ)}(htipc_socket_inith]htipc_socket_init}(hjOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjKubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj*hhhj<hMh ubj )}(h(void)h]j)}(hvoidh]j3)}(hvoidh]hvoid}(hjkhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjgubah}(h]h ]h"]h$]h&]noemphhhuh1jhjcubah}(h]h ]h"]h$]h&]hhuh1j hj*hhhj<hMh ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj&hhhj<hMh ubah}(h]j!ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj<hMh hj#hhubjv)}(hhh]h)}(h initialize TIPC socket interfaceh]h initialize TIPC socket interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMd hjhhubah}(h]h ]h"]h$]h&]uh1juhj#hhhj<hMh ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(hR**Parameters** ``void`` no arguments **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMh hjubj)}(hhh]j)}(h``void`` no arguments h](j)}(h``void``h]j)}(hjh]hvoid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMk hjubj)}(hhh]h)}(h no argumentsh]h no arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMk hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMk hjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMm hjubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMf hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_socket_stop (C function)c.tipc_socket_stophNtauh1jhjj^hhhNhNubj)}(hhh](j)}(hvoid tipc_socket_stop (void)h]j)}(hvoid tipc_socket_stop(void)h](j3)}(hvoidh]hvoid}(hjVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubj3)}(h h]h }(hjehhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRhhhjdhM ubjD)}(htipc_socket_stoph]jJ)}(htipc_socket_stoph]htipc_socket_stop}(hjwhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjsubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjRhhhjdhM ubj )}(h(void)h]j)}(hvoidh]j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubah}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjRhhhjdhM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjNhhhjdhM ubah}(h]jIah ](jmjneh"]h$]h&]jrjs)jthuh1jhjdhM hjKhhubjv)}(hhh]h)}(hstop TIPC socket interfaceh]hstop TIPC socket interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM} hjhhubah}(h]h ]h"]h$]h&]uh1juhjKhhhjdhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(h'**Parameters** ``void`` no argumentsh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]j)}(h``void`` no argumentsh](j)}(h``void``h]j)}(hjh]hvoid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj)}(hhh]h)}(h no argumentsh]h no arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sk_filtering (C function)c.tipc_sk_filteringhNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h(bool tipc_sk_filtering (struct sock *sk)h]j)}(h'bool tipc_sk_filtering(struct sock *sk)h](j3)}(hjgh]hbool}(hjXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjThhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubj3)}(h h]h }(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjThhhjehMubjD)}(htipc_sk_filteringh]jJ)}(htipc_sk_filteringh]htipc_sk_filtering}(hjxhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjtubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjThhhjehMubj )}(h(struct sock *sk)h]j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjzsbc.tipc_sk_filteringasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjThhhjehMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjPhhhjehMubah}(h]jKah ](jmjneh"]h$]h&]jrjs)jthuh1jhjehMhjMhhubjv)}(hhh]h)}(h"check if a socket should be tracedh]h"check if a socket should be traced}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjMhhhjehMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1jhhhjj^hNhNubj)}(hXT**Parameters** ``struct sock *sk`` the socket to be examined **Description** **sysctl_tipc_sk_filter** is used as the socket tuple for filtering: (portid, sock type, name type, name lower, name upper) **Return** true if the socket meets the socket tuple data (value 0 = 'any') or when there is no tuple set (all = 0), otherwise falseh](h)}(h**Parameters**h]j)}(hj9h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj3ubj)}(hhh]j)}(h.``struct sock *sk`` the socket to be examined h](j)}(h``struct sock *sk``h]j)}(hjXh]hstruct sock *sk}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjRubj)}(hhh]h)}(hthe socket to be examinedh]hthe socket to be examined}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhMhjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhMhjOubah}(h]h ]h"]h$]h&]uh1jhj3ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj3ubh)}(h{**sysctl_tipc_sk_filter** is used as the socket tuple for filtering: (portid, sock type, name type, name lower, name upper)h](j)}(h**sysctl_tipc_sk_filter**h]hsysctl_tipc_sk_filter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhb is used as the socket tuple for filtering: (portid, sock type, name type, name lower, name upper)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj3ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj3ubh)}(hytrue if the socket meets the socket tuple data (value 0 = 'any') or when there is no tuple set (all = 0), otherwise falseh]h}true if the socket meets the socket tuple data (value 0 = ‘any’) or when there is no tuple set (all = 0), otherwise false}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sk_overlimit1 (C function)c.tipc_sk_overlimit1hNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h>bool tipc_sk_overlimit1 (struct sock *sk, struct sk_buff *skb)h]j)}(h=bool tipc_sk_overlimit1(struct sock *sk, struct sk_buff *skb)h](j3)}(hjgh]hbool}(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM:ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhjhM:ubjD)}(htipc_sk_overlimit1h]jJ)}(htipc_sk_overlimit1h]htipc_sk_overlimit1}(hj-hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj)ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj hhhjhM:ubj )}(h&(struct sock *sk, struct sk_buff *skb)h](j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjIhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjEubj3)}(h h]h }(hjVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjEubh)}(hhh]jJ)}(hsockh]hsock}(hjghhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j)}jj/sbc.tipc_sk_overlimit1asbuh1hhjEubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjAubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_overlimit1asbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjAubeh}(h]h ]h"]h$]h&]hhuh1j hj hhhjhM:ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhM:ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM:hjhhubjv)}(hhh]h)}(hbcheck if socket rx queue is about to be overloaded, both the rcv and backlog queues are consideredh]hbcheck if socket rx queue is about to be overloaded, both the rcv and backlog queues are considered}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM3hj9hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM:ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1jhhhjj^hNhNubj)}(h**Parameters** ``struct sock *sk`` tipc sk to be checked ``struct sk_buff *skb`` tipc msg to be checked **Return** true if the socket rx queue allocation is > 90%, otherwise falseh](h)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM7hjXubj)}(hhh](j)}(h*``struct sock *sk`` tipc sk to be checked h](j)}(h``struct sock *sk``h]j)}(hj}h]hstruct sock *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM5hjwubj)}(hhh]h)}(htipc sk to be checkedh]htipc sk to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM5hjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhM5hjtubj)}(h/``struct sk_buff *skb`` tipc msg to be checked h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM6hjubj)}(hhh]h)}(htipc msg to be checkedh]htipc msg to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjtubeh}(h]h ]h"]h$]h&]uh1jhjXubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM8hjXubh)}(h@true if the socket rx queue allocation is > 90%, otherwise falseh]h@true if the socket rx queue allocation is > 90%, otherwise false}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM8hjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sk_overlimit2 (C function)c.tipc_sk_overlimit2hNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h>bool tipc_sk_overlimit2 (struct sock *sk, struct sk_buff *skb)h]j)}(h=bool tipc_sk_overlimit2(struct sock *sk, struct sk_buff *skb)h](j3)}(hjgh]hbool}(hj6hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj2hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMLubj3)}(h h]h }(hjDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj2hhhjChMLubjD)}(htipc_sk_overlimit2h]jJ)}(htipc_sk_overlimit2h]htipc_sk_overlimit2}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj2hhhjChMLubj )}(h&(struct sock *sk, struct sk_buff *skb)h](j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjrhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjnubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjnubh)}(hhh]jJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjXsbc.tipc_sk_overlimit2asbuh1hhjnubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjnubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjnubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjjubj)}(hstruct sk_buff *skbh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_overlimit2asbuh1hhjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskbh]hskb}(hj;hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjjubeh}(h]h ]h"]h$]h&]hhuh1j hj2hhhjChMLubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj.hhhjChMLubah}(h]j)ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjChMLhj+hhubjv)}(hhh]h)}(hTcheck if socket rx queue is about to be overloaded, only the rcv queue is consideredh]hTcheck if socket rx queue is about to be overloaded, only the rcv queue is considered}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMEhjbhhubah}(h]h ]h"]h$]h&]uh1juhj+hhhjChMLubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1jhhhjj^hNhNubj)}(h**Parameters** ``struct sock *sk`` tipc sk to be checked ``struct sk_buff *skb`` tipc msg to be checked **Return** true if the socket rx queue allocation is > 90%, otherwise falseh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMIhjubj)}(hhh](j)}(h*``struct sock *sk`` tipc sk to be checked h](j)}(h``struct sock *sk``h]j)}(hjh]hstruct sock *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMGhjubj)}(hhh]h)}(htipc sk to be checkedh]htipc sk to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMGhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMGhjubj)}(h/``struct sk_buff *skb`` tipc msg to be checked h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMHhjubj)}(hhh]h)}(htipc msg to be checkedh]htipc msg to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMHhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMHhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMJhjubh)}(h@true if the socket rx queue allocation is > 90%, otherwise falseh]h@true if the socket rx queue allocation is > 90%, otherwise false}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMJhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_sk_dump (C function)c.tipc_sk_dumphNtauh1jhjj^hhhNhNubj)}(hhh](j)}(h:int tipc_sk_dump (struct sock *sk, u16 dqueues, char *buf)h]j)}(h9int tipc_sk_dump(struct sock *sk, u16 dqueues, char *buf)h](j3)}(hinth]hint}(hj_hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM`ubj3)}(h h]h }(hjnhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[hhhjmhM`ubjD)}(h tipc_sk_dumph]jJ)}(h tipc_sk_dumph]h tipc_sk_dump}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj|ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj[hhhjmhM`ubj )}(h)(struct sock *sk, u16 dqueues, char *buf)h](j)}(hstruct sock *skh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_sk_dumpasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h u16 dqueuesh](h)}(hhh]jJ)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_dumpasbuh1hhj ubj3)}(h h]h }(hj/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubjJ)}(hdqueuesh]hdqueues}(hj=hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h char *bufh](j3)}(hcharh]hchar}(hjVhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRubj3)}(h h]h }(hjdhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubjJ)}(hbufh]hbuf}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hj[hhhjmhM`ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjWhhhjmhM`ubah}(h]jRah ](jmjneh"]h$]h&]jrjs)jthuh1jhjmhM`hjThhubjv)}(hhh]h)}(hdump TIPC socketh]hdump TIPC socket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMVhjhhubah}(h]h ]h"]h$]h&]uh1juhjThhhjmhM`ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjj^hNhNubj)}(hX**Parameters** ``struct sock *sk`` tipc sk to be dumped ``u16 dqueues`` bitmask to decide if any socket queue to be dumped? - TIPC_DUMP_NONE: don't dump socket queues - TIPC_DUMP_SK_SNDQ: dump socket send queue - TIPC_DUMP_SK_RCVQ: dump socket rcv queue - TIPC_DUMP_SK_BKLGQ: dump socket backlog queue - TIPC_DUMP_ALL: dump all the socket queues above ``char *buf`` returned buffer of dump data in formath](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMZhjubj)}(hhh](j)}(h)``struct sock *sk`` tipc sk to be dumped h](j)}(h``struct sock *sk``h]j)}(hjh]hstruct sock *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMWhjubj)}(hhh]h)}(htipc sk to be dumpedh]htipc sk to be dumped}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMWhjubj)}(hX(``u16 dqueues`` bitmask to decide if any socket queue to be dumped? - TIPC_DUMP_NONE: don't dump socket queues - TIPC_DUMP_SK_SNDQ: dump socket send queue - TIPC_DUMP_SK_RCVQ: dump socket rcv queue - TIPC_DUMP_SK_BKLGQ: dump socket backlog queue - TIPC_DUMP_ALL: dump all the socket queues above h](j)}(h``u16 dqueues``h]j)}(hj#h]h u16 dqueues}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM]hjubj)}(hhh]h)}(hXbitmask to decide if any socket queue to be dumped? - TIPC_DUMP_NONE: don't dump socket queues - TIPC_DUMP_SK_SNDQ: dump socket send queue - TIPC_DUMP_SK_RCVQ: dump socket rcv queue - TIPC_DUMP_SK_BKLGQ: dump socket backlog queue - TIPC_DUMP_ALL: dump all the socket queues aboveh]hXbitmask to decide if any socket queue to be dumped? - TIPC_DUMP_NONE: don’t dump socket queues - TIPC_DUMP_SK_SNDQ: dump socket send queue - TIPC_DUMP_SK_RCVQ: dump socket rcv queue - TIPC_DUMP_SK_BKLGQ: dump socket backlog queue - TIPC_DUMP_ALL: dump all the socket queues above}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMXhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hM]hjubj)}(h4``char *buf`` returned buffer of dump data in formath](j)}(h ``char *buf``h]j)}(hj]h]h char *buf}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM_hjWubj)}(hhh]h)}(h&returned buffer of dump data in formath]h&returned buffer of dump data in format}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM^hjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhM_hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj^hhhNhNubeh}(h]tipc-socket-interfacesah ]h"]tipc socket interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(h TIPC Network Topology Interfacesh]h TIPC Network Topology Interfaces}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j #tipc_sub_check_overlap (C function)c.tipc_sub_check_overlaphNtauh1jhjhhhNhNubj)}(hhh](j)}(hebool tipc_sub_check_overlap (struct tipc_service_range *subscribed, struct tipc_service_range *found)h]j)}(hdbool tipc_sub_check_overlap(struct tipc_service_range *subscribed, struct tipc_service_range *found)h](j3)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKIubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKIubjD)}(htipc_sub_check_overlaph]jJ)}(htipc_sub_check_overlaph]htipc_sub_check_overlap}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKIubj )}(hI(struct tipc_service_range *subscribed, struct tipc_service_range *found)h](j)}(h%struct tipc_service_range *subscribedh](j!)}(hj$h]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(htipc_service_rangeh]htipc_service_range}(hj*hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]j)}jjsbc.tipc_sub_check_overlapasbuh1hhjubj3)}(h h]h }(hjJhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h subscribedh]h subscribed}(hjehhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h struct tipc_service_range *foundh](j!)}(hj$h]hstruct}(hj~hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjzubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjzubh)}(hhh]jJ)}(htipc_service_rangeh]htipc_service_range}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jFc.tipc_sub_check_overlapasbuh1hhjzubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjzubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubjJ)}(hfoundh]hfound}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjzubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKIubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKIubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKIhjhhubjv)}(hhh]h)}(h3test for subscription overlap with the given valuesh]h3test for subscription overlap with the given values}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKChjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKIubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct tipc_service_range *subscribed`` the service range subscribed for ``struct tipc_service_range *found`` the service range we are checking for match **Description** Returns true if there is overlap, otherwise false.h](h)}(h**Parameters**h]j)}(hj!h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKGhjubj)}(hhh](j)}(hK``struct tipc_service_range *subscribed`` the service range subscribed for h](j)}(h)``struct tipc_service_range *subscribed``h]j)}(hj@h]h%struct tipc_service_range *subscribed}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKDhj:ubj)}(hhh]h)}(h the service range subscribed forh]h the service range subscribed for}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhKDhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKDhj7ubj)}(hQ``struct tipc_service_range *found`` the service range we are checking for match h](j)}(h$``struct tipc_service_range *found``h]j)}(hjyh]h struct tipc_service_range *found}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKEhjsubj)}(hhh]h)}(h+the service range we are checking for matchh]h+the service range we are checking for match}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKEhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhKEhj7ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKGhjubh)}(h2Returns true if there is overlap, otherwise false.h]h2Returns true if there is overlap, otherwise false.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKGhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] tipc-network-topology-interfacesah ]h"] tipc network topology interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Server Interfacesh]hTIPC Server Interfaces}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_topsrv (C struct) c.tipc_topsrvhNtauh1jhjhhhNhNubj)}(hhh](j)}(h tipc_topsrvh]j)}(hstruct tipc_topsrvh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubjD)}(h tipc_topsrvh]jJ)}(hj h]h tipc_topsrv}(hj2hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj.ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj hhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]h)}(hTIPC server structureh]hTIPC server structure}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK8hjQhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjljjljjjuh1jhhhjhNhNubj)}(hX**Definition**:: struct tipc_topsrv { struct idr conn_idr; spinlock_t idr_lock; int idr_in_use; struct net *net; struct work_struct awork; struct workqueue_struct *rcv_wq; struct workqueue_struct *send_wq; struct socket *listener; char name[TIPC_SERVER_NAME_LEN]; }; **Members** ``conn_idr`` identifier set of connection ``idr_lock`` protect the connection identifier set ``idr_in_use`` amount of allocated identifier entry ``net`` network namspace instance ``awork`` accept work item ``rcv_wq`` receive workqueue ``send_wq`` send workqueue ``listener`` topsrv listener socket ``name`` server nameh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubh:}(hjthhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKhjpubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKJhjpubj)}(hhh](j)}(h*``conn_idr`` identifier set of connection h](j)}(h ``conn_idr``h]j)}(hjh]hconn_idr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK:hjubj)}(hhh]h)}(hidentifier set of connectionh]hidentifier set of connection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK:hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK:hjubj)}(h3``idr_lock`` protect the connection identifier set h](j)}(h ``idr_lock``h]j)}(hjh]hidr_lock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK;hjubj)}(hhh]h)}(h%protect the connection identifier seth]h%protect the connection identifier set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK;hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjubj)}(h4``idr_in_use`` amount of allocated identifier entry h](j)}(h``idr_in_use``h]j)}(hj3h]h idr_in_use}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKhjubj)}(hhh]h)}(haccept work itemh]haccept work item}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK>hjubj)}(h``rcv_wq`` receive workqueue h](j)}(h ``rcv_wq``h]j)}(hjh]hrcv_wq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK?hjubj)}(hhh]h)}(hreceive workqueueh]hreceive workqueue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK?hjubj)}(h``send_wq`` send workqueue h](j)}(h ``send_wq``h]j)}(hjh]hsend_wq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK@hjubj)}(hhh]h)}(hsend workqueueh]hsend workqueue}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hK@hj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hK@hjubj)}(h$``listener`` topsrv listener socket h](j)}(h ``listener``h]j)}(hjPh]hlistener}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKAhjJubj)}(hhh]h)}(htopsrv listener socketh]htopsrv listener socket}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehKAhjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehKAhjubj)}(h``name`` server nameh](j)}(h``name``h]j)}(hjh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKAhjubj)}(hhh]h)}(h server nameh]h server name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKBhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKAhjubeh}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_conn (C struct) c.tipc_connhNtauh1jhjhhhNhNubj)}(hhh](j)}(h tipc_connh]j)}(hstruct tipc_connh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKHubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKHubjD)}(h tipc_connh]jJ)}(hjh]h tipc_conn}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKHubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKHubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKHhjhhubjv)}(hhh]h)}(hTIPC connection structureh]hTIPC connection structure}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKPhj"hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKHubeh}(h]h ](jstructeh"]h$]h&]jjjj=jj=jjjuh1jhhhjhNhNubj)}(hXg**Definition**:: struct tipc_conn { struct kref kref; int conid; struct socket *sock; unsigned long flags; struct tipc_topsrv *server; struct list_head sub_list; spinlock_t sub_lock; struct work_struct rwork; struct list_head outqueue; spinlock_t outqueue_lock; struct work_struct swork; }; **Members** ``kref`` reference counter to connection object ``conid`` connection identifier ``sock`` socket handler associated with connection ``flags`` indicates connection state ``server`` pointer to connected server ``sub_list`` lsit to all pertaing subscriptions ``sub_lock`` lock protecting the subscription list ``rwork`` receive work item ``outqueue`` pointer to first outbound message in queue ``outqueue_lock`` control access to the outqueue ``swork`` send work itemh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh:}(hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKThjAubj)}(hX=struct tipc_conn { struct kref kref; int conid; struct socket *sock; unsigned long flags; struct tipc_topsrv *server; struct list_head sub_list; spinlock_t sub_lock; struct work_struct rwork; struct list_head outqueue; spinlock_t outqueue_lock; struct work_struct swork; };h]hX=struct tipc_conn { struct kref kref; int conid; struct socket *sock; unsigned long flags; struct tipc_topsrv *server; struct list_head sub_list; spinlock_t sub_lock; struct work_struct rwork; struct list_head outqueue; spinlock_t outqueue_lock; struct work_struct swork; };}hjbsbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKVhjAubh)}(h **Members**h]j)}(hjsh]hMembers}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKdhjAubj)}(hhh](j)}(h0``kref`` reference counter to connection object h](j)}(h``kref``h]j)}(hjh]hkref}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKRhjubj)}(hhh]h)}(h&reference counter to connection objecth]h&reference counter to connection object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKRhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKRhjubj)}(h ``conid`` connection identifier h](j)}(h ``conid``h]j)}(hjh]hconid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKShjubj)}(hhh]h)}(hconnection identifierh]hconnection identifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKShjubj)}(h3``sock`` socket handler associated with connection h](j)}(h``sock``h]j)}(hjh]hsock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKThjubj)}(hhh]h)}(h)socket handler associated with connectionh]h)socket handler associated with connection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKThjubj)}(h%``flags`` indicates connection state h](j)}(h ``flags``h]j)}(hj=h]hflags}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKUhj7ubj)}(hhh]h)}(hindicates connection stateh]hindicates connection state}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhKUhjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhKUhjubj)}(h'``server`` pointer to connected server h](j)}(h ``server``h]j)}(hjvh]hserver}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKVhjpubj)}(hhh]h)}(hpointer to connected serverh]hpointer to connected server}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKVhjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhKVhjubj)}(h0``sub_list`` lsit to all pertaing subscriptions h](j)}(h ``sub_list``h]j)}(hjh]hsub_list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKWhjubj)}(hhh]h)}(h"lsit to all pertaing subscriptionsh]h"lsit to all pertaing subscriptions}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKWhjubj)}(h3``sub_lock`` lock protecting the subscription list h](j)}(h ``sub_lock``h]j)}(hjh]hsub_lock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKXhjubj)}(hhh]h)}(h%lock protecting the subscription listh]h%lock protecting the subscription list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKXhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKXhjubj)}(h``rwork`` receive work item h](j)}(h ``rwork``h]j)}(hj!h]hrwork}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKYhjubj)}(hhh]h)}(hreceive work itemh]hreceive work item}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKYhj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hKYhjubj)}(h8``outqueue`` pointer to first outbound message in queue h](j)}(h ``outqueue``h]j)}(hjZh]houtqueue}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKZhjTubj)}(hhh]h)}(h*pointer to first outbound message in queueh]h*pointer to first outbound message in queue}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohKZhjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohKZhjubj)}(h1``outqueue_lock`` control access to the outqueue h](j)}(h``outqueue_lock``h]j)}(hjh]h outqueue_lock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK[hjubj)}(hhh]h)}(hcontrol access to the outqueueh]hcontrol access to the outqueue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK[hjubj)}(h``swork`` send work itemh](j)}(h ``swork``h]j)}(hjh]hswork}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK[hjubj)}(hhh]h)}(hsend work itemh]hsend work item}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK\hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK[hjubeh}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]tipc-server-interfacesah ]h"]tipc server interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Trace Interfacesh]hTIPC Trace Interfaces}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_skb_dump (C function)c.tipc_skb_dumphNtauh1jhjhhhNhNubj)}(hhh](j)}(h=int tipc_skb_dump (struct sk_buff *skb, bool more, char *buf)h]j)}(hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hbufh]hbuf}(hjKhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjtubeh}(h]h ]h"]h$]h&]hhuh1j hj;hhhjMhK5ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj7hhhjMhK5ubah}(h]j2ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjMhK5hj4hhubjv)}(hhh]h)}(hdump TIPC skb datah]hdump TIPC skb data}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chK.hjrhhubah}(h]h ]h"]h$]h&]uh1juhj4hhhjMhK5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct sk_buff *skb`` skb to be dumped ``bool more`` dump more? - false: dump only tipc msg data - true: dump kernel-related skb data and tipc cb[] array as well ``char *buf`` returned buffer of dump data in formath](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chK2hjubj)}(hhh](j)}(h)``struct sk_buff *skb`` skb to be dumped h](j)}(h``struct sk_buff *skb``h]j)}(hjh]hstruct sk_buff *skb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chK/hjubj)}(hhh]h)}(hskb to be dumpedh]hskb to be dumped}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK/hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK/hjubj)}(h{``bool more`` dump more? - false: dump only tipc msg data - true: dump kernel-related skb data and tipc cb[] array as well h](j)}(h ``bool more``h]j)}(hjh]h bool more}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chK2hjubj)}(hhh]h)}(hldump more? - false: dump only tipc msg data - true: dump kernel-related skb data and tipc cb[] array as wellh]hldump more? - false: dump only tipc msg data - true: dump kernel-related skb data and tipc cb[] array as well}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chK0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK2hjubj)}(h4``char *buf`` returned buffer of dump data in formath](j)}(h ``char *buf``h]j)}(hj)h]h char *buf}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chK4hj#ubj)}(hhh]h)}(h&returned buffer of dump data in formath]h&returned buffer of dump data in format}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chK3hj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hK4hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_list_dump (C function)c.tipc_list_dumphNtauh1jhjhhhNhNubj)}(hhh](j)}(hDint tipc_list_dump (struct sk_buff_head *list, bool more, char *buf)h]j)}(hCint tipc_list_dump(struct sk_buff_head *list, bool more, char *buf)h](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubjD)}(htipc_list_dumph]jJ)}(htipc_list_dumph]htipc_list_dump}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubj )}(h1(struct sk_buff_head *list, bool more, char *buf)h](j)}(hstruct sk_buff_head *listh](j!)}(hj$h]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_list_dumpasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h bool moreh](j3)}(hjgh]hbool}(hj2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj.ubj3)}(h h]h }(hj?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj.ubjJ)}(hmoreh]hmore}(hjMhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h char *bufh](j3)}(hcharh]hchar}(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbubj3)}(h h]h }(hjthhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubjJ)}(hbufh]hbuf}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjbubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj{hhhjhKubah}(h]jvah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjxhhubjv)}(hhh]h)}(hdump TIPC skb list/queueh]hdump TIPC skb list/queue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chKhjhhubah}(h]h ]h"]h$]h&]uh1juhjxhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct sk_buff_head *list`` list of skbs to be dumped ``bool more`` dump more? - false: dump only the head & tail skbs - true: dump the first & last 5 skbs ``char *buf`` returned buffer of dump data in formath](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chKhjubj)}(hhh](j)}(h8``struct sk_buff_head *list`` list of skbs to be dumped h](j)}(h``struct sk_buff_head *list``h]j)}(hjh]hstruct sk_buff_head *list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chKhjubj)}(hhh]h)}(hlist of skbs to be dumpedh]hlist of skbs to be dumped}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hf``bool more`` dump more? - false: dump only the head & tail skbs - true: dump the first & last 5 skbs h](j)}(h ``bool more``h]j)}(hj3h]h bool more}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chKhj-ubj)}(hhh]h)}(hWdump more? - false: dump only the head & tail skbs - true: dump the first & last 5 skbsh]hWdump more? - false: dump only the head & tail skbs - true: dump the first & last 5 skbs}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chKhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhKhjubj)}(h4``char *buf`` returned buffer of dump data in formath](j)}(h ``char *buf``h]j)}(hjmh]h char *buf}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chKhjgubj)}(hhh]h)}(h&returned buffer of dump data in formath]h&returned buffer of dump data in format}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:214: ./net/tipc/trace.chKhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]tipc-trace-interfacesah ]h"]tipc trace interfacesah$]h&]uh1hhjhhhhhKubeh}(h]implementationah ]h"]implementationah$]h&]uh1hhhhhhhhK{ubeh}(h]linux-kernel-tipcah ]h"]linux kernel tipcah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjjjjjjjjj_j\jhBjeBjjjjjjjjj7j7jg^jd^jjjjjjjju nametypes}(jjjjjj_jhBjjjjj7jg^jjjjuh}(jhjhjhjjjjj\jj jjLjRjjj j j"j'jijnjjj\jajeBjbjjjjj j j"j"j$j$j 'j'jl+jq+jp-ju-j/j/j2j2jj6jo6j8j8j;j ;j<j<j?j?jjkBjBjBjCjCjGjGjHjHjNjNjPjPjnRjsRjSjSj_UjdUj>XjCXjZjZjw_j|_jcjcjgjgjij ijmjmjVpj[pjmsjrsjujujryjwyj{j{jjj҆j׆jֈjۈjjjUjZjjj&j+jojtjjj jjڙjߙjj jjj7j<jjĥjjjjj6j;jӵjصjjjjjpjujjjjjKjPjNjSjGjLjjjIjNjj jujzjjjjj!j&jjj,j1jojtjjjjj}jjjj7jjjjjj=jBjjjjjHjMj j jm jr j,j1jBjGjjjjjjjijnjmjrjpjuj"j"j$j$j+'j0'j*j*j7-j<-j/j/j23j73j>6jC6jd^j7j7j7jV?j[?jAjAjCjCjFjFjIjIjLjLjhPjmPjSjSjVjVjYYj^Yj+\j0\jjj^j^j^jwfj|fjgjgjijijmjmjnjnjqjqjtjtjwjwj{j{jjjjjjjjj<jAjjjejjj6j;jj j؛jݛjjjjj9j>jxj}jӨjبj.j3jjjjjmjrjjjjjjjj!j jjjjjjjj!j&jIjNjKjPjjj)j.jRjWjjjjjjjj jjjjj2j7jvj{u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]hsystem_message)}(hhh]h)}(heUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h]hgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMubah}(h]h ]h"]h$]h&]levelKtypeINFOlineMsourcejJwuh1jKhjKwubatransform_messages] transformerN include_log] decorationNhhub.