8sphinx.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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/pt_BR/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}(hjhhhNhNubah}(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?}(hj(hhhNhNubah}(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.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjJubh)}(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.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjJubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjpubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjpubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjpubh)}(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/hjpubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubj)}(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}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhj(ubh)}(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&]uh1hhhhKHhj(ubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhjNubh)}(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.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhjNubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjtubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjtubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhhhhubeh}(h] tipc-featuresah ]h"] tipc featuresah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hMore Informationh]hMore Information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKgubj)}(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&]uh1hhhhKihj ubh)}(h#http://tipc.io/getting_started.htmlh]h reference)}(hjh]h#http://tipc.io/getting_started.html}(hj"hhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubah}(h]h ]h"]h$]h&]uh1hhhhKkhj ubeh}(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!)}(hjPh]hhttp://tipc.io/programming.html}(hjRhhhNhNubah}(h]h ]h"]h$]h&]refurijPuh1j hjNubah}(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:}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjlubh)}(hhttp://tipc.io/contacts.htmlh]j!)}(hjh]hhttp://tipc.io/contacts.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hj~ubah}(h]h ]h"]h$]h&]uh1hhhhKshjlubeh}(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&]jjuh1jhhhKihjhhubeh}(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}(hj6hhhNhNubah}(h]h ]kah"]h$]h&]uh1j4hj0hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhKubhdesc_sig_space)}(h h]h }(hjHhhhNhNubah}(h]h ]wah"]h$]h&]uh1jFhj0hhhjEhKubh desc_name)}(htipc_subscriptionh]h desc_sig_name)}(hj,h]htipc_subscription}(hj_hhhNhNubah}(h]h ]nah"]h$]h&]uh1j]hjYubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jWhj0hhhjEhKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1j.sphinx_line_type declaratorhj*hhhjEhKubah}(h]j!ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1j(hjEhKhj%hhubh desc_content)}(hhh]h)}(h)TIPC network topology subscription objecth]h)TIPC network topology subscription object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK3hjhhubah}(h]h ]h"]h$]h&]uh1jhj%hhhjEhKubeh}(h]h ](cstructeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1j#hhhjhNhNubh 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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hR/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}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hK5hj(ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj%hK5hjubj)}(h6``evt`` template for events generated by subscription h](j )}(h``evt``h]j)}(hjKh]hevt}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK6hjEubj')}(hhh]h)}(h-template for events generated by subscriptionh]h-template for events generated by subscription}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hK6hjaubah}(h]h ]h"]h$]h&]uh1j&hjEubeh}(h]h ]h"]h$]h&]uh1jhj`hK6hjubj)}(h/``kref`` reference count for this subscription h](j )}(h``kref``h]j)}(hjh]hkref}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK7hj~ubj')}(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&]uh1j&hj~ubeh}(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&]uh1j hR/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&]uh1j&hjubeh}(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&]uh1j hR/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&]uh1hhj hK9hj ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj hK9hjubj)}(hM``service_list`` adjacent subscriptions in name sequence's subscription list h](j )}(h``service_list``h]j)}(hj/h]h service_list}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK:hj)ubj')}(hhh]h)}(h;adjacent subscriptions in name sequence's subscription listh]h=adjacent subscriptions in name sequence’s subscription list}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhK:hjEubah}(h]h ]h"]h$]h&]uh1j&hj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhK:hjubj)}(hF``sub_list`` adjacent subscriptions in subscriber's subscription list h](j )}(h ``sub_list``h]j)}(hjhh]hsub_list}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhK;hjbubj')}(hhh]h)}(h8adjacent subscriptions in subscriber's subscription listh]h:adjacent subscriptions in subscriber’s subscription list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hK;hj~ubah}(h]h ]h"]h$]h&]uh1j&hjbubeh}(h]h ]h"]h$]h&]uh1jhj}hK;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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:130: ./net/tipc/subscr.hhKhj)ubah}(h]h ]h"]h$]h&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj(hK=hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](j5)}(hj8h]hstruct}(hjnhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKubjG)}(h h]h }(hj|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjjhhhj{hKubjX)}(htipc_media_addrh]j^)}(hjhh]htipc_media_addr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjjhhhj{hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjfhhhj{hKubah}(h]j`ah ](jjeh"]h$]h&]jj)jhuh1j(hj{hKhjchhubj)}(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&]uh1jhjchhhj{hKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1j#hhhjhjbhNubj)}(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)}(hjh]hvalue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/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)}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hKJhj3ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj2hKJhjubj)}(h(``media_id`` TIPC media type identifier h](j )}(h ``media_id``h]j)}(hjVh]hmedia_id}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKKhjPubj')}(hhh]h)}(hTIPC media type identifierh]hTIPC media type identifier}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhKKhjlubah}(h]h ]h"]h$]h&]uh1j&hjPubeh}(h]h ]h"]h$]h&]uh1jhjkhKKhjubj)}(h8``broadcast`` non-zero if address is a broadcast addressh](j )}(h ``broadcast``h]j)}(hjh]h broadcast}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKKhjubj')}(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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjbhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_media (C struct) c.tipc_mediahNtauh1jhjhhhjbhNubj$)}(hhh](j))}(h tipc_mediah]j/)}(hstruct tipc_mediah](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKRubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKRubjX)}(h tipc_mediah]j^)}(hjh]h tipc_media}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKRubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKRubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKRhjhhubj)}(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&]uh1jhjhhhjhKRubeh}(h]h ](jstructeh"]h$]h&]jjjjC jjC jjjuh1j#hhhjhjbhNubj)}(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}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK ubh:}(hjK hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKZhjG 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]; };}hjh sbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK\hjG ubh)}(h **Members**h]j)}(hjy h]hMembers}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKnhjG 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&]uh1j hR/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&]uh1j&hj 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&]uh1j hR/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&]uh1j&hj 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&]uh1j hR/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&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj hKZhj ubj)}(h4``addr2str`` convert media address format to string h](j )}(h ``addr2str``h]j)}(hjC h]haddr2str}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA ubah}(h]h ]h"]h$]h&]uh1j hR/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}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX hK[hjY ubah}(h]h ]h"]h$]h&]uh1j&hj= ubeh}(h]h ]h"]h$]h&]uh1jhjX hK[hj ubj)}(hI``addr2msg`` convert from media addr format to discovery msg addr format h](j )}(h ``addr2msg``h]j)}(hj| h]haddr2msg}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK\hjv 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&]uh1j&hjv 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&]uh1j hR/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&]uh1j&hj 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&]uh1j hR/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&]uh1j&hj 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&]uh1j hR/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&]uh1j&hj! 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)}(hj` h]h tolerance}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhK`hjZ ubj')}(hhh]h)}(h2default time (in ms) before declaring link failureh]h2default time (in ms) before declaring link failure}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1hhju hK`hjv ubah}(h]h ]h"]h$]h&]uh1j&hjZ ubeh}(h]h ]h"]h$]h&]uh1jhju 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:133: ./net/tipc/bearer.hhKahj ubj')}(hhh]h)}(hpubl_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&]uh1j hV/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK;hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjubj)}(h3``sk`` address of socket bound to this publication h](j )}(h``sk``h]j)}(hj+h]hsk}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1j hV/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&]uh1j&hjubeh}(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&]uh1j hV/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&]uh1j&hjubeh}(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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKDhj ubj')}(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}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK@hj%ubah}(h]h ]h"]h$]h&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj$hKDhjubj)}(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)}(hjIh]h binding_sock}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKFhjCubj')}(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}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKEhj_ubah}(h]h ]h"]h$]h&]uh1j&hjCubeh}(h]h ]h"]h$]h&]uh1jhj^hKFhjubj)}(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)}(hjh]h local_publ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKHhj}ubj')}(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&]uh1j&hj}ubeh}(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&]uh1j hV/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&]uh1j&hjubeh}(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&]uh1j hV/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&]uh1hhj hKKhj ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj hKKhjubj)}(h3``rcu`` RCU callback head used for deferred freeingh](j )}(h``rcu``h]j)}(hj0h]hrcu}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKKhj*ubj')}(hhh]h)}(h+RCU callback head used for deferred freeingh]h+RCU callback head used for deferred freeing}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKLhjFubah}(h]h ]h"]h$]h&]uh1j&hj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhKKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jname_table (C struct) c.name_tablehNtauh1jhjhhhNhNubj$)}(hhh](j))}(h name_tableh]j/)}(hstruct name_tableh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKRubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKRubjX)}(h name_tableh]j^)}(hjh]h name_table}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKRubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKRubah}(h]j}ah ](jjeh"]h$]h&]jj)jhuh1j(hjhKRhjhhubj)}(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&]uh1jhjhhhjhKRubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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; };}hj sbah}(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)}(hj9h]hrcu}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK^hj3ubj')}(hhh]h)}(h+RCU callback head used for deferred freeingh]h+RCU callback head used for deferred freeing}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhK^hjOubah}(h]h ]h"]h$]h&]uh1j&hj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhK^hj0ubj)}(h&``services`` name sequence hash lists h](j )}(h ``services``h]j)}(hjrh]hservices}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhK_hjlubj')}(hhh]h)}(hname sequence hash listsh]hname sequence hash lists}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK_hjubah}(h]h ]h"]h$]h&]uh1j&hjlubeh}(h]h ]h"]h$]h&]uh1jhjhK_hj0ubj)}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKahj0ubj)}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKdhj0ubj)}(h<``cluster_scope_lock`` lock for accessing **cluster_scope** h](j )}(h``cluster_scope_lock``h]j)}(hjh]hcluster_scope_lock}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/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 }(hj8hhhNhNubj)}(h**cluster_scope**h]h cluster_scope}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1hhj4hKehj5ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj4hKehj0ubj)}(h@``local_publ_count`` number of publications issued by this node h](j )}(h``local_publ_count``h]j)}(hjfh]hlocal_publ_count}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:136: ./net/tipc/name_table.hhKfhj`ubj')}(hhh]h)}(h*number of publications issued by this nodeh]h*number of publications issued by this node}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hKfhj|ubah}(h]h ]h"]h$]h&]uh1j&hj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hKfhj0ubj)}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKghj0ubj)}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKghj0ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdistr_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](j5)}(hj8h]hstruct}(hj3hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj/hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhKubjG)}(h h]h }(hjAhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj/hhhj@hKubjX)}(h distr_itemh]j^)}(hj-h]h distr_item}(hjShhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjOubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj/hhhj@hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj+hhhj@hKubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1j(hj@hKhj(hhubj)}(hhh]h)}(h+publication info distributed to other nodesh]h+publication info distributed to other nodes}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK-hjrhhubah}(h]h ]h"]h$]h&]uh1jhj(hhhj@hKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1j#hhhjhj'hNubj)}(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.hhK1hjubj)}(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.hhK3hjubh)}(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;hjubj)}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK/hjubj)}(h$``lower`` name sequence lower bound h](j )}(h ``lower``h]j)}(hjh]hlower}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK0hjubj')}(hhh]h)}(hname sequence lower boundh]hname sequence lower bound}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hK0hj1ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj0hK0hjubj)}(h$``upper`` name sequence upper bound h](j )}(h ``upper``h]j)}(hjTh]hupper}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK1hjNubj')}(hhh]h)}(hname sequence upper boundh]hname sequence upper bound}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihK1hjjubah}(h]h ]h"]h$]h&]uh1j&hjNubeh}(h]h ]h"]h$]h&]uh1jhjihK1hjubj)}(h#``port`` publishing port reference h](j )}(h``port``h]j)}(hjh]hport}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK2hjubj')}(hhh]h)}(hpublishing port referenceh]hpublishing port reference}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK2hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK2hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhj'hNubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(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. <===}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK3hjhhubh)}(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.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:139: ./net/tipc/name_distr.hhK5hjhhubh)}(h**Note**h]j)}(hj?h]hNote}(hjAhhhNhNubah}(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.}(hjUhhhNhNubah}(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](jtipc_bc_base (C struct)c.tipc_bc_basehNtauh1jhjhhhNhNubj$)}(hhh](j))}(h tipc_bc_baseh]j/)}(hstruct tipc_bc_baseh](j5)}(hj8h]hstruct}(hj}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjyhhhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chKubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjyhhhjhKubjX)}(h tipc_bc_baseh]j^)}(hjwh]h tipc_bc_base}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjyhhhjhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjuhhhjhKubah}(h]jpah ](jjeh"]h$]h&]jj)jhuh1j(hjhKhjrhhubj)}(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&]uh1jhjrhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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)}(hj h]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(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)}(hj,h]hlink}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1j hQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK6hj&ubj')}(hhh]h)}(hbroadcast send link structureh]hbroadcast send link structure}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhK6hjBubah}(h]h ]h"]h$]h&]uh1j&hj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhK6hj#ubj)}(hB``inputq`` data input queue; will only carry SOCK_WAKEUP messages h](j )}(h ``inputq``h]j)}(hjeh]hinputq}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1j hQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK7hj_ubj')}(hhh]h)}(h6data input queue; will only carry SOCK_WAKEUP messagesh]h6data input queue; will only carry SOCK_WAKEUP messages}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhK7hj{ubah}(h]h ]h"]h$]h&]uh1j&hj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhK7hj#ubj)}(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&]uh1j hQ/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hj#ubj)}(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&]uh1j hQ/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK9hj#ubj)}(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&]uh1j hQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK:hj ubj')}(hhh]h)}(h7indicates if primary bearer, if any, supports broadcasth]h7indicates if primary bearer, if any, supports broadcast}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hK:hj&ubah}(h]h ]h"]h$]h&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj%hK:hj#ubj)}(h7``force_bcast`` forces broadcast for multicast traffic h](j )}(h``force_bcast``h]j)}(hjIh]h force_bcast}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1j hQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK;hjCubj')}(hhh]h)}(h&forces broadcast for multicast traffich]h&forces broadcast for multicast traffic}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hK;hj_ubah}(h]h ]h"]h$]h&]uh1j&hjCubeh}(h]h ]h"]h$]h&]uh1jhj^hK;hj#ubj)}(h@``rcast_support`` indicates if all peer nodes support replicast h](j )}(h``rcast_support``h]j)}(hjh]h rcast_support}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hQ/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK>hj ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj hK>hj#ubj)}(hM``bc_threshold`` calculated from rc_ratio; if dests > threshold use broadcasth](j )}(h``bc_threshold``h]j)}(hj-h]h bc_threshold}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1j hQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK>hj'ubj')}(hhh]h)}(h threshold use broadcasth]h threshold use broadcast}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhQ/var/lib/git/docbuild/linux/Documentation/networking/tipc:142: ./net/tipc/bcast.chK?hjCubah}(h]h ]h"]h$]h&]uh1j&hj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhK>hj#ubeh}(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}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_media_find (C function)c.tipc_media_findhNtauh1jhjvhhhNhNubj$)}(hhh](j))}(h6struct tipc_media * tipc_media_find (const char *name)h]j/)}(h4struct tipc_media *tipc_media_find(const char *name)h](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKJubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKJubh)}(hhh]j^)}(h tipc_mediah]h tipc_media}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jtipc_media_findsbc.tipc_media_findasbuh1hhjhhhjhKJubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKJubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjhhhjhKJubjX)}(htipc_media_findh]j^)}(hjh]htipc_media_find}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKJubhdesc_parameterlist)}(h(const char *name)h]hdesc_parameter)}(hconst char *nameh](j5)}(hconsth]hconst}(hj*hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj&ubjG)}(h h]h }(hj8hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&ubhdesc_sig_keyword_type)}(hcharh]hchar}(hjHhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jFhj&ubjG)}(h h]h }(hjWhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&ubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj^)}(hnameh]hname}(hjrhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKJubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKJubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKJhjhhubj)}(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&]uh1jhjhhhjhKJubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjvhNhNubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKPhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmedia_find_id (C function)c.media_find_idhNtauh1jhjvhhhNhNubj$)}(hhh](j))}(h+struct tipc_media * media_find_id (u8 type)h]j/)}(h)struct tipc_media *media_find_id(u8 type)h](j5)}(hj8h]hstruct}(hj7hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj3hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKYubjG)}(h h]h }(hjEhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj3hhhjDhKYubh)}(hhh]j^)}(h tipc_mediah]h tipc_media}(hjVhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]j)}j media_find_idsbc.media_find_idasbuh1hhj3hhhjDhKYubjG)}(h h]h }(hjwhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj3hhhjDhKYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhjDhKYubjX)}(h media_find_idh]j^)}(hjth]h media_find_id}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj3hhhjDhKYubj)}(h (u8 type)h]j%)}(hu8 typeh](h)}(hhh]j^)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jrc.media_find_idasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(htypeh]htype}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubah}(h]h ]h"]h$]h&]hhuh1jhj3hhhjDhKYubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj/hhhjDhKYubah}(h]j*ah ](jjeh"]h$]h&]jj)jhuh1j(hjDhKYhj,hhubj)}(hhh]h)}(h1locates specified media object by type identifierh]h1locates specified media object by type identifier}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKYhj hhubah}(h]h ]h"]h$]h&]uh1jhj,hhhjDhKYubeh}(h]h ](jfunctioneh"]h$]h&]jjjj" jj" jjjuh1j#hhhjvhNhNubj)}(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)}(hjK h]hu8 type}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chK_hjE ubj')}(hhh]h)}(htype identifier to locateh]htype identifier to locate}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKZhja ubah}(h]h ]h"]h$]h&]uh1j&hjE ubeh}(h]h ]h"]h$]h&]uh1jhj` hK_hjB ubah}(h]h ]h"]h$]h&]uh1jhj& ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#tipc_media_addr_printf (C function)c.tipc_media_addr_printfhNtauh1jhjvhhhNhNubj$)}(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](jG)}(hinth]hint}(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj hhhj hKhubjX)}(htipc_media_addr_printfh]j^)}(htipc_media_addr_printfh]htipc_media_addr_printf}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj hhhj hKhubj)}(h/(char *buf, int len, struct tipc_media_addr *a)h](j%)}(h char *bufh](jG)}(hcharh]hchar}(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj^)}(hbufh]hbuf}(hj !hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubj%)}(hint lenh](jG)}(hinth]hint}(hj$!hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj !ubjG)}(h h]h }(hj2!hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj !ubj^)}(hlenh]hlen}(hj@!hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj !ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubj%)}(hstruct tipc_media_addr *ah](j5)}(hj8h]hstruct}(hjY!hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjU!ubjG)}(h h]h }(hjf!hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjU!ubh)}(hhh]j^)}(htipc_media_addrh]htipc_media_addr}(hjw!hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjt!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjy!modnameN classnameNjj)}j]j)}jj sbc.tipc_media_addr_printfasbuh1hhjU!ubjG)}(h h]h }(hj!hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjU!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU!ubj^)}(hah]ha}(hj!hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjU!ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubeh}(h]h ]h"]h$]h&]hhuh1jhj hhhj hKhubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj hhhj hKhubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j(hj hKhhj hhubj)}(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&]uh1jhj hhhj hKhubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1j#hhhjvhNhNubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKihj"ubj')}(hhh]h)}(h output bufferh]h output buffer}(hj6"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2"hKihj3"ubah}(h]h ]h"]h$]h&]uh1j&hj"ubeh}(h]h ]h"]h$]h&]uh1jhj2"hKihj"ubj)}(h)``int len`` output buffer size remaining h](j )}(h ``int len``h]j)}(hjV"h]hint len}(hjX"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT"ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKjhjP"ubj')}(hhh]h)}(houtput buffer size remainingh]houtput buffer size remaining}(hjo"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjk"hKjhjl"ubah}(h]h ]h"]h$]h&]uh1j&hjP"ubeh}(h]h ]h"]h$]h&]uh1jhjk"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&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKlhj"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&]uh1j&hj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hKlhj"ubeh}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!bearer_name_validate (C function)c.bearer_name_validatehNtauh1jhjvhhhNhNubj$)}(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](jG)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj"hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKubjG)}(h h]h }(hj"hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj"hhhj"hKubjX)}(hbearer_name_validateh]j^)}(hbearer_name_validateh]hbearer_name_validate}(hj #hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj#ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj"hhhj"hKubj)}(h8(const char *name, struct tipc_bearer_names *name_parts)h](j%)}(hconst char *nameh](j5)}(hj,h]hconst}(hj&#hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj"#ubjG)}(h h]h }(hj3#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj"#ubjG)}(hcharh]hchar}(hjA#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj"#ubjG)}(h h]h }(hjO#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj"#ubj)}(hjh]h*}(hj]#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"#ubj^)}(hnameh]hname}(hjj#hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj"#ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj#ubj%)}(h$struct tipc_bearer_names *name_partsh](j5)}(hj8h]hstruct}(hj#hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj#ubjG)}(h h]h }(hj#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj#ubh)}(hhh]j^)}(htipc_bearer_namesh]htipc_bearer_names}(hj#hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]j)}jj #sbc.bearer_name_validateasbuh1hhj#ubjG)}(h h]h }(hj#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj^)}(h name_partsh]h name_parts}(hj#hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj#ubeh}(h]h ]h"]h$]h&]hhuh1jhj"hhhj"hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj"hhhj"hKubah}(h]j"ah ](jjeh"]h$]h&]jj)jhuh1j(hj"hKhj"hhubj)}(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&]uh1jhj"hhhj"hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$jj$jjjuh1j#hhhjvhNhNubj)}(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)}(hjG$h]hconst char *name}(hjI$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE$ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhjA$ubj')}(hhh]h)}(hptr to bearer name stringh]hptr to bearer name string}(hj`$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\$hKhj]$ubah}(h]h ]h"]h$]h&]uh1j&hjA$ubeh}(h]h ]h"]h$]h&]uh1jhj\$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)}(hj$h]h$struct tipc_bearer_names *name_parts}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~$ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhjz$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&]uh1j&hjz$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&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_bearer_find (C function)c.tipc_bearer_findhNtauh1jhjvhhhNhNubj$)}(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](j5)}(hj8h]hstruct}(hj%hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj$hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj$hhhj %hKubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hj%hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!%modnameN classnameNjj)}j]j)}jtipc_bearer_findsbc.tipc_bearer_findasbuh1hhj$hhhj %hKubjG)}(h h]h }(hj@%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj$hhhj %hKubj)}(hjh]h*}(hjN%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj %hKubjX)}(htipc_bearer_findh]j^)}(hj=%h]htipc_bearer_find}(hj_%hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj[%ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj$hhhj %hKubj)}(h#(struct net *net, const char *name)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjz%hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjv%ubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjv%ubh)}(hhh]j^)}(hneth]hnet}(hj%hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j;%c.tipc_bearer_findasbuh1hhjv%ubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjv%ubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv%ubj^)}(hneth]hnet}(hj%hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjv%ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjr%ubj%)}(hconst char *nameh](j5)}(hj,h]hconst}(hj%hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj%ubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj%ubjG)}(hcharh]hchar}(hj&hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj%ubjG)}(h h]h }(hj&hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj%ubj)}(hjh]h*}(hj!&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj^)}(hnameh]hname}(hj.&hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjr%ubeh}(h]h ]h"]h$]h&]hhuh1jhj$hhhj %hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj$hhhj %hKubah}(h]j$ah ](jjeh"]h$]h&]jj)jhuh1j(hj %hKhj$hhubj)}(hhh]h)}(h/locates bearer object with matching bearer nameh]h/locates bearer object with matching bearer name}(hjX&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhjU&hhubah}(h]h ]h"]h$]h&]uh1jhj$hhhj %hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjp&jjp&jjjuh1j#hhhjvhNhNubj)}(hp**Parameters** ``struct net *net`` the applicable net namespace ``const char *name`` bearer name to locateh](h)}(h**Parameters**h]j)}(hjz&h]h Parameters}(hj|&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx&ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhjt&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&]uh1j hR/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&]uh1j&hj&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&]uh1j hR/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&]uh1j&hj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hKhj&ubeh}(h]h ]h"]h$]h&]uh1jhjt&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_enable_bearer (C function)c.tipc_enable_bearerhNtauh1jhjvhhhNhNubj$)}(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](jG)}(hinth]hint}(hj,'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj('hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKubjG)}(h h]h }(hj;'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj('hhhj:'hKubjX)}(htipc_enable_bearerh]j^)}(htipc_enable_bearerh]htipc_enable_bearer}(hjM'hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjI'ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj('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](j5)}(hj8h]hstruct}(hji'hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hje'ubjG)}(h h]h }(hjv'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhje'ubh)}(hhh]j^)}(hneth]hnet}(hj'hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jjO'sbc.tipc_enable_bearerasbuh1hhje'ubjG)}(h h]h }(hj'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhje'ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje'ubj^)}(hneth]hnet}(hj'hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hje'ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hja'ubj%)}(hconst char *nameh](j5)}(hj,h]hconst}(hj'hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj'ubjG)}(h h]h }(hj'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj'ubjG)}(hcharh]hchar}(hj'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj'ubjG)}(h h]h }(hj(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj'ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj^)}(hnameh]hname}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hja'ubj%)}(hu32 disc_domainh](h)}(hhh]j^)}(hu32h]hu32}(hj;(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj8(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=(modnameN classnameNjj)}j]j'c.tipc_enable_bearerasbuh1hhj4(ubjG)}(h h]h }(hjY(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj4(ubj^)}(h disc_domainh]h disc_domain}(hjg(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj4(ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hja'ubj%)}(hu32 prioh](h)}(hhh]j^)}(hu32h]hu32}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j'c.tipc_enable_bearerasbuh1hhj|(ubjG)}(h h]h }(hj(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|(ubj^)}(hprioh]hprio}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj|(ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hja'ubj%)}(hstruct nlattr *attr[]h](j5)}(hj8h]hstruct}(hj(hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj(ubjG)}(h h]h }(hj(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj(ubh)}(hhh]j^)}(hnlattrh]hnlattr}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j'c.tipc_enable_bearerasbuh1hhj(ubjG)}(h h]h }(hj)hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj(ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj^)}(hattrh]hattr}(hj)hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj(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&]noemphhhuh1j$hja'ubj%)}(hstruct netlink_ext_ack *extackh](j5)}(hj8h]hstruct}(hjT)hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjP)ubjG)}(h h]h }(hja)hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjP)ubh)}(hhh]j^)}(hnetlink_ext_ackh]hnetlink_ext_ack}(hjr)hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjo)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjt)modnameN classnameNjj)}j]j'c.tipc_enable_bearerasbuh1hhjP)ubjG)}(h h]h }(hj)hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjP)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP)ubj^)}(hextackh]hextack}(hj)hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjP)ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hja'ubeh}(h]h ]h"]h$]h&]hhuh1jhj('hhhj:'hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj$'hhhj:'hKubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1j(hj:'hKhj!'hhubj)}(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&]uh1jhj!'hhhj:'hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj)jj)jjjuh1j#hhhjvhNhNubj)}(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&]uh1j hR/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&]uh1j&hj*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)}(hjO*h]hconst char *name}(hjQ*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM*ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhjI*ubj')}(hhh]h)}(hbearer name to enableh]hbearer name to enable}(hjh*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd*hKhje*ubah}(h]h ]h"]h$]h&]uh1j&hjI*ubeh}(h]h ]h"]h$]h&]uh1jhjd*hKhj *ubj)}(h"``u32 disc_domain`` bearer domain h](j )}(h``u32 disc_domain``h]j)}(hj*h]hu32 disc_domain}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj*ubj')}(hhh]h)}(h bearer domainh]h bearer domain}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj*ubah}(h]h ]h"]h$]h&]uh1j&hj*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&]uh1j hR/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&]uh1j&hj*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&]uh1j hR/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&]uh1j&hj*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)}(hj3+h]hstruct netlink_ext_ack *extack}(hj5+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1+ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhj-+ubj')}(hhh]h)}(hnetlink extended ackh]hnetlink extended ack}(hjL+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chKhjI+ubah}(h]h ]h"]h$]h&]uh1j&hj-+ubeh}(h]h ]h"]h$]h&]uh1jhjH+hKhj *ubeh}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_reset_bearer (C function)c.tipc_reset_bearerhNtauh1jhjvhhhNhNubj$)}(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](jG)}(hinth]hint}(hj+hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj+hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMyubjG)}(h h]h }(hj+hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj+hhhj+hMyubjX)}(htipc_reset_bearerh]j^)}(htipc_reset_bearerh]htipc_reset_bearer}(hj+hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj+ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj+hhhj+hMyubj)}(h((struct net *net, struct tipc_bearer *b)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj+hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj+ubjG)}(h h]h }(hj+hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj+ubh)}(hhh]j^)}(hneth]hnet}(hj+hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]j)}jj+sbc.tipc_reset_bearerasbuh1hhj+ubjG)}(h h]h }(hj,hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj+ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj^)}(hneth]hnet}(hj#,hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj+ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj+ubj%)}(hstruct tipc_bearer *bh](j5)}(hj8h]hstruct}(hj<,hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj8,ubjG)}(h h]h }(hjI,hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj8,ubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hjZ,hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjW,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\,modnameN classnameNjj)}j]j,c.tipc_reset_bearerasbuh1hhj8,ubjG)}(h h]h }(hjx,hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj8,ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8,ubj^)}(hbh]hb}(hj,hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj8,ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj+ubeh}(h]h ]h"]h$]h&]hhuh1jhj+hhhj+hMyubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj+hhhj+hMyubah}(h]j+ah ](jjeh"]h$]h&]jj)jhuh1j(hj+hMyhj+hhubj)}(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&]uh1jhj+hhhj+hMyubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1j#hhhjvhNhNubj)}(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&]uh1j hR/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&]uh1j&hj,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)}(hj7-h]hstruct tipc_bearer *b}(hj9-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5-ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chM|hj1-ubj')}(hhh]h)}(hthe target bearerh]hthe target bearer}(hjP-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chM{hjM-ubah}(h]h ]h"]h$]h&]uh1j&hj1-ubeh}(h]h ]h"]h$]h&]uh1jhjL-hM|hj,ubeh}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jbearer_disable (C function)c.bearer_disablehNtauh1jhjvhhhNhNubj$)}(hhh](j))}(h``struct notifier_block *nb`` the context of the notification h](j )}(h``struct notifier_block *nb``h]j)}(hj8h]hstruct notifier_block *nb}(hj!8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1j hR/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}(hj88hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj48hMhj58ubah}(h]h ]h"]h$]h&]uh1j&hj8ubeh}(h]h ]h"]h$]h&]uh1jhj48hMhj8ubj)}(h(``unsigned long evt`` the type of event h](j )}(h``unsigned long evt``h]j)}(hjX8h]hunsigned long evt}(hjZ8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV8ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMhjR8ubj')}(hhh]h)}(hthe type of eventh]hthe type of event}(hjq8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm8hMhjn8ubah}(h]h ]h"]h$]h&]uh1j&hjR8ubeh}(h]h ]h"]h$]h&]uh1jhjm8hMhj8ubj)}(h3``void *ptr`` the net device that the event was on h](j )}(h ``void *ptr``h]j)}(hj8h]h void *ptr}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:148: ./net/tipc/bearer.chMhj8ubj')}(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&]uh1j&hj8ubeh}(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&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](judp_media_addr (C struct)c.udp_media_addrhNtauh1jhjvhhhNhNubj$)}(hhh](j))}(hudp_media_addrh]j/)}(hstruct udp_media_addrh](j5)}(hj8h]hstruct}(hj9hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj 9hhhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKubjG)}(h h]h }(hj9hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj 9hhhj9hKubjX)}(hudp_media_addrh]j^)}(hj 9h]hudp_media_addr}(hj19hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj-9ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj 9hhhj9hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj 9hhhj9hKubah}(h]j9ah ](jjeh"]h$]h&]jj)jhuh1j(hj9hKhj9hhubj)}(hhh]h)}(hIP/UDP addressing informationh]hIP/UDP addressing information}(hjS9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK?hjP9hhubah}(h]h ]h"]h$]h&]uh1jhj9hhhj9hKubeh}(h]h ](jstructeh"]h$]h&]jjjjk9jjk9jjjuh1j#hhhjvhNhNubj)}(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}(hjw9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs9ubh:}(hjs9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKChjo9ubj)}(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; }; };}hj9sbah}(h]h ]h"]h$]h&]hhuh1jhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKEhjo9ubh)}(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.chKNhjo9ubj)}(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&]uh1j hU/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&]uh1j&hj9ubeh}(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&]uh1j hU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKFhj9ubj')}(hhh]h)}(hport being usedh]hport being used}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hKFhj:ubah}(h]h ]h"]h$]h&]uh1j&hj9ubeh}(h]h ]h"]h$]h&]uh1jhj:hKFhj9ubj)}(h``{unnamed_union}`` anonymous h](j )}(h``{unnamed_union}``h]j)}(hj2:h]h{unnamed_union}}(hj4:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0:ubah}(h]h ]h"]h$]h&]uh1j hU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKhj,:ubj')}(hhh]h)}(h anonymoush]h anonymous}(hjK:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG:hKhjH:ubah}(h]h ]h"]h$]h&]uh1j&hj,:ubeh}(h]h ]h"]h$]h&]uh1jhjG:hKhj9ubj)}(h"``ipv4`` IPv4 address of neighbor h](j )}(h``ipv4``h]j)}(hjk:h]hipv4}(hjm:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji:ubah}(h]h ]h"]h$]h&]uh1j hU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKGhje:ubj')}(hhh]h)}(hIPv4 address of neighborh]hIPv4 address of neighbor}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hKGhj:ubah}(h]h ]h"]h$]h&]uh1j&hje:ubeh}(h]h ]h"]h$]h&]uh1jhj: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&]uh1j hU/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&]uh1j&hj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hKGhj9ubeh}(h]h ]h"]h$]h&]uh1jhjo9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubh)}(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.chKKhjvhhubh)}(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@hjvhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](judp_bearer (C struct) c.udp_bearerhNtauh1jhjvhhhNhNubj$)}(hhh](j))}(h udp_bearerh]j/)}(hstruct udp_bearerh](j5)}(hj8h]hstruct}(hj%;hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj!;hhhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chKFubjG)}(h h]h }(hj3;hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj!;hhhj2;hKFubjX)}(h udp_bearerh]j^)}(hj;h]h udp_bearer}(hjE;hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjA;ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj!;hhhj2;hKFubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj;hhhj2;hKFubah}(h]j;ah ](jjeh"]h$]h&]jj)jhuh1j(hj2;hKFhj;hhubj)}(hhh]h)}(hip/udp bearer data structureh]hip/udp bearer data structure}(hjg;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK[hjd;hhubah}(h]h ]h"]h$]h&]uh1jhj;hhhj2;hKFubeh}(h]h ](jstructeh"]h$]h&]jjjj;jj;jjjuh1j#hhhjvhNhNubj)}(hX**Definition**:: struct udp_bearer { struct tipc_bearer *bearer; struct sock *sk; u32 ifindex; struct work_struct work; struct udp_replicast rcast; }; **Members** ``bearer`` associated generic tipc bearer ``sk`` 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}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubh:}(hj;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK_hj;ubj)}(hstruct udp_bearer { struct tipc_bearer *bearer; struct sock *sk; u32 ifindex; struct work_struct work; struct udp_replicast rcast; };h]hstruct udp_bearer { struct tipc_bearer *bearer; struct sock *sk; 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.chKahj;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.chKihj;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&]uh1j hU/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&]uh1j&hj;ubeh}(h]h ]h"]h$]h&]uh1jhj;hK]hj;ubj)}(h ``sk`` bearer associated socket h](j )}(h``sk``h]j)}(hj <h]hsk}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj <ubah}(h]h ]h"]h$]h&]uh1j hU/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&]uh1j&hj<ubeh}(h]h ]h"]h$]h&]uh1jhj"<hK^hj;ubj)}(h ``ifindex`` local address scope h](j )}(h ``ifindex``h]j)}(hjF<h]hifindex}(hjH<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD<ubah}(h]h ]h"]h$]h&]uh1j hU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK_hj@<ubj')}(hhh]h)}(hlocal address scopeh]hlocal address scope}(hj_<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[<hK_hj\<ubah}(h]h ]h"]h$]h&]uh1j&hj@<ubeh}(h]h ]h"]h$]h&]uh1jhj[<hK_hj;ubj)}(h4``work`` used to schedule deferred work on a bearer h](j )}(h``work``h]j)}(hj<h]hwork}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}<ubah}(h]h ]h"]h$]h&]uh1j hU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chK`hjy<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&]uh1j&hjy<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&]uh1j hU/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&]uh1j&hj<ubeh}(h]h ]h"]h$]h&]uh1jhj<hK`hj;ubeh}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_parse_udp_addr (C function)c.tipc_parse_udp_addrhNtauh1jhjvhhhNhNubj$)}(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](jG)}(hinth]hint}(hj=hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj=hhhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMAubjG)}(h h]h }(hj!=hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj=hhhj =hMAubjX)}(htipc_parse_udp_addrh]j^)}(htipc_parse_udp_addrh]htipc_parse_udp_addr}(hj3=hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj/=ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj=hhhj =hMAubj)}(h@(struct nlattr *nla, struct udp_media_addr *addr, u32 *scope_id)h](j%)}(hstruct nlattr *nlah](j5)}(hj8h]hstruct}(hjO=hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjK=ubjG)}(h h]h }(hj\=hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjK=ubh)}(hhh]j^)}(hnlattrh]hnlattr}(hjm=hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjo=modnameN classnameNjj)}j]j)}jj5=sbc.tipc_parse_udp_addrasbuh1hhjK=ubjG)}(h h]h }(hj=hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjK=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK=ubj^)}(hnlah]hnla}(hj=hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjK=ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjG=ubj%)}(hstruct udp_media_addr *addrh](j5)}(hj8h]hstruct}(hj=hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj=ubjG)}(h h]h }(hj=hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj=ubh)}(hhh]j^)}(hudp_media_addrh]hudp_media_addr}(hj=hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j=c.tipc_parse_udp_addrasbuh1hhj=ubjG)}(h h]h }(hj=hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj=ubj)}(hjh]h*}(hj >hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj^)}(haddrh]haddr}(hj>hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj=ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjG=ubj%)}(h u32 *scope_idh](h)}(hhh]j^)}(hu32h]hu32}(hj4>hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj1>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6>modnameN classnameNjj)}j]j=c.tipc_parse_udp_addrasbuh1hhj->ubjG)}(h h]h }(hjR>hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj->ubj)}(hjh]h*}(hj`>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj->ubj^)}(hscope_idh]hscope_id}(hjm>hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj->ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjG=ubeh}(h]h ]h"]h$]h&]hhuh1jhj=hhhj =hMAubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj =hhhj =hMAubah}(h]j=ah ](jjeh"]h$]h&]jj)jhuh1j(hj =hMAhj=hhubj)}(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.chMAhj>hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhj =hMAubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1j#hhhjvhNhNubj)}(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.chMEhj>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&]uh1j hU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMBhj>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>hMBhj>ubah}(h]h ]h"]h$]h&]uh1j&hj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hMBhj>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&]uh1j hU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMChj ?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&?hMChj'?ubah}(h]h ]h"]h$]h&]uh1j&hj ?ubeh}(h]h ]h"]h$]h&]uh1jhj&?hMChj>ubj)}(hI``u32 *scope_id`` IPv6 scope id pointer, not NULL indicates it's requiredh](j )}(h``u32 *scope_id``h]j)}(hjJ?h]h u32 *scope_id}(hjL?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH?ubah}(h]h ]h"]h$]h&]uh1j hU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMEhjD?ubj')}(hhh]h)}(h7IPv6 scope id pointer, not NULL indicates it's requiredh]h9IPv6 scope id pointer, not NULL indicates it’s required}(hjc?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMDhj`?ubah}(h]h ]h"]h$]h&]uh1j&hjD?ubeh}(h]h ]h"]h$]h&]uh1jhj_?hMEhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_udp_enable (C function)c.tipc_udp_enablehNtauh1jhjvhhhNhNubj$)}(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](jG)}(hinth]hint}(hj?hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj?hhhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMubjG)}(h h]h }(hj?hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj?hhhj?hMubjX)}(htipc_udp_enableh]j^)}(htipc_udp_enableh]htipc_udp_enable}(hj?hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj?ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj?hhhj?hMubj)}(h@(struct net *net, struct tipc_bearer *b, struct nlattr *attrs[])h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj?hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj?ubjG)}(h h]h }(hj?hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj?ubh)}(hhh]j^)}(hneth]hnet}(hj?hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jj?sbc.tipc_udp_enableasbuh1hhj?ubjG)}(h h]h }(hj@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj?ubj)}(hjh]h*}(hj-@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj^)}(hneth]hnet}(hj:@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj?ubj%)}(hstruct tipc_bearer *bh](j5)}(hj8h]hstruct}(hjS@hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjO@ubjG)}(h h]h }(hj`@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjO@ubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hjq@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjn@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjs@modnameN classnameNjj)}j]j@c.tipc_udp_enableasbuh1hhjO@ubjG)}(h h]h }(hj@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjO@ubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO@ubj^)}(hj,h]hb}(hj@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjO@ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj?ubj%)}(hstruct nlattr *attrs[]h](j5)}(hj8h]hstruct}(hj@hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj@ubjG)}(h h]h }(hj@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj@ubh)}(hhh]j^)}(hnlattrh]hnlattr}(hj@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j@c.tipc_udp_enableasbuh1hhj@ubjG)}(h h]h }(hj@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj@ubj)}(hjh]h*}(hj AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj^)}(hattrsh]hattrs}(hjAhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj@ubj)}(hj/)h]h[}(hj'AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hj=)h]h]}(hj4AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj?ubeh}(h]h ]h"]h$]h&]hhuh1jhj?hhhj?hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj?hhhj?hMubah}(h]j?ah ](jjeh"]h$]h&]jj)jhuh1j(hj?hMhj?hhubj)}(hhh]h)}(h,callback to create a new udp bearer instanceh]h,callback to create a new udp bearer instance}(hj]AhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjZAhhubah}(h]h ]h"]h$]h&]uh1jhj?hhhj?hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjuAjjuAjjjuh1j#hhhjvhNhNubj)}(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)}(hjAh]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}Aubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjyAubj)}(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&]uh1j hU/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&]uh1j&hjAubeh}(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&]uh1j hU/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&]uh1j&hjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjAubj)}(h8``struct nlattr *attrs[]`` netlink bearer configuration h](j )}(h``struct nlattr *attrs[]``h]j)}(hjBh]hstruct nlattr *attrs[]}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1j hU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhj Bubj')}(hhh]h)}(hnetlink bearer configurationh]hnetlink bearer configuration}(hj)BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%BhMhj&Bubah}(h]h ]h"]h$]h&]uh1j&hj Bubeh}(h]h ]h"]h$]h&]uh1jhj%BhMhjAubeh}(h]h ]h"]h$]h&]uh1jhjyAubh)}(h**Description**h]j)}(hjKBh]h Description}(hjMBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIBubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjyAubh)}(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}(hjaBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/networking/tipc:151: ./net/tipc/udp_media.chMhjyAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjvhhhNhNubeh}(h]tipc-bearer-interfacesah ]h"]tipc bearer interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Crypto Interfacesh]hTIPC Crypto Interfaces}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_tfm (C struct) c.tipc_tfmhNtauh1jhjBhhhNhNubj$)}(hhh](j))}(htipc_tfmh]j/)}(hstruct tipc_tfmh](j5)}(hj8h]hstruct}(hjBhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjBhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKubjG)}(h h]h }(hjBhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjBhhhjBhKubjX)}(htipc_tfmh]j^)}(hjBh]htipc_tfm}(hjBhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjBubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjBhhhjBhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjBhhhjBhKubah}(h]jBah ](jjeh"]h$]h&]jj)jhuh1j(hjBhKhjBhhubj)}(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&]uh1jhjBhhhjBhKubeh}(h]h ](jstructeh"]h$]h&]jjjjCjjCjjjuh1j#hhhjBhNhNubj)}(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}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Cubh:}(hj ChhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjCubj)}(hLstruct tipc_tfm { struct crypto_aead *tfm; struct list_head list; };h]hLstruct tipc_tfm { struct crypto_aead *tfm; struct list_head list; };}hj(Csbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjCubh)}(h **Members**h]j)}(hj9Ch]hMembers}(hj;ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Cubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjCubj)}(hhh](j)}(h``tfm`` cipher handle/key h](j )}(h``tfm``h]j)}(hjXCh]htfm}(hjZChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVCubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjRCubj')}(hhh]h)}(hcipher handle/keyh]hcipher handle/key}(hjqChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmChKhjnCubah}(h]h ]h"]h$]h&]uh1j&hjRCubeh}(h]h ]h"]h$]h&]uh1jhjmChKhjOCubj)}(h``list`` linked list of TFMsh](j )}(h``list``h]j)}(hjCh]hlist}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjCubj')}(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&]uh1j&hjCubeh}(h]h ]h"]h$]h&]uh1jhjChKhjOCubeh}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_aead (C struct) c.tipc_aeadhNtauh1jhjBhhhNhNubj$)}(hhh](j))}(h tipc_aeadh]j/)}(hstruct tipc_aeadh](j5)}(hj8h]hstruct}(hjChhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjChhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKubjG)}(h h]h }(hjChhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjChhhjChKubjX)}(h tipc_aeadh]j^)}(hjCh]h tipc_aead}(hj DhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjDubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjChhhjChKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjChhhjChKubah}(h]jCah ](jjeh"]h$]h&]jj)jhuh1j(hjChKhjChhubj)}(hhh]h)}(hTIPC AEAD key structureh]hTIPC AEAD key structure}(hj-DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj*Dhhubah}(h]h ]h"]h$]h&]uh1jhjChhhjChKubeh}(h]h ](jstructeh"]h$]h&]jjjjEDjjEDjjjuh1j#hhhjBhNhNubj)}(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}(hjQDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMDubh:}(hjMDhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIDubj)}(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; };}hjjDsbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIDubh)}(h **Members**h]j)}(hj{Dh]hMembers}(hj}DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyDubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIDubj)}(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&]uh1j hR/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&]uh1j&hjDubeh}(h]h ]h"]h$]h&]uh1jhjDhKhjDubj)}(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&]uh1j hR/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&]uh1j&hjDubeh}(h]h ]h"]h$]h&]uh1jhjDhKhjDubj)}(h7``cloned`` reference to the source key in case cloning h](j )}(h ``cloned``h]j)}(hj Eh]hcloned}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Eubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjEubj')}(hhh]h)}(h+reference to the source key in case cloningh]h+reference to the source key in case cloning}(hj%EhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!EhKhj"Eubah}(h]h ]h"]h$]h&]uh1j&hjEubeh}(h]h ]h"]h$]h&]uh1jhj!EhKhjDubj)}(h.``users`` the number of the key users (TX/RX) h](j )}(h ``users``h]j)}(hjEEh]husers}(hjGEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCEubah}(h]h ]h"]h$]h&]uh1j hR/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)}(hj^EhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZEhKhj[Eubah}(h]h ]h"]h$]h&]uh1j&hj?Eubeh}(h]h ]h"]h$]h&]uh1jhjZEhKhjDubj)}(h``salt`` the key's SALT value h](j )}(h``salt``h]j)}(hj~Eh]hsalt}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Eubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjxEubj')}(hhh]h)}(hthe key's SALT valueh]hthe key’s SALT value}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhKhjEubah}(h]h ]h"]h$]h&]uh1j&hjxEubeh}(h]h ]h"]h$]h&]uh1jhjEhKhjDubj)}(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&]uh1j hR/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&]uh1j&hjEubeh}(h]h ]h"]h$]h&]uh1jhjEhKhjDubj)}(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&]uh1j hR/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}(hj FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhKhjFubah}(h]h ]h"]h$]h&]uh1j&hjEubeh}(h]h ]h"]h$]h&]uh1jhjFhKhjDubj)}(h``hint`` a hint for user key h](j )}(h``hint``h]j)}(hj)Fh]hhint}(hj+FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Fubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj#Fubj')}(hhh]h)}(ha hint for user keyh]ha hint for user key}(hjBFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>FhKhj?Fubah}(h]h ]h"]h$]h&]uh1j&hj#Fubeh}(h]h ]h"]h$]h&]uh1jhj>FhKhjDubj)}(h``rcu`` struct rcu_head h](j )}(h``rcu``h]j)}(hjbFh]hrcu}(hjdFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`Fubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj\Fubj')}(hhh]h)}(hstruct rcu_headh]hstruct rcu_head}(hj{FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwFhKhjxFubah}(h]h ]h"]h$]h&]uh1j&hj\Fubeh}(h]h ]h"]h$]h&]uh1jhjwFhKhjDubj)}(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&]uh1j hR/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&]uh1j&hjFubeh}(h]h ]h"]h$]h&]uh1jhjFhKhjDubj)}(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&]uh1j hR/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&]uh1j&hjFubeh}(h]h ]h"]h$]h&]uh1jhjFhKhjDubj)}(h(``seqno`` the key seqno (cluster scope) h](j )}(h ``seqno``h]j)}(hj Gh]hseqno}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Gubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjGubj')}(hhh]h)}(hthe key seqno (cluster scope)h]hthe key seqno (cluster scope)}(hj&GhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"GhKhj#Gubah}(h]h ]h"]h$]h&]uh1j&hjGubeh}(h]h ]h"]h$]h&]uh1jhj"GhKhjDubj)}(h$``refcnt`` the key reference counterh](j )}(h ``refcnt``h]j)}(hjFGh]hrefcnt}(hjHGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDGubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj@Gubj')}(hhh]h)}(hthe key reference counterh]hthe key reference counter}(hj_GhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj\Gubah}(h]h ]h"]h$]h&]uh1j&hj@Gubeh}(h]h ]h"]h$]h&]uh1jhj[GhKhjDubeh}(h]h ]h"]h$]h&]uh1jhjIDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_crypto_stats (C struct)c.tipc_crypto_statshNtauh1jhjBhhhNhNubj$)}(hhh](j))}(htipc_crypto_statsh]j/)}(hstruct tipc_crypto_statsh](j5)}(hj8h]hstruct}(hjGhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjGhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKubjG)}(h h]h }(hjGhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGhhhjGhKubjX)}(htipc_crypto_statsh]j^)}(hjGh]htipc_crypto_stats}(hjGhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjGubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjGhhhjGhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjGhhhjGhKubah}(h]jGah ](jjeh"]h$]h&]jj)jhuh1j(hjGhKhjGhhubj)}(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&]uh1jhjGhhhjGhKubeh}(h]h ](jstructeh"]h$]h&]jjjjGjjGjjjuh1j#hhhjBhNhNubj)}(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}(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.chKhjGubj)}(h?struct tipc_crypto_stats { unsigned int stat[MAX_STATS]; };h]h?struct tipc_crypto_stats { unsigned int stat[MAX_STATS]; };}hjHsbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjGubh)}(h **Members**h]j)}(hj0Hh]hMembers}(hj2HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.Hubah}(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)}(hjOHh]hstat}(hjQHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMHubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIHubj')}(hhh]h)}(harray of crypto statisticsh]harray of crypto statistics}(hjhHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjeHubah}(h]h ]h"]h$]h&]uh1j&hjIHubeh}(h]h ]h"]h$]h&]uh1jhjdHhKhjFHubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_crypto (C struct) c.tipc_cryptohNtauh1jhjBhhhNhNubj$)}(hhh](j))}(h tipc_cryptoh]j/)}(hstruct tipc_cryptoh](j5)}(hj8h]hstruct}(hjHhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjHhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKubjG)}(h h]h }(hjHhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjHhhhjHhKubjX)}(h tipc_cryptoh]j^)}(hjHh]h tipc_crypto}(hjHhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjHubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjHhhhjHhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjHhhhjHhKubah}(h]jHah ](jjeh"]h$]h&]jj)jhuh1j(hjHhKhjHhhubj)}(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&]uh1jhjHhhhjHhKubeh}(h]h ](jstructeh"]h$]h&]jjjjIjjIjjjuh1j#hhhjBhNhNubj)}(hX2**Definition**:: struct tipc_crypto { struct net *net; struct tipc_node *node; struct tipc_aead *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}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Iubh:}(hj IhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIubj)}(hXstruct tipc_crypto { struct net *net; struct tipc_node *node; struct tipc_aead *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 *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; };}hj(Isbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIubh)}(h **Members**h]j)}(hj9Ih]hMembers}(hj;IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Iubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIubj)}(hhh](j)}(h``net`` struct net h](j )}(h``net``h]j)}(hjXIh]hnet}(hjZIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVIubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjRIubj')}(hhh]h)}(h struct neth]h struct net}(hjqIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmIhKhjnIubah}(h]h ]h"]h$]h&]uh1j&hjRIubeh}(h]h ]h"]h$]h&]uh1jhjmIhKhjOIubj)}(h``node`` TIPC node (RX) h](j )}(h``node``h]j)}(hjIh]hnode}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjIubj')}(hhh]h)}(hTIPC node (RX)h]hTIPC node (RX)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKhjIubah}(h]h ]h"]h$]h&]uh1j&hjIubeh}(h]h ]h"]h$]h&]uh1jhjIhKhjOIubj)}(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&]uh1j hR/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&]uh1j&hjIubeh}(h]h ]h"]h$]h&]uh1jhjIhKhjOIubj)}(h7``peer_rx_active`` replicated peer RX active key index h](j )}(h``peer_rx_active``h]j)}(hjJh]hpeer_rx_active}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1j hR/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&]uh1j&hjIubeh}(h]h ]h"]h$]h&]uh1jhjJhKhjOIubj)}(h!``key_gen`` TX/RX key generation h](j )}(h ``key_gen``h]j)}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:Jubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj6Jubj')}(hhh]h)}(hTX/RX key generationh]hTX/RX key generation}(hjUJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQJhKhjRJubah}(h]h ]h"]h$]h&]uh1j&hj6Jubeh}(h]h ]h"]h$]h&]uh1jhjQJhKhjOIubj)}(h``key`` the key states h](j )}(h``key``h]j)}(hjuJh]hkey}(hjwJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsJubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjoJubj')}(hhh]h)}(hthe key statesh]hthe key states}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjJubah}(h]h ]h"]h$]h&]uh1j&hjoJubeh}(h]h ]h"]h$]h&]uh1jhjJhKhjOIubj)}(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&]uh1j hR/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&]uh1j&hjJubeh}(h]h ]h"]h$]h&]uh1jhjJhKhjOIubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjJubj')}(hhh]h)}(hreceived session keyh]hreceived session key}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjJubah}(h]h ]h"]h$]h&]uh1j&hjJubeh}(h]h ]h"]h$]h&]uh1jhjJhKhjOIubj)}(h%``wq`` common workqueue on TX crypto h](j )}(h``wq``h]j)}(hj Kh]hwq}(hj"KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1j hR/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}(hj9KhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5KhKhj6Kubah}(h]h ]h"]h$]h&]uh1j&hjKubeh}(h]h ]h"]h$]h&]uh1jhj5KhKhjOIubj)}(h&``work`` delayed work sched for TX/RX h](j )}(h``work``h]j)}(hjYKh]hwork}(hj[KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWKubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjSKubj')}(hhh]h)}(hdelayed work sched for TX/RXh]hdelayed work sched for TX/RX}(hjrKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnKhKhjoKubah}(h]h ]h"]h$]h&]uh1j&hjSKubeh}(h]h ]h"]h$]h&]uh1jhjnKhKhjOIubj)}(h%``key_distr`` key distributing state h](j )}(h ``key_distr``h]j)}(hjKh]h key_distr}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjKubj')}(hhh]h)}(hkey distributing stateh]hkey distributing state}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhKhjKubah}(h]h ]h"]h$]h&]uh1j&hjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKhjOIubj)}(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&]uh1j hR/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&]uh1j&hjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKhjOIubj)}(h ``stats`` the crypto statistics h](j )}(h ``stats``h]j)}(hjLh]hstats}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjKubj')}(hhh]h)}(hthe crypto statisticsh]hthe crypto statistics}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhKhjLubah}(h]h ]h"]h$]h&]uh1j&hjKubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjOIubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhj7Lubj')}(hhh]h)}(hthe crypto nameh]hthe crypto name}(hjVLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRLhKhjSLubah}(h]h ]h"]h$]h&]uh1j&hj7Lubeh}(h]h ]h"]h$]h&]uh1jhjRLhKhjOIubj)}(h$``sndnxt`` the per-peer sndnxt (TX) h](j )}(h ``sndnxt``h]j)}(hjvLh]hsndnxt}(hjxLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtLubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjpLubj')}(hhh]h)}(hthe per-peer sndnxt (TX)h]hthe per-peer sndnxt (TX)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhKhjLubah}(h]h ]h"]h$]h&]uh1j&hjpLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjOIubj)}(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&]uh1j hR/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&]uh1j&hjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjOIubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjLubj')}(hhh]h)}(hgeneral timer 2 (jiffies)h]hgeneral timer 2 (jiffies)}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhKhjLubah}(h]h ]h"]h$]h&]uh1j&hjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjOIubj)}(h``{unnamed_union}`` anonymous h](j )}(h``{unnamed_union}``h]j)}(hj!Mh]h{unnamed_union}}(hj#MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1j hR/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&]uh1hhj6MhKhj7Mubah}(h]h ]h"]h$]h&]uh1j&hjMubeh}(h]h ]h"]h$]h&]uh1jhj6MhKhjOIubj)}(h``{unnamed_struct}`` anonymous h](j )}(h``{unnamed_struct}``h]j)}(hjZMh]h{unnamed_struct}}(hj\MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXMubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjTMubj')}(hhh]h)}(h anonymoush]h anonymous}(hjsMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoMhKhjpMubah}(h]h ]h"]h$]h&]uh1j&hjTMubeh}(h]h ]h"]h$]h&]uh1jhjoMhKhjOIubj)}(h)``working`` the crypto is working or not h](j )}(h ``working``h]j)}(hjMh]hworking}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chKhjMubj')}(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&]uh1j&hjMubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjOIubj)}(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&]uh1j hR/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&]uh1j&hjMubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjOIubj)}(hN``legacy_user`` flag indicates if a peer joins w/o master key (for bwd comp.) h](j )}(h``legacy_user``h]j)}(hjNh]h legacy_user}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1j hR/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.)}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhKhjNubah}(h]h ]h"]h$]h&]uh1j&hjMubeh}(h]h ]h"]h$]h&]uh1jhjNhKhjOIubj)}(h``nokey`` no key indication h](j )}(h ``nokey``h]j)}(hj>Nh]hnokey}(hj@NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjstruct crypto_aead *tipc_aead_tfm_next(struct tipc_aead *aead)h](j5)}(hj8h]hstruct}(hjShhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjShhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubjG)}(h h]h }(hjShhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjShhhjShMubh)}(hhh]j^)}(h crypto_aeadh]h crypto_aead}(hj ThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj TmodnameN classnameNjj)}j]j)}jtipc_aead_tfm_nextsbc.tipc_aead_tfm_nextasbuh1hhjShhhjShMubjG)}(h h]h }(hj*ThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjShhhjShMubj)}(hjh]h*}(hj8ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhjShMubjX)}(htipc_aead_tfm_nexth]j^)}(hj'Th]htipc_aead_tfm_next}(hjIThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjETubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjShhhjShMubj)}(h(struct tipc_aead *aead)h]j%)}(hstruct tipc_aead *aeadh](j5)}(hj8h]hstruct}(hjdThhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj`TubjG)}(h h]h }(hjqThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj`Tubh)}(hhh]j^)}(h tipc_aeadh]h tipc_aead}(hjThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j%Tc.tipc_aead_tfm_nextasbuh1hhj`TubjG)}(h h]h }(hjThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj`Tubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`Tubj^)}(haeadh]haead}(hjThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj`Tubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj\Tubah}(h]h ]h"]h$]h&]hhuh1jhjShhhjShMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjShhhjShMubah}(h]jSah ](jjeh"]h$]h&]jj)jhuh1j(hjShMhjShhubj)}(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&]uh1jhjShhhjShMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1j#hhhjBhNhNubj)}(hA**Parameters** ``struct tipc_aead *aead`` the AEAD key pointerh](h)}(h**Parameters**h]j)}(hjUh]h Parameters}(hj UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjUubj)}(hhh]j)}(h/``struct tipc_aead *aead`` the AEAD key pointerh](j )}(h``struct tipc_aead *aead``h]j)}(hj&Uh]hstruct tipc_aead *aead}(hj(UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$Uubah}(h]h ]h"]h$]h&]uh1j hR/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(struct tipc_aead **aead, struct tipc_aead_key *ukey, u8 mode)h](j%)}(hstruct tipc_aead **aeadh](j5)}(hj8h]hstruct}(hjUhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjUubjG)}(h h]h }(hjUhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjUubh)}(hhh]j^)}(h tipc_aeadh]h tipc_aead}(hjUhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjUsbc.tipc_aead_initasbuh1hhjUubjG)}(h h]h }(hjUhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjUubj)}(hjh]h*}(hj VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj^)}(haeadh]haead}(hj#VhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjUubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjUubj%)}(hstruct tipc_aead_key *ukeyh](j5)}(hj8h]hstruct}(hj``struct tipc_media_addr *dst`` the destination media address h](j )}(h``struct tipc_media_addr *dst``h]j)}(hjch]hstruct tipc_media_addr *dst}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1j hR/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&]uh1j&hjbubeh}(h]h ]h"]h$]h&]uh1jhjchMhjObubj)}(h8``struct tipc_node *__dnode`` TIPC dest node if "known" h](j )}(h``struct tipc_node *__dnode``h]j)}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:cubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj6cubj')}(hhh]h)}(hTIPC dest node if "known"h]hTIPC dest node if “known”}(hjUchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQchMhjRcubah}(h]h ]h"]h$]h&]uh1j&hj6cubeh}(h]h ]h"]h$]h&]uh1jhjQchMhjObubeh}(h]h ]h"]h$]h&]uh1jhj3bubh)}(h **Return**h]j)}(hjwch]hReturn}(hjychhhNhNubah}(h]h ]h"]h$]h&]uh1jhjucubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj3bubj)}(hhh](j)}(h50 : if the encryption has completedh]h)}(hjch]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.chMhjcubah}(h]h ]h"]h$]h&]uh1jhjcubj)}(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&]uh1jhjcubj)}(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&]uh1jhjcubeh}(h]h ]h"]h$]h&]jjuh1jhjchMhj3bubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_aead_decrypt (C function)c.tipc_aead_decrypthNtauh1jhjBhhhNhNubj$)}(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](jG)}(hinth]hint}(hjchhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjchhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMbubjG)}(h h]h }(hj dhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjchhhj dhMbubjX)}(htipc_aead_decrypth]j^)}(htipc_aead_decrypth]htipc_aead_decrypt}(hjdhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjdubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjchhhj dhMbubj)}(hU(struct net *net, struct tipc_aead *aead, struct sk_buff *skb, struct tipc_bearer *b)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj;dhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj7dubjG)}(h h]h }(hjHdhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj7dubh)}(hhh]j^)}(hneth]hnet}(hjYdhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjVdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[dmodnameN classnameNjj)}j]j)}jj!dsbc.tipc_aead_decryptasbuh1hhj7dubjG)}(h h]h }(hjydhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj7dubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7dubj^)}(hneth]hnet}(hjdhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj7dubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj3dubj%)}(hstruct tipc_aead *aeadh](j5)}(hj8h]hstruct}(hjdhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjdubjG)}(h h]h }(hjdhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjdubh)}(hhh]j^)}(h tipc_aeadh]h tipc_aead}(hjdhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]judc.tipc_aead_decryptasbuh1hhjdubjG)}(h h]h }(hjdhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjdubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj^)}(haeadh]haead}(hjehhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjdubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj3dubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjehhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjeubjG)}(h h]h }(hj*ehhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjeubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj;ehhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj8eubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=emodnameN classnameNjj)}j]judc.tipc_aead_decryptasbuh1hhjeubjG)}(h h]h }(hjYehhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjeubj)}(hjh]h*}(hjgehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj^)}(hskbh]hskb}(hjtehhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjeubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj3dubj%)}(hstruct tipc_bearer *bh](j5)}(hj8h]hstruct}(hjehhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjeubjG)}(h h]h }(hjehhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjeubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hjehhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]judc.tipc_aead_decryptasbuh1hhjeubjG)}(h h]h }(hjehhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjeubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj^)}(hj,h]hb}(hjehhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjeubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj3dubeh}(h]h ]h"]h$]h&]hhuh1jhjchhhj dhMbubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjchhhj dhMbubah}(h]jcah ](jjeh"]h$]h&]jj)jhuh1j(hj dhMbhjchhubj)}(hhh]h)}(hDecrypt an encrypted messageh]hDecrypt an encrypted message}(hj fhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMbhj fhhubah}(h]h ]h"]h$]h&]uh1jhjchhhj dhMbubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%fjj%fjjjuh1j#hhhjBhNhNubj)}(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)}(hj/fh]h Parameters}(hj1fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-fubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMfhj)fubj)}(hhh](j)}(h``struct net *net`` struct net h](j )}(h``struct net *net``h]j)}(hjNfh]hstruct net *net}(hjPfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLfubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMchjHfubj')}(hhh]h)}(h struct neth]h struct net}(hjgfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcfhMchjdfubah}(h]h ]h"]h$]h&]uh1j&hjHfubeh}(h]h ]h"]h$]h&]uh1jhjcfhMchjEfubj)}(h@``struct tipc_aead *aead`` TIPC AEAD for the message decryption h](j )}(h``struct tipc_aead *aead``h]j)}(hjfh]hstruct tipc_aead *aead}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMdhjfubj')}(hhh]h)}(h$TIPC AEAD for the message decryptionh]h$TIPC AEAD for the message decryption}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMdhjfubah}(h]h ]h"]h$]h&]uh1j&hjfubeh}(h]h ]h"]h$]h&]uh1jhjfhMdhjEfubj)}(h-``struct sk_buff *skb`` the input/output skb h](j )}(h``struct sk_buff *skb``h]j)}(hjfh]hstruct sk_buff *skb}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMehjfubj')}(hhh]h)}(hthe input/output skbh]hthe input/output skb}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMehjfubah}(h]h ]h"]h$]h&]uh1j&hjfubeh}(h]h ]h"]h$]h&]uh1jhjfhMehjEfubj)}(hJ``struct tipc_bearer *b`` TIPC bearer where the message has been received h](j )}(h``struct tipc_bearer *b``h]j)}(hjfh]hstruct tipc_bearer *b}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMfhjfubj')}(hhh]h)}(h/TIPC bearer where the message has been receivedh]h/TIPC bearer where the message has been received}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghMfhjgubah}(h]h ]h"]h$]h&]uh1j&hjfubeh}(h]h ]h"]h$]h&]uh1jhjghMfhjEfubeh}(h]h ]h"]h$]h&]uh1jhj)fubh)}(h **Return**h]j)}(hj4gh]hReturn}(hj6ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2gubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhhj)fubj)}(hhh](j)}(h50 : if the decryption has completedh]h)}(hjOgh]h50 : if the decryption has completed}(hjQghhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhhjMgubah}(h]h ]h"]h$]h&]uh1jhjJgubj)}(h5-EINPROGRESS/-EBUSY : if a callback will be performedh]h)}(hjggh]h5-EINPROGRESS/-EBUSY : if a callback will be performed}(hjighhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMihjegubah}(h]h ]h"]h$]h&]uh1jhjJgubj)}(h/< 0 : the decryption has failedh]h)}(hjgh]h/< 0 : the decryption has failed}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMjhj}gubah}(h]h ]h"]h$]h&]uh1jhjJgubeh}(h]h ]h"]h$]h&]jjuh1jhj^ghMhhj)fubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_ehdr_validate (C function)c.tipc_ehdr_validatehNtauh1jhjBhhhNhNubj$)}(hhh](j))}(h-bool tipc_ehdr_validate (struct sk_buff *skb)h]j/)}(h,bool tipc_ehdr_validate(struct sk_buff *skb)h](jG)}(hboolh]hbool}(hjghhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjghhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubjG)}(h h]h }(hjghhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjghhhjghMubjX)}(htipc_ehdr_validateh]j^)}(htipc_ehdr_validateh]htipc_ehdr_validate}(hjghhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjgubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjghhhjghMubj)}(h(struct sk_buff *skb)h]j%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjghhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjgubjG)}(h h]h }(hjhhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjgubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhmodnameN classnameNjj)}j]j)}jjgsbc.tipc_ehdr_validateasbuh1hhjgubjG)}(h h]h }(hj6hhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjgubj)}(hjh]h*}(hjDhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj^)}(hskbh]hskb}(hjQhhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjgubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjgubah}(h]h ]h"]h$]h&]hhuh1jhjghhhjghMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjghhhjghMubah}(h]jgah ](jjeh"]h$]h&]jj)jhuh1j(hjghMhjghhubj)}(hhh]h)}(hValidate an encryption messageh]hValidate an encryption message}(hj{hhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjxhhhubah}(h]h ]h"]h$]h&]uh1jhjghhhjghMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1j#hhhjBhNhNubj)}(h**Parameters** ``struct sk_buff *skb`` the message buffer **Return** "true" if this is a valid encryption message, otherwise "false"h](h)}(h**Parameters**h]j)}(hjhh]h Parameters}(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.chMhjhubj)}(hhh]j)}(h+``struct sk_buff *skb`` the message buffer h](j )}(h``struct sk_buff *skb``h]j)}(hjhh]hstruct sk_buff *skb}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjhubj')}(hhh]h)}(hthe message bufferh]hthe message buffer}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjhubah}(h]h ]h"]h$]h&]uh1j&hjhubeh}(h]h ]h"]h$]h&]uh1jhjhhMhjhubah}(h]h ]h"]h$]h&]uh1jhjhubh)}(h **Return**h]j)}(hjhh]hReturn}(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.chMhjhubh)}(h?"true" if this is a valid encryption message, otherwise "false"h]hG“true” if this is a valid encryption message, otherwise “false”}(hj ihhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_ehdr_build (C function)c.tipc_ehdr_buildhNtauh1jhjBhhhNhNubj$)}(hhh](j))}(hwint tipc_ehdr_build (struct net *net, struct tipc_aead *aead, u8 tx_key, struct sk_buff *skb, struct tipc_crypto *__rx)h]j/)}(hvint tipc_ehdr_build(struct net *net, struct tipc_aead *aead, u8 tx_key, struct sk_buff *skb, struct tipc_crypto *__rx)h](jG)}(hinth]hint}(hjnhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjmubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjnmubj%)}(hu8 modeh](h)}(hhh]j^)}(hu8h]hu8}(hjZnhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjWnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\nmodnameN classnameNjj)}j]jmc.tipc_crypto_key_initasbuh1hhjSnubjG)}(h h]h }(hjxnhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjSnubj^)}(hmodeh]hmode}(hjnhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjSnubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjnmubj%)}(hbool master_keyh](jG)}(hjgh]hbool}(hjnhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjnubjG)}(h h]h }(hjnhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjnubj^)}(h master_keyh]h master_key}(hjnhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjnubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjnmubeh}(h]h ]h"]h$]h&]hhuh1jhj5mhhhjGmhM]ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj1mhhhjGmhM]ubah}(h]j,mah ](jjeh"]h$]h&]jj)jhuh1j(hjGmhM]hj.mhhubj)}(hhh]h)}(hInitiate a new user / AEAD keyh]hInitiate a new user / AEAD key}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM]hjnhhubah}(h]h ]h"]h$]h&]uh1jhj.mhhhjGmhM]ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1j#hhhjBhNhNubj)}(hX**Parameters** ``struct tipc_crypto *c`` TIPC crypto to which new key is attached ``struct tipc_aead_key *ukey`` the user key ``u8 mode`` the key mode (CLUSTER_KEY or PER_NODE_KEY) ``bool master_key`` specify this is a cluster master key **Description** A new TIPC AEAD key will be allocated and initiated with the specified user key, then attached to the TIPC crypto. **Return** new key id in case of success, otherwise: < 0h](h)}(h**Parameters**h]j)}(hjoh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMahjoubj)}(hhh](j)}(hC``struct tipc_crypto *c`` TIPC crypto to which new key is attached h](j )}(h``struct tipc_crypto *c``h]j)}(hj%oh]hstruct tipc_crypto *c}(hj'ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#oubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM^hjoubj')}(hhh]h)}(h(TIPC crypto to which new key is attachedh]h(TIPC crypto to which new key is attached}(hj>ohhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:ohM^hj;oubah}(h]h ]h"]h$]h&]uh1j&hjoubeh}(h]h ]h"]h$]h&]uh1jhj:ohM^hjoubj)}(h,``struct tipc_aead_key *ukey`` the user key h](j )}(h``struct tipc_aead_key *ukey``h]j)}(hj^oh]hstruct tipc_aead_key *ukey}(hj`ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\oubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM_hjXoubj')}(hhh]h)}(h the user keyh]h the user key}(hjwohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsohM_hjtoubah}(h]h ]h"]h$]h&]uh1j&hjXoubeh}(h]h ]h"]h$]h&]uh1jhjsohM_hjoubj)}(h7``u8 mode`` the key mode (CLUSTER_KEY or PER_NODE_KEY) h](j )}(h ``u8 mode``h]j)}(hjoh]hu8 mode}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM`hjoubj')}(hhh]h)}(h*the key mode (CLUSTER_KEY or PER_NODE_KEY)h]h*the key mode (CLUSTER_KEY or PER_NODE_KEY)}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohM`hjoubah}(h]h ]h"]h$]h&]uh1j&hjoubeh}(h]h ]h"]h$]h&]uh1jhjohM`hjoubj)}(h9``bool master_key`` specify this is a cluster master key h](j )}(h``bool master_key``h]j)}(hjoh]hbool master_key}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMahjoubj')}(hhh]h)}(h$specify this is a cluster master keyh]h$specify this is a cluster master key}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohMahjoubah}(h]h ]h"]h$]h&]uh1j&hjoubeh}(h]h ]h"]h$]h&]uh1jhjohMahjoubeh}(h]h ]h"]h$]h&]uh1jhjoubh)}(h**Description**h]j)}(hj ph]h Description}(hj phhhNhNubah}(h]h ]h"]h$]h&]uh1jhj pubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMchjoubh)}(hrA new TIPC AEAD key will be allocated and initiated with the specified user key, then attached to the TIPC crypto.h]hrA new TIPC AEAD key will be allocated and initiated with the specified user key, then attached to the TIPC crypto.}(hj!phhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMbhjoubh)}(h **Return**h]j)}(hj2ph]hReturn}(hj4phhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0pubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMehjoubh)}(h-new key id in case of success, otherwise: < 0h]h-new key id in case of success, otherwise: < 0}(hjHphhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMfhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#tipc_crypto_key_attach (C function)c.tipc_crypto_key_attachhNtauh1jhjBhhhNhNubj$)}(hhh](j))}(hcint tipc_crypto_key_attach (struct tipc_crypto *c, struct tipc_aead *aead, u8 pos, bool master_key)h]j/)}(hbint tipc_crypto_key_attach(struct tipc_crypto *c, struct tipc_aead *aead, u8 pos, bool master_key)h](jG)}(hinth]hint}(hjwphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjsphhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM|ubjG)}(h h]h }(hjphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjsphhhjphM|ubjX)}(htipc_crypto_key_attachh]j^)}(htipc_crypto_key_attachh]htipc_crypto_key_attach}(hjphhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjpubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjsphhhjphM|ubj)}(hH(struct tipc_crypto *c, struct tipc_aead *aead, u8 pos, bool master_key)h](j%)}(hstruct tipc_crypto *ch](j5)}(hj8h]hstruct}(hjphhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjpubjG)}(h h]h }(hjphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjpubh)}(hhh]j^)}(h tipc_cryptoh]h tipc_crypto}(hjphhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jjpsbc.tipc_crypto_key_attachasbuh1hhjpubjG)}(h h]h }(hjphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjpubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj^)}(hjh]hc}(hj qhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjpubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjpubj%)}(hstruct tipc_aead *aeadh](j5)}(hj8h]hstruct}(hj%qhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj!qubjG)}(h h]h }(hj2qhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj!qubh)}(hhh]j^)}(h tipc_aeadh]h tipc_aead}(hjCqhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj@qubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEqmodnameN classnameNjj)}j]jpc.tipc_crypto_key_attachasbuh1hhj!qubjG)}(h h]h }(hjaqhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj!qubj)}(hjh]h*}(hjoqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!qubj^)}(haeadh]haead}(hj|qhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj!qubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjpubj%)}(hu8 posh](h)}(hhh]j^)}(hu8h]hu8}(hjqhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]jpc.tipc_crypto_key_attachasbuh1hhjqubjG)}(h h]h }(hjqhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjqubj^)}(hposh]hpos}(hjqhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjqubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjpubj%)}(hbool master_keyh](jG)}(hjgh]hbool}(hjqhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjqubjG)}(h h]h }(hjqhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjqubj^)}(h master_keyh]h master_key}(hjqhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjqubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjpubeh}(h]h ]h"]h$]h&]hhuh1jhjsphhhjphM|ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjophhhjphM|ubah}(h]jjpah ](jjeh"]h$]h&]jj)jhuh1j(hjphM|hjlphhubj)}(hhh]h)}(h$Attach a new AEAD key to TIPC cryptoh]h$Attach a new AEAD key to TIPC crypto}(hj"rhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM|hjrhhubah}(h]h ]h"]h$]h&]uh1jhjlphhhjphM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:rjj:rjjjuh1j#hhhjBhNhNubj)}(hXN**Parameters** ``struct tipc_crypto *c`` TIPC crypto to which the new AEAD key is attached ``struct tipc_aead *aead`` the new AEAD key pointer ``u8 pos`` desired slot in the crypto key array, = 0 if any! ``bool master_key`` specify this is a cluster master key **Return** new key id in case of success, otherwise: -EBUSYh](h)}(h**Parameters**h]j)}(hjDrh]h Parameters}(hjFrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBrubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj>rubj)}(hhh](j)}(hL``struct tipc_crypto *c`` TIPC crypto to which the new AEAD key is attached h](j )}(h``struct tipc_crypto *c``h]j)}(hjcrh]hstruct tipc_crypto *c}(hjerhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjarubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM}hj]rubj')}(hhh]h)}(h1TIPC crypto to which the new AEAD key is attachedh]h1TIPC crypto to which the new AEAD key is attached}(hj|rhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxrhM}hjyrubah}(h]h ]h"]h$]h&]uh1j&hj]rubeh}(h]h ]h"]h$]h&]uh1jhjxrhM}hjZrubj)}(h4``struct tipc_aead *aead`` the new AEAD key pointer h](j )}(h``struct tipc_aead *aead``h]j)}(hjrh]hstruct tipc_aead *aead}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM~hjrubj')}(hhh]h)}(hthe new AEAD key pointerh]hthe new AEAD key pointer}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhM~hjrubah}(h]h ]h"]h$]h&]uh1j&hjrubeh}(h]h ]h"]h$]h&]uh1jhjrhM~hjZrubj)}(h=``u8 pos`` desired slot in the crypto key array, = 0 if any! h](j )}(h ``u8 pos``h]j)}(hjrh]hu8 pos}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjrubj')}(hhh]h)}(h1desired slot in the crypto key array, = 0 if any!h]h1desired slot in the crypto key array, = 0 if any!}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhMhjrubah}(h]h ]h"]h$]h&]uh1j&hjrubeh}(h]h ]h"]h$]h&]uh1jhjrhMhjZrubj)}(h9``bool master_key`` specify this is a cluster master key h](j )}(h``bool master_key``h]j)}(hjsh]hbool master_key}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhj subah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjsubj')}(hhh]h)}(h$specify this is a cluster master keyh]h$specify this is a cluster master key}(hj'shhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#shMhj$subah}(h]h ]h"]h$]h&]uh1j&hjsubeh}(h]h ]h"]h$]h&]uh1jhj#shMhjZrubeh}(h]h ]h"]h$]h&]uh1jhj>rubh)}(h **Return**h]j)}(hjIsh]hReturn}(hjKshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGsubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj>rubh)}(h0new key id in case of success, otherwise: -EBUSYh]h0new key id in case of success, otherwise: -EBUSY}(hj_shhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj>rubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&tipc_crypto_key_try_align (C function)c.tipc_crypto_key_try_alignhNtauh1jhjBhhhNhNubj$)}(hhh](j))}(hGbool tipc_crypto_key_try_align (struct tipc_crypto *rx, u8 new_pending)h]j/)}(hFbool tipc_crypto_key_try_align(struct tipc_crypto *rx, u8 new_pending)h](jG)}(hjgh]hbool}(hjshhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjshhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubjG)}(h h]h }(hjshhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjshhhjshMubjX)}(htipc_crypto_key_try_alignh]j^)}(htipc_crypto_key_try_alignh]htipc_crypto_key_try_align}(hjshhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjsubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjshhhjshMubj)}(h((struct tipc_crypto *rx, u8 new_pending)h](j%)}(hstruct tipc_crypto *rxh](j5)}(hj8h]hstruct}(hjshhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjsubjG)}(h h]h }(hjshhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjsubh)}(hhh]j^)}(h tipc_cryptoh]h tipc_crypto}(hjshhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]j)}jjssbc.tipc_crypto_key_try_alignasbuh1hhjsubjG)}(h h]h }(hjthhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjsubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj^)}(hrxh]hrx}(hj#thhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjsubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjsubj%)}(hu8 new_pendingh](h)}(hhh]j^)}(hu8h]hu8}(hj?thhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjzubjG)}(h h]h }(hjOzhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj>zubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj`zhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj]zubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbzmodnameN classnameNjj)}j]j zc.tipc_crypto_key_synchasbuh1hhj>zubjG)}(h h]h }(hj~zhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj>zubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>zubj^)}(hskbh]hskb}(hjzhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj>zubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjyubeh}(h]h ]h"]h$]h&]hhuh1jhjyhhhjyhM`ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjyhhhjyhM`ubah}(h]jyah ](jjeh"]h$]h&]jj)jhuh1j(hjyhM`hjyhhubj)}(hhh]h)}(h/Synch own key data according to peer key statush]h/Synch own key data according to peer key status}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM`hjzhhubah}(h]h ]h"]h$]h&]uh1jhjyhhhjyhM`ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1j#hhhjBhNhNubj)}(hX8**Parameters** ``struct tipc_crypto *rx`` RX crypto handle ``struct sk_buff *skb`` TIPCv2 message buffer (incl. the ehdr from peer) **Description** This 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. It 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. The "per-peer" sndnxt is also reset when the peer key has switched.h](h)}(h**Parameters**h]j)}(hjzh]h Parameters}(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.chMdhjzubj)}(hhh](j)}(h,``struct tipc_crypto *rx`` RX crypto handle 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMahjzubj')}(hhh]h)}(hRX crypto handleh]hRX crypto handle}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hMahj{ubah}(h]h ]h"]h$]h&]uh1j&hjzubeh}(h]h ]h"]h$]h&]uh1jhj{hMahjzubj)}(hI``struct sk_buff *skb`` TIPCv2 message buffer (incl. the ehdr from peer) 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMbhj7{ubj')}(hhh]h)}(h0TIPCv2 message buffer (incl. the ehdr from peer)h]h0TIPCv2 message buffer (incl. the ehdr from peer)}(hjV{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjR{hMbhjS{ubah}(h]h ]h"]h$]h&]uh1j&hj7{ubeh}(h]h ]h"]h$]h&]uh1jhjR{hMbhjzubeh}(h]h ]h"]h$]h&]uh1jhjzubh)}(h**Description**h]j)}(hjx{h]h Description}(hjz{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv{ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMdhjzubh)}(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.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMchjzubh)}(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.chMghjzubh)}(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.chMkhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_crypto_xmit (C function)c.tipc_crypto_xmithNtauh1jhjBhhhNhNubj$)}(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](jG)}(hinth]hint}(hj{hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj{hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubjG)}(h h]h }(hj{hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj{hhhj{hMubjX)}(htipc_crypto_xmith]j^)}(htipc_crypto_xmith]htipc_crypto_xmit}(hj{hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj{ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj{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](j5)}(hj8h]hstruct}(hj|hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj|ubjG)}(h h]h }(hj%|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|ubh)}(hhh]j^)}(hneth]hnet}(hj6|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj3|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8|modnameN classnameNjj)}j]j)}jj{sbc.tipc_crypto_xmitasbuh1hhj|ubjG)}(h h]h }(hjV|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|ubj)}(hjh]h*}(hjd|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj^)}(hneth]hnet}(hjq|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj|ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj|ubj%)}(hstruct sk_buff **skbh](j5)}(hj8h]hstruct}(hj|hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj|ubjG)}(h h]h }(hj|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|ubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]jR|c.tipc_crypto_xmitasbuh1hhj|ubjG)}(h h]h }(hj|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj^)}(hskbh]hskb}(hj|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj|ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj|ubj%)}(hstruct tipc_bearer *bh](j5)}(hj8h]hstruct}(hj}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj}ubjG)}(h h]h }(hj}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj}ubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hj%}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj"}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'}modnameN classnameNjj)}j]jR|c.tipc_crypto_xmitasbuh1hhj}ubjG)}(h h]h }(hjC}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj}ubj)}(hjh]h*}(hjQ}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj^)}(hj,h]hb}(hj^}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj|ubj%)}(hstruct tipc_media_addr *dsth](j5)}(hj8h]hstruct}(hjv}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjr}ubjG)}(h h]h }(hj}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjr}ubh)}(hhh]j^)}(htipc_media_addrh]htipc_media_addr}(hj}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]jR|c.tipc_crypto_xmitasbuh1hhjr}ubjG)}(h h]h }(hj}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjr}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr}ubj^)}(hdsth]hdst}(hj}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjr}ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj|ubj%)}(hstruct tipc_node *__dnodeh](j5)}(hj8h]hstruct}(hj}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj}ubjG)}(h h]h }(hj}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj}ubh)}(hhh]j^)}(h tipc_nodeh]h tipc_node}(hj~hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]jR|c.tipc_crypto_xmitasbuh1hhj}ubjG)}(h h]h }(hj"~hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj}ubj)}(hjh]h*}(hj0~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj^)}(h__dnodeh]h__dnode}(hj=~hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj|ubeh}(h]h ]h"]h$]h&]hhuh1jhj{hhhj{hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj{hhhj{hMubah}(h]j{ah ](jjeh"]h$]h&]jj)jhuh1j(hj{hMhj{hhubj)}(hhh]h)}(h%Build & encrypt TIPC message for xmith]h%Build & encrypt TIPC message for xmit}(hjg~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjd~hhubah}(h]h ]h"]h$]h&]uh1jhj{hhhj{hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~jj~jjjuh1j#hhhjBhNhNubj)}(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)}(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)}(hj~h]hstruct net *net}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj~ubj')}(hhh]h)}(h struct neth]h struct net}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hMhj~ubah}(h]h ]h"]h$]h&]uh1j&hj~ubeh}(h]h ]h"]h$]h&]uh1jhj~hMhj~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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj~ubj')}(hhh]h)}(h input/output message skb pointerh]h input/output message skb pointer}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hMhj~ubah}(h]h ]h"]h$]h&]uh1j&hj~ubeh}(h]h ]h"]h$]h&]uh1jhj~hMhj~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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj')}(hhh]h)}(hbearer used for xmit laterh]hbearer used for xmit later}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj~ubj)}(h:``struct tipc_media_addr *dst`` destination media address h](j )}(h``struct tipc_media_addr *dst``h]j)}(hjSh]hstruct tipc_media_addr *dst}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjMubj')}(hhh]h)}(hdestination media addressh]hdestination media address}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjiubah}(h]h ]h"]h$]h&]uh1j&hjMubeh}(h]h ]h"]h$]h&]uh1jhjhhMhj~ubj)}(hD``struct tipc_node *__dnode`` destination node for reference if any h](j )}(h``struct tipc_node *__dnode``h]j)}(hjh]hstruct tipc_node *__dnode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj')}(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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj~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&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj~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.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:157: ./net/tipc/crypto.chMhj~ubj)}(hhh](j)}(hE0 : the encryption has succeeded (or no encryption)h]h)}(hj h]hE0 : the encryption has succeeded (or no encryption)}(hj hhhNhNubah}(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}(hj#hhhNhNubah}(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)}(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}hjRsbah}(h]h ]h"]h$]h&]uh1jPhjLubhoption_argument)}(hNOKEKh]hNOKEK}(hjbhhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1j`hjLubeh}(h]h ]h"]h$]h&]uh1jJhjGubah}(h]h ]h"]h$]h&]uh1jEhjBubh description)}(h): the encryption has failed due to no keyh]h)}(hjh]h): the encryption 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&]uh1j}hjBubeh}(h]h ]h"]h$]h&]uh1j@hj=ubah}(h]h ]h"]h$]h&]uh1j;hjhMhj7ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hB-EKEYREVOKED : the encryption has failed due to key revokedh]j<)}(hhh]jA)}(hhh](jF)}(hhh]jK)}(h -EKEYREVOKEDh](jQ)}(h-Eh]h-E}hjsbah}(h]h ]h"]h$]h&]uh1jPhjubja)}(h KEYREVOKEDh]h KEYREVOKED}(hjȀhhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1j`hjubeh}(h]h ]h"]h$]h&]uh1jJhjubah}(h]h ]h"]h$]h&]uh1jEhjubj~)}(h.: the encryption has failed due to key revokedh]h)}(hjh]h.: the encryption has failed due to key revoked}(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&]uh1j}hjubeh}(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]jA)}(hhh](jF)}(hhh]jK)}(h-ENOMEMh](jQ)}(h-Eh]h-E}hjsbah}(h]h ]h"]h$]h&]uh1jPhjubja)}(hNOMEMh]hNOMEM}(hj,hhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1j`hjubeh}(h]h ]h"]h$]h&]uh1jJhjubah}(h]h ]h"]h$]h&]uh1jEhjubj~)}(h,: the encryption has failed due to no memoryh]h)}(hjIh]h,: the encryption has failed due to no memory}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjGubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1j@hjubah}(h]h ]h"]h$]h&]uh1j;hjXhMhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hD< 0 : the encryption has failed due to other reasonsh]h)}(hjsh]hD< 0 : the encryption has failed due to other reasons}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjqubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhMhj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_crypto_rcv (C function)c.tipc_crypto_rcvhNtauh1jhjBhhhNhNubj$)}(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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_crypto_rcvh]j^)}(htipc_crypto_rcvh]htipc_crypto_rcv}(hjЁhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj́ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(hV(struct net *net, struct tipc_crypto *rx, struct sk_buff **skb, struct tipc_bearer *b)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hneth]hnet}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjҁsbc.tipc_crypto_rcvasbuh1hhjubjG)}(h h]h }(hj*hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hneth]hnet}(hjEhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_crypto *rxh](j5)}(hj8h]hstruct}(hj^hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjZubjG)}(h h]h }(hjkhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjZubh)}(hhh]j^)}(h tipc_cryptoh]h tipc_crypto}(hj|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]j&c.tipc_crypto_rcvasbuh1hhjZubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjZubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj^)}(hrxh]hrx}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjZubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff **skbh](j5)}(hj8h]hstruct}(hj΂hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjʂubjG)}(h h]h }(hjۂhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjʂubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j&c.tipc_crypto_rcvasbuh1hhjʂubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjʂubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʂubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʂubj^)}(hskbh]hskb}(hj2hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjʂubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_bearer *bh](j5)}(hj8h]hstruct}(hjKhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjGubjG)}(h h]h }(hjXhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hjihhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j&c.tipc_crypto_rcvasbuh1hhjGubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj^)}(hj,h]hb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjGubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(hhh]h)}(h+Decrypt an encrypted TIPC message from peerh]h+Decrypt an encrypted TIPC message from peer}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjBhNhNubj)}(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 trimmed 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)}(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`` struct net h](j )}(h``struct net *net``h]j)}(hj h]hstruct net *net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj')}(hhh]h)}(h struct neth]h struct net}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hMhj"ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj!hMhjubj)}(h,``struct tipc_crypto *rx`` RX crypto handle h](j )}(h``struct tipc_crypto *rx``h]j)}(hjEh]hstruct tipc_crypto *rx}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhj?ubj')}(hhh]h)}(hRX crypto handleh]hRX crypto handle}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhj[ubah}(h]h ]h"]h$]h&]uh1j&hj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhMhjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjxubj')}(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&]uh1j&hjxubeh}(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&]uh1j hR/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}(hjЄhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj̄hMhj̈́ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj̄hMhjubeh}(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)}(hIf the decryption is successful, the decrypted skb is returned directly or as the callback, the encryption header and auth tag will be trimmed 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 trimmed 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.chMhjubh)}(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.chM hjubh)}(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).}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM hjubh)}(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:157: ./net/tipc/crypto.chMhjubj)}(hhh](j)}(h?0 : the decryption has successfully completedh]h)}(hj[h]h?0 : the decryption has successfully completed}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjYubah}(h]h ]h"]h$]h&]uh1jhjVubj)}(hH-EINPROGRESS/-EBUSY : the decryption is ongoing, a callback will be madeh]h)}(hjsh]hH-EINPROGRESS/-EBUSY : the decryption is ongoing, a callback will be made}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjqubah}(h]h ]h"]h$]h&]uh1jhjVubj)}(h=-ENOKEY : the decryption has failed due to no keyh]j<)}(hhh]jA)}(hhh](jF)}(hhh]jK)}(h-ENOKEYh](jQ)}(h-Eh]h-E}hjsbah}(h]h ]h"]h$]h&]uh1jPhjubja)}(hNOKEYh]hNOKEY}(hjhhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1j`hjubeh}(h]h ]h"]h$]h&]uh1jJhjubah}(h]h ]h"]h$]h&]uh1jEhjubj~)}(h): the decryption has failed due to no keyh]h)}(hjŅh]h): the decryption has failed due to no key}(hjDž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&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1j@hjubah}(h]h ]h"]h$]h&]uh1j;hjԅhMhjubah}(h]h ]h"]h$]h&]uh1jhjVubj)}(hB-EBADMSG : the decryption has failed due to bad messageh]j<)}(hhh]jA)}(hhh](jF)}(hhh]jK)}(h-EBADMSGh](jQ)}(h-Eh]h-E}hjsbah}(h]h ]h"]h$]h&]uh1jPhjubja)}(hBADMSGh]hBADMSG}(hj hhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1j`hjubeh}(h]h ]h"]h$]h&]uh1jJhjubah}(h]h ]h"]h$]h&]uh1jEhjubj~)}(h.: the decryption has failed due to bad messageh]h)}(hj)h]h.: the decryption has failed due to bad message}(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&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1j@hjubah}(h]h ]h"]h$]h&]uh1j;hj8hMhjubah}(h]h ]h"]h$]h&]uh1jhjVubj)}(h@-ENOMEM : the decryption has failed due to no memoryh]j<)}(hhh]jA)}(hhh](jF)}(hhh]jK)}(h-ENOMEMh](jQ)}(h-Eh]h-E}hjbsbah}(h]h ]h"]h$]h&]uh1jPhj^ubja)}(hNOMEMh]hNOMEM}(hjphhhNhNubah}(h]h ]h"]h$]h&] delimiterhuh1j`hj^ubeh}(h]h ]h"]h$]h&]uh1jJhj[ubah}(h]h ]h"]h$]h&]uh1jEhjXubj~)}(h,: the decryption has failed due to no memoryh]h)}(hjh]h,: the decryption has failed due to no memory}(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&]uh1j}hjXubeh}(h]h ]h"]h$]h&]uh1j@hjUubah}(h]h ]h"]h$]h&]uh1j;hjhMhjQubah}(h]h ]h"]h$]h&]uh1jhjVubj)}(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.chMhjubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]jjuh1jhjjhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_crypto_msg_rcv (C function)c.tipc_crypto_msg_rcvhNtauh1jhjBhhhNhNubj$)}(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](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMpubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMpubjX)}(htipc_crypto_msg_rcvh]j^)}(htipc_crypto_msg_rcvh]htipc_crypto_msg_rcv}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMpubj)}(h&(struct net *net, struct sk_buff *skb)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj0hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj,ubjG)}(h h]h }(hj=hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj,ubh)}(hhh]j^)}(hneth]hnet}(hjNhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_msg_rcvasbuh1hhj,ubjG)}(h h]h }(hjnhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj,ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj(ubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj‡modnameN classnameNjj)}j]jjc.tipc_crypto_msg_rcvasbuh1hhjubjG)}(h h]h }(hjއhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj(ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMpubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMpubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMphjhhubj)}(hhh]h)}(h$Common 'MSG_CRYPTO' processing pointh]h(Common ‘MSG_CRYPTO’ processing point}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMphj hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjj;jj;jjjuh1j#hhhjBhNhNubj)}(hl**Parameters** ``struct net *net`` the struct net ``struct sk_buff *skb`` the receiving message bufferh](h)}(h**Parameters**h]j)}(hjEh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMthj?ubj)}(hhh](j)}(h#``struct net *net`` the struct net h](j )}(h``struct net *net``h]j)}(hjdh]hstruct net *net}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMqhj^ubj')}(hhh]h)}(hthe struct neth]hthe struct net}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhMqhjzubah}(h]h ]h"]h$]h&]uh1j&hj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhMqhj[ubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMshjubj')}(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.chMrhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMshj[ubeh}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"tipc_crypto_key_distr (C function)c.tipc_crypto_key_distrhNtauh1jhjBhhhNhNubj$)}(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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_crypto_key_distrh]j^)}(htipc_crypto_key_distrh]htipc_crypto_key_distr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(h8(struct tipc_crypto *tx, u8 key, struct tipc_node *dest)h](j%)}(hstruct tipc_crypto *txh](j5)}(hj8h]hstruct}(hj4hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj0ubjG)}(h h]h }(hjAhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj0ubh)}(hhh]j^)}(h tipc_cryptoh]h tipc_crypto}(hjRhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_key_distrasbuh1hhj0ubjG)}(h h]h }(hjrhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj0ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj^)}(htxh]htx}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj0ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj,ubj%)}(hu8 keyh](h)}(hhh]j^)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jnc.tipc_crypto_key_distrasbuh1hhjubjG)}(h h]h }(hjljhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hkeyh]hkey}(hjՉhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj,ubj%)}(hstruct tipc_node *desth](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_nodeh]h tipc_node}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jnc.tipc_crypto_key_distrasbuh1hhjubjG)}(h h]h }(hj*hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hdesth]hdest}(hjEhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj,ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(hhh]h)}(hDistribute a TX keyh]hDistribute a TX key}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjlhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjBhNhNubj)}(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)}(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 *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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj')}(hhh]h)}(h the TX cryptoh]h the TX crypto}(hjɊhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjŊhMhjƊubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjŊhMhjubj)}(h``u8 key`` the key's index h](j )}(h ``u8 key``h]j)}(hjh]hu8 key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj')}(hhh]h)}(hthe key's indexh]hthe key’s index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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)}(hj"h]hstruct tipc_node *dest}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hR/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&]uh1hhj7hMhj8ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj7hMhjubeh}(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:157: ./net/tipc/crypto.chMhjubh)}(h#0 in case of success, otherwise < 0h]h#0 in case of success, otherwise < 0}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!tipc_crypto_key_xmit (C function)c.tipc_crypto_key_xmithNtauh1jhjBhhhNhNubj$)}(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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_crypto_key_xmith]j^)}(htipc_crypto_key_xmith]htipc_crypto_key_xmit}(hjËhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(hJ(struct net *net, struct tipc_aead_key *skey, u16 gen, u8 mode, u32 dnode)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjߋhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjۋubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjۋubh)}(hhh]j^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjŋsbc.tipc_crypto_key_xmitasbuh1hhjۋubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjۋubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjۋubj^)}(hneth]hnet}(hj8hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjۋubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj׋ubj%)}(hstruct tipc_aead_key *skeyh](j5)}(hj8h]hstruct}(hjQhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjMubjG)}(h h]h }(hj^hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjMubh)}(hhh]j^)}(h tipc_aead_keyh]h tipc_aead_key}(hjohhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]jc.tipc_crypto_key_xmitasbuh1hhjMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj^)}(hskeyh]hskey}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjMubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj׋ubj%)}(hu16 genh](h)}(hhh]j^)}(hu16h]hu16}(hjČhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjƌmodnameN classnameNjj)}j]jc.tipc_crypto_key_xmitasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hgenh]hgen}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj׋ubj%)}(hu8 modeh](h)}(hhh]j^)}(hu8h]hu8}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_crypto_key_xmitasbuh1hhjubjG)}(h h]h }(hj*hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hmodeh]hmode}(hj8hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj׋ubj%)}(h u32 dnodeh](h)}(hhh]j^)}(hu32h]hu32}(hjThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]jc.tipc_crypto_key_xmitasbuh1hhjMubjG)}(h h]h }(hjrhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjMubj^)}(hdnodeh]hdnode}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjMubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj׋ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjBhNhNubj)}(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)}(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`` the 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj')}(hhh]h)}(hthe struct neth]hthe struct net}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h:``struct tipc_aead_key *skey`` the session key to be sent h](j )}(h``struct tipc_aead_key *skey``h]j)}(hj$h]hstruct tipc_aead_key *skey}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj')}(hhh]h)}(hthe session key to be senth]hthe session key to be sent}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj:ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj9hMhjubj)}(h!``u16 gen`` the key's generation h](j )}(h ``u16 gen``h]j)}(hj]h]hu16 gen}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjWubj')}(hhh]h)}(hthe key's generationh]hthe key’s generation}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhMhjsubah}(h]h ]h"]h$]h&]uh1j&hjWubeh}(h]h ]h"]h$]h&]uh1jhjrhMhjubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj')}(hhh]h)}(hthe key's modeh]hthe key’s mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hM``u32 dnode`` the destination node address, = 0 if broadcasting to all nodes h](j )}(h ``u32 dnode``h]j)}(hjώh]h u32 dnode}(hjюhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj͎ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjɎubj')}(hhh]h)}(h>the destination node address, = 0 if broadcasting to all nodesh]h>the destination node address, = 0 if broadcasting to all nodes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjɎubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjƍubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(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)}(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.chMhjƍubh)}(h **Return**h]j)}(hj1h]hReturn}(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.chMhjƍubh)}(h#0 in case of success, otherwise < 0h]h#0 in case of success, otherwise < 0}(hjGhhhNhNubah}(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&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_crypto_key_rcv (C function)c.tipc_crypto_key_rcvhNtauh1jhjBhhhNhNubj$)}(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](jG)}(hjgh]hbool}(hjvhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrhhhjhMubjX)}(htipc_crypto_key_rcvh]j^)}(htipc_crypto_key_rcvh]htipc_crypto_key_rcv}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjrhhhjhMubj)}(h.(struct tipc_crypto *rx, struct tipc_msg *hdr)h](j%)}(hstruct tipc_crypto *rxh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_cryptoh]h tipc_crypto}(hjЏhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj͏ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjҏmodnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_key_rcvasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hrxh]hrx}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_msg *hdrh](j5)}(hj8h]hstruct}(hj$hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj ubjG)}(h h]h }(hj1hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubh)}(hhh]j^)}(htipc_msgh]htipc_msg}(hjBhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]jc.tipc_crypto_key_rcvasbuh1hhj ubjG)}(h h]h }(hj`hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj^)}(hhdrh]hhdr}(hj{hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjrhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjnhhhjhMubah}(h]jiah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjkhhubj)}(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&]uh1jhjkhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjBhNhNubj)}(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)}(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.chMhjubj)}(hhh](j)}(h)``struct tipc_crypto *rx`` the RX crypto h](j )}(h``struct tipc_crypto *rx``h]j)}(hjh]hstruct tipc_crypto *rx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMhjubj')}(hhh]h)}(h the RX cryptoh]h the RX crypto}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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)}(hjh]hstruct tipc_msg *hdr}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/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}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjݐubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjZh]h Description}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(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.}(hjphhhNhNubah}(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)}(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&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_crypto_work_rx (C function)c.tipc_crypto_work_rxhNtauh1jhjBhhhNhNubj$)}(hhh](j))}(h3void tipc_crypto_work_rx (struct work_struct *work)h]j/)}(h2void tipc_crypto_work_rx(struct work_struct *work)h](jG)}(hvoidh]hvoid}(hjƑhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj‘hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM- ubjG)}(h h]h }(hjՑhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj‘hhhjԑhM- ubjX)}(htipc_crypto_work_rxh]j^)}(htipc_crypto_work_rxh]htipc_crypto_work_rx}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj‘hhhjԑhM- ubj)}(h(struct work_struct *work)h]j%)}(hstruct work_struct *workh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h work_structh]h work_struct}(hj!hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_work_rxasbuh1hhjubjG)}(h h]h }(hjAhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hworkh]hwork}(hj\hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubah}(h]h ]h"]h$]h&]hhuh1jhj‘hhhjԑhM- ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjԑhM- ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjԑhM- hjhhubj)}(hhh]h)}(hScheduled RX works handlerh]hScheduled RX works handler}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM- hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjԑhM- ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjBhNhNubj)}(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.chM1 hjubj)}(hhh]j)}(h0``struct work_struct *work`` the struct RX work h](j )}(h``struct work_struct *work``h]j)}(hjǒh]hstruct work_struct *work}(hjɒhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjŒubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM. hjubj')}(hhh]h)}(hthe struct RX workh]hthe struct RX work}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjܒhM. hjݒubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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.chM0 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&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'tipc_crypto_rekeying_sched (C function)c.tipc_crypto_rekeying_schedhNtauh1jhjBhhhNhNubj$)}(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](jG)}(hvoidh]hvoid}(hjGhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjChhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMj ubjG)}(h h]h }(hjVhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjChhhjUhMj ubjX)}(htipc_crypto_rekeying_schedh]j^)}(htipc_crypto_rekeying_schedh]htipc_crypto_rekeying_sched}(hjhhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjdubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjChhhjUhMj ubj)}(h4(struct tipc_crypto *tx, bool changed, u32 new_intv)h](j%)}(hstruct tipc_crypto *txh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_cryptoh]h tipc_crypto}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjjsbc.tipc_crypto_rekeying_schedasbuh1hhjubjG)}(h h]h }(hj“hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjГhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(htxh]htx}(hjݓhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj|ubj%)}(h bool changedh](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hchangedh]hchanged}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj|ubj%)}(h u32 new_intvh](h)}(hhh]j^)}(hu32h]hu32}(hj-hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]jc.tipc_crypto_rekeying_schedasbuh1hhj&ubjG)}(h h]h }(hjKhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&ubj^)}(hnew_intvh]hnew_intv}(hjYhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj|ubeh}(h]h ]h"]h$]h&]hhuh1jhjChhhjUhMj ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj?hhhjUhMj ubah}(h]j:ah ](jjeh"]h$]h&]jj)jhuh1j(hjUhMj hj<hhubj)}(hhh]h)}(h&(Re)schedule rekeying w/o new intervalh]h&(Re)schedule rekeying w/o new interval}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMj hjhhubah}(h]h ]h"]h$]h&]uh1jhj<hhhjUhMj ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjBhNhNubj)}(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.chMn hjubj)}(hhh](j)}(h%``struct tipc_crypto *tx`` TX crypto h](j )}(h``struct tipc_crypto *tx``h]j)}(hjĔh]hstruct tipc_crypto *tx}(hjƔhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj”ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMk hjubj')}(hhh]h)}(h TX cryptoh]h TX crypto}(hjݔhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjٔhMk hjڔubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjٔhMk 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMl 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&]uh1hhjhMl hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMl hjubj)}(h>``u32 new_intv`` new rekeying interval (when "changed" = true)h](j )}(h``u32 new_intv``h]j)}(hj6h]h u32 new_intv}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMn hj0ubj')}(hhh]h)}(h-new rekeying interval (when "changed" = true)h]h1new rekeying interval (when “changed” = true)}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chMm hjLubah}(h]h ]h"]h$]h&]uh1j&hj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMn hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_crypto_work_tx (C function)c.tipc_crypto_work_txhNtauh1jhjBhhhNhNubj$)}(hhh](j))}(h3void tipc_crypto_work_tx (struct work_struct *work)h]j/)}(h2void tipc_crypto_work_tx(struct work_struct *work)h](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhM ubjX)}(htipc_crypto_work_txh]j^)}(htipc_crypto_work_txh]htipc_crypto_work_tx}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhM ubj)}(h(struct work_struct *work)h]j%)}(hstruct work_struct *workh](j5)}(hj8h]hstruct}(hj͕hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjɕubjG)}(h h]h }(hjڕhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjɕubh)}(hhh]j^)}(h work_structh]h work_struct}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_crypto_work_txasbuh1hhjɕubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjɕubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjɕubj^)}(hworkh]hwork}(hj&hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjɕubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjŕubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhM hjhhubj)}(hhh]h)}(hScheduled TX works handlerh]hScheduled TX works handler}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM hjMhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1j#hhhjBhNhNubj)}(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)}(hjrh]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM hjlubj)}(hhh]j)}(h0``struct work_struct *work`` the struct TX 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM hjubj')}(hhh]h)}(hthe struct TX workh]hthe struct TX work}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjlubh)}(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.chM hjlubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:157: ./net/tipc/crypto.chM hjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubeh}(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](jtipc_discoverer (C struct)c.tipc_discovererhNtauh1jhjhhhNhNubj$)}(hhh](j))}(htipc_discovererh]j/)}(hstruct tipc_discovererh](j5)}(hj8h]hstruct}(hj*hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj&hhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKubjG)}(h h]h }(hj8hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&hhhj7hKubjX)}(htipc_discovererh]j^)}(hj$h]htipc_discoverer}(hjJhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjFubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj&hhhj7hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj"hhhj7hKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hj7hKhjhhubj)}(hhh]h)}(h/information about an ongoing link setup requesth]h/information about an ongoing link setup request}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK3hjihhubah}(h]h ]h"]h$]h&]uh1jhjhhhj7hKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(hXe**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; struct rcu_head rcu; }; **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) ``rcu`` RCU head 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&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK7hjubj)}(hX 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; struct rcu_head rcu; };h]hX 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; struct rcu_head rcu; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK9hjubh)}(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.chKFhjubj)}(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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK5hjӗubj')}(hhh]h)}(h#identity of bearer issuing requestsh]h#identity of bearer issuing requests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK5hjubah}(h]h ]h"]h$]h&]uh1j&hjӗubeh}(h]h ]h"]h$]h&]uh1jhjhK5hjЗubj)}(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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK7hj ubj')}(hhh]h)}(h(destination address for request messagesh]h(destination address for request messages}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hK7hj(ubah}(h]h ]h"]h$]h&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj'hK7hjЗubj)}(h#``net`` network namespace instance h](j )}(h``net``h]j)}(hjKh]hnet}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK6hjEubj')}(hhh]h)}(hnetwork namespace instanceh]hnetwork namespace instance}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hK6hjaubah}(h]h ]h"]h$]h&]uh1j&hjEubeh}(h]h ]h"]h$]h&]uh1jhj`hK6hjЗubj)}(h<``domain`` network domain to which links can be established h](j )}(h ``domain``h]j)}(hjh]hdomain}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK8hj~ubj')}(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&]uh1j&hj~ubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjЗubj)}(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&]uh1j hT/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&]uh1hhjҘhK9hjӘubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjҘhK9hjЗubj)}(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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK:hjubj')}(hhh]h)}(h+spinlock for controlling access to requestsh]h+spinlock for controlling access to requests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK:hj ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj hK:hjЗubj)}(h0``skb`` request message to be (repeatedly) sent h](j )}(h``skb``h]j)}(hj/h]hskb}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK;hj)ubj')}(hhh]h)}(h'request message to be (repeatedly) senth]h'request message to be (repeatedly) sent}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhK;hjEubah}(h]h ]h"]h$]h&]uh1j&hj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhK;hjЗubj)}(h2``timer`` timer governing period between requests h](j )}(h ``timer``h]j)}(hjhh]htimer}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjubah}(h]h ]h"]h$]h&]uh1j&hjԙubeh}(h]h ]h"]h$]h&]uh1jhjhK=hjЗubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_disc_init_msg (C function)c.tipc_disc_init_msghNtauh1jhjhhhNhNubj$)}(hhh](j))}(h_void tipc_disc_init_msg (struct net *net, struct sk_buff *skb, u32 mtyp, struct tipc_bearer *b)h]j/)}(h^void tipc_disc_init_msg(struct net *net, struct sk_buff *skb, u32 mtyp, struct tipc_bearer *b)h](jG)}(hvoidh]hvoid}(hj4hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj0hhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKMubjG)}(h h]h }(hjChhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj0hhhjBhKMubjX)}(htipc_disc_init_msgh]j^)}(htipc_disc_init_msgh]htipc_disc_init_msg}(hjUhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjQubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj0hhhjBhKMubj)}(hG(struct net *net, struct sk_buff *skb, u32 mtyp, struct tipc_bearer *b)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjqhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjmubjG)}(h h]h }(hj~hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjmubh)}(hhh]j^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjWsbc.tipc_disc_init_msgasbuh1hhjmubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjmubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj^)}(hneth]hnet}(hjʚhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjmubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjiubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjߚubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjߚubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_disc_init_msgasbuh1hhjߚubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjߚubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjߚubj^)}(hskbh]hskb}(hj:hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjߚubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjiubj%)}(hu32 mtyph](h)}(hhh]j^)}(hu32h]hu32}(hjVhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jc.tipc_disc_init_msgasbuh1hhjOubjG)}(h h]h }(hjthhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjOubj^)}(hmtyph]hmtyp}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjOubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjiubj%)}(hstruct tipc_bearer *bh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_disc_init_msgasbuh1hhjubjG)}(h h]h }(hjכhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hj,h]hb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjiubeh}(h]h ]h"]h$]h&]hhuh1jhj0hhhjBhKMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj,hhhjBhKMubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1j(hjBhKMhj)hhubj)}(hhh]h)}(hinitialize a link setup messageh]hinitialize a link setup message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKMhjhhubah}(h]h ]h"]h$]h&]uh1jhj)hhhjBhKMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3jj3jjjuh1j#hhhjhNhNubj)}(h**Parameters** ``struct net *net`` the applicable net namespace ``struct sk_buff *skb`` buffer containing message ``u32 mtyp`` message type (request or response) ``struct tipc_bearer *b`` ptr to bearer issuing messageh](h)}(h**Parameters**h]j)}(hj=h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKQhj7ubj)}(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&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKNhjVubj')}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhKNhjrubah}(h]h ]h"]h$]h&]uh1j&hjVubeh}(h]h ]h"]h$]h&]uh1jhjqhKNhjSubj)}(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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKOhjubj')}(hhh]h)}(hbuffer containing messageh]hbuffer containing message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKOhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKOhjSubj)}(h0``u32 mtyp`` message type (request or response) h](j )}(h ``u32 mtyp``h]j)}(hjΜh]hu32 mtyp}(hjМhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̜ubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKPhjȜubj')}(hhh]h)}(h"message type (request or response)h]h"message type (request or response)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKPhjubah}(h]h ]h"]h$]h&]uh1j&hjȜubeh}(h]h ]h"]h$]h&]uh1jhjhKPhjSubj)}(h7``struct tipc_bearer *b`` ptr to bearer issuing messageh](j )}(h``struct tipc_bearer *b``h]j)}(hjh]hstruct tipc_bearer *b}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKRhjubj')}(hhh]h)}(hptr to bearer issuing messageh]hptr to bearer issuing message}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKQhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKRhjSubeh}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdisc_dupl_alert (C function)c.disc_dupl_alerthNtauh1jhjhhhNhNubj$)}(hhh](j))}(h_void disc_dupl_alert (struct tipc_bearer *b, u32 node_addr, struct tipc_media_addr *media_addr)h]j/)}(h^void disc_dupl_alert(struct tipc_bearer *b, u32 node_addr, struct tipc_media_addr *media_addr)h](jG)}(hvoidh]hvoid}(hjahhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj]hhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK{ubjG)}(h h]h }(hjphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj]hhhjohK{ubjX)}(hdisc_dupl_alerth]j^)}(hdisc_dupl_alerth]hdisc_dupl_alert}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj~ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj]hhhjohK{ubj)}(hJ(struct tipc_bearer *b, u32 node_addr, struct tipc_media_addr *media_addr)h](j%)}(hstruct tipc_bearer *bh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.disc_dupl_alertasbuh1hhjubjG)}(h h]h }(hjܝhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hj,h]hb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h u32 node_addrh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j؝c.disc_dupl_alertasbuh1hhj ubjG)}(h h]h }(hj0hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj^)}(h node_addrh]h node_addr}(hj>hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h"struct tipc_media_addr *media_addrh](j5)}(hj8h]hstruct}(hjWhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjSubjG)}(h h]h }(hjdhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjSubh)}(hhh]j^)}(htipc_media_addrh]htipc_media_addr}(hjuhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]j؝c.disc_dupl_alertasbuh1hhjSubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjSubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj^)}(h media_addrh]h media_addr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjSubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhj]hhhjohK{ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjYhhhjohK{ubah}(h]jTah ](jjeh"]h$]h&]jj)jhuh1j(hjohK{hjVhhubj)}(hhh]h)}(h$issue node address duplication alerth]h$issue node address duplication alert}(hj؞hhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK{hj՞hhubah}(h]h ]h"]h$]h&]uh1jhjVhhhjohK{ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(h**Parameters** ``struct tipc_bearer *b`` pointer to bearer detecting duplication ``u32 node_addr`` duplicated node address ``struct tipc_media_addr *media_addr`` media address advertised by duplicated nodeh](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.chKhjubj)}(hhh](j)}(hB``struct tipc_bearer *b`` pointer to bearer detecting duplication 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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK|hjubj')}(hhh]h)}(h'pointer to bearer detecting duplicationh]h'pointer to bearer detecting duplication}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hK|hj/ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj.hK|hjubj)}(h*``u32 node_addr`` duplicated node address h](j )}(h``u32 node_addr``h]j)}(hjRh]h u32 node_addr}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK}hjLubj')}(hhh]h)}(hduplicated node addressh]hduplicated node address}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghK}hjhubah}(h]h ]h"]h$]h&]uh1j&hjLubeh}(h]h ]h"]h$]h&]uh1jhjghK}hjubj)}(hR``struct tipc_media_addr *media_addr`` media address advertised by duplicated nodeh](j )}(h&``struct tipc_media_addr *media_addr``h]j)}(hjh]h"struct tipc_media_addr *media_addr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjubj')}(hhh]h)}(h+media address advertised by duplicated nodeh]h+media address advertised by duplicated node}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chK~hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKubjX)}(h tipc_disc_rcvh]j^)}(h tipc_disc_rcvh]h tipc_disc_rcv}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKubj)}(h=(struct net *net, struct sk_buff *skb, struct tipc_bearer *b)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj"hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj/hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hneth]hnet}(hj@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]j)}jjsbc.tipc_disc_rcvasbuh1hhjubjG)}(h h]h }(hj`hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hneth]hnet}(hj{hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j\c.tipc_disc_rcvasbuh1hhjubjG)}(h h]h }(hjРhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjޠhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_bearer *bh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hj"hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j\c.tipc_disc_rcvasbuh1hhjubjG)}(h h]h }(hj@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hj,h]hb}(hj[hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjݟhhhjhKubah}(h]j؟ah ](jjeh"]h$]h&]jj)jhuh1j(hjhKhjڟhhubj)}(hhh]h)}(h7handle incoming discovery message (request or response)h]h7handle incoming discovery message (request or response)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhjڟhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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)}(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.chKhjubj)}(hhh](j)}(h-``struct net *net`` 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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjubj')}(hhh]h)}(happlicable net namespaceh]happlicable net namespace}(hjޡhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjڡhKhjۡubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjڡhKhjubj)}(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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjubj')}(hhh]h)}(hbuffer containing messageh]hbuffer containing message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h8``struct tipc_bearer *b`` bearer that message arrived onh](j )}(h``struct tipc_bearer *b``h]j)}(hj7h]hstruct tipc_bearer *b}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhj1ubj')}(hhh]h)}(hbearer that message arrived onh]hbearer that message arrived on}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chKhjMubah}(h]h ]h"]h$]h&]uh1j&hj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMXubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMXubjX)}(htipc_disc_createh]j^)}(htipc_disc_createh]htipc_disc_create}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMXubj)}(h\(struct net *net, struct tipc_bearer *b, struct tipc_media_addr *dest, struct sk_buff **skb)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj΢hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjʢubjG)}(h h]h }(hjۢhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjʢubh)}(hhh]j^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_disc_createasbuh1hhjʢubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjʢubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʢubj^)}(hneth]hnet}(hj'hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjʢubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjƢubj%)}(hstruct tipc_bearer *bh](j5)}(hj8h]hstruct}(hj@hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj<ubjG)}(h h]h }(hjMhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj<ubh)}(hhh]j^)}(h tipc_bearerh]h tipc_bearer}(hj^hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]jc.tipc_disc_createasbuh1hhj<ubjG)}(h h]h }(hj|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj^)}(hj,h]hb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjƢubj%)}(hstruct tipc_media_addr *desth](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(htipc_media_addrh]htipc_media_addr}(hjͣhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjʣubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjϣmodnameN classnameNjj)}j]jc.tipc_disc_createasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hdesth]hdest}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjƢubj%)}(hstruct sk_buff **skbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj,hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj=hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]jc.tipc_disc_createasbuh1hhjubjG)}(h h]h }(hj[hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjƢubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMXubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMXubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMXhjhhubj)}(hhh]h)}(h2create object to send periodic link setup requestsh]h2create object to send periodic link setup requests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMXhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjjŤjjŤjjjuh1j#hhhjhNhNubj)}(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)}(hjϤh]h Parameters}(hjѤhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjͤubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chM\hjɤ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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMYhjubj')}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMYhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMYhjubj)}(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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMZhj!ubj')}(hhh]h)}(hptr to bearer issuing requestsh]hptr to bearer issuing requests}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMZhj=ubah}(h]h ]h"]h$]h&]uh1j&hj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hMZhjubj)}(hJ``struct tipc_media_addr *dest`` destination address for request messages h](j )}(h ``struct tipc_media_addr *dest``h]j)}(hj`h]hstruct tipc_media_addr *dest}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chM[hjZubj')}(hhh]h)}(h(destination address for request messagesh]h(destination address for request messages}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhM[hjvubah}(h]h ]h"]h$]h&]uh1j&hjZubeh}(h]h ]h"]h$]h&]uh1jhjuhM[hjubj)}(h2``struct sk_buff **skb`` pointer to created frame 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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chM\hjubj')}(hhh]h)}(hpointer to created frameh]hpointer to created frame}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM\hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM\hjubeh}(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&]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](jtipc_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](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMubjG)}(h h]h }(hj(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhj'hMubjX)}(htipc_disc_deleteh]j^)}(htipc_disc_deleteh]htipc_disc_delete}(hj:hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj6ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhj'hMubj)}(h(struct tipc_discoverer *d)h]j%)}(hstruct tipc_discoverer *dh](j5)}(hj8h]hstruct}(hjVhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjRubjG)}(h h]h }(hjchhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjRubh)}(hhh]j^)}(htipc_discovererh]htipc_discoverer}(hjthhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j)}jj<sbc.tipc_disc_deleteasbuh1hhjRubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjRubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj^)}(hdh]hd}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjRubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjNubah}(h]h ]h"]h$]h&]hhuh1jhjhhhj'hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhj'hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j(hj'hMhjhhubj)}(hhh]h)}(h3destroy object sending periodic link setup requestsh]h3destroy object sending periodic link setup requests}(hj٦hhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhj֦hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj'hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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)}(hjh]hstruct tipc_discoverer *d}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhjubj')}(hhh]h)}(hptr to link dest structureh]hptr to link dest structure}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhj0ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_disc_reset (C function)c.tipc_disc_resethNtauh1jhjhhhNhNubj$)}(hhh](j))}(h=void tipc_disc_reset (struct net *net, struct tipc_bearer *b)h]j/)}(hubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]jc.tipc_disc_resetasbuh1hhjubjG)}(h h]h }(hj_hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hj,h]hb}(hjzhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjphhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjlhhhjhMubah}(h]jgah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjihhubj)}(hhh]h)}(h1reset object to send periodic link setup requestsh]h1reset object to send 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&]uh1jhjihhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(h~**Parameters** ``struct net *net`` the applicable net namespace ``struct tipc_bearer *b`` ptr to bearer issuing requestsh](h)}(h**Parameters**h]j)}(hjŨh]h Parameters}(hjǨhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjèubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhjubj)}(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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhjިubj')}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjިubeh}(h]h ]h"]h$]h&]uh1jhjhMhjۨubj)}(h8``struct tipc_bearer *b`` ptr to bearer issuing requestsh](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&]uh1j hT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhjubj')}(hhh]h)}(hptr to bearer issuing requestsh]hptr to bearer issuing requests}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhT/var/lib/git/docbuild/linux/Documentation/networking/tipc:163: ./net/tipc/discover.chMhj3ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj2hMhjۨubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]tipc-discoverer-interfacesah ]h"]tipc discoverer interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Link Interfacesh]hTIPC Link Interfaces}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_link (C struct) c.tipc_linkhNtauh1jhjfhhhNhNubj$)}(hhh](j))}(h tipc_linkh]j/)}(hstruct tipc_linkh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKubjX)}(h tipc_linkh]j^)}(hjh]h tipc_link}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKhjhhubj)}(hhh]h)}(hTIPC link data structureh]hTIPC link data structure}(hjҩhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKRhjϩhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1j#hhhjfhNhNubj)}(hX**Definition**:: struct tipc_link { u32 addr; char name[TIPC_MAX_LINK_NAME]; struct net *net; u16 peer_session; u16 session; u16 snd_nxt_state; u16 rcv_nxt_state; u32 peer_bearer_id; u32 bearer_id; u32 tolerance; u32 abort_limit; u32 state; u16 peer_caps; bool in_session; bool active; u32 silent_intv_cnt; char if_name[TIPC_MAX_IF_NAME]; u32 priority; char net_plane; struct tipc_mon_state mon_state; u16 rst_cnt; u16 drop_point; struct sk_buff *failover_reasm_skb; struct sk_buff_head failover_deferdq; u16 mtu; u16 advertised_mtu; struct sk_buff_head transmq; struct sk_buff_head backlogq; struct { u16 len; u16 limit; struct sk_buff *target_bskb; } backlog[5]; u16 snd_nxt; u16 rcv_nxt; u32 rcv_unacked; struct sk_buff_head deferdq; struct sk_buff_head *inputq; struct sk_buff_head *namedq; struct sk_buff_head wakeupq; u16 window; u16 min_win; u16 ssthresh; u16 max_win; u16 cong_acks; u16 checkpoint; struct sk_buff *reasm_buf; struct sk_buff *reasm_tnlmsg; u16 ackers; u16 acked; u16 last_gap; struct tipc_gap_ack_blks *last_ga; struct tipc_link *bc_rcvlink; struct tipc_link *bc_sndlink; u8 nack_state; bool bc_peer_is_up; struct tipc_stats stats; }; **Members** ``addr`` network address of link's peer node ``name`` link name character string ``net`` pointer to namespace struct ``peer_session`` link session # being used by peer end of link ``session`` session to be used by link ``snd_nxt_state`` next send seq number ``rcv_nxt_state`` next rcv seq number ``peer_bearer_id`` bearer id used by link's peer endpoint ``bearer_id`` local bearer id used by link ``tolerance`` minimum link continuity loss needed to reset link [in ms] ``abort_limit`` # of unacknowledged continuity probes needed to reset link ``state`` current state of link FSM ``peer_caps`` bitmap describing capabilities of peer node ``in_session`` have received ACTIVATE_MSG from peer ``active`` link is active ``silent_intv_cnt`` # of timer intervals without any reception from peer ``if_name`` associated interface name ``priority`` current link priority ``net_plane`` current link network plane ('A' through 'H') ``mon_state`` cookie with information needed by link monitor ``rst_cnt`` link reset counter ``drop_point`` seq number for failover handling (FIXME) ``failover_reasm_skb`` saved failover msg ptr (FIXME) ``failover_deferdq`` deferred message queue for failover processing (FIXME) ``mtu`` current maximum packet size for this link ``advertised_mtu`` advertised own mtu when link is being established ``transmq`` the link's transmit queue ``backlogq`` queue for messages waiting to be sent ``backlog`` link's backlog by priority (importance) ``snd_nxt`` next sequence number to be used ``rcv_nxt`` next sequence number to expect for inbound messages ``rcv_unacked`` # messages read by user, but not yet acked back to peer ``deferdq`` deferred receive queue ``inputq`` buffer queue for messages to be delivered upwards ``namedq`` buffer queue for name table messages to be delivered upwards ``wakeupq`` linked list of wakeup msgs waiting for link congestion to abate ``window`` sliding window size for congestion handling ``min_win`` minimal send window to be used by link ``ssthresh`` slow start threshold for congestion handling ``max_win`` maximal send window to be used by link ``cong_acks`` congestion acks for congestion avoidance (FIXME) ``checkpoint`` seq number for congestion window size handling ``reasm_buf`` head of partially reassembled inbound message fragments ``reasm_tnlmsg`` fragmentation/reassembly area for tunnel protocol message ``ackers`` # of peers that needs to ack each packet before it can be released ``acked`` # last packet acked by a certain peer. Used for broadcast. ``last_gap`` last gap ack blocks for bcast (FIXME) ``last_ga`` ptr to gap ack blocks ``bc_rcvlink`` the peer specific link used for broadcast reception ``bc_sndlink`` the namespace global link used for broadcast sending ``nack_state`` bcast nack state ``bc_peer_is_up`` peer has acked the bcast init msg ``stats`` collects statistics regarding link activityh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKVhjubj)}(hXestruct tipc_link { u32 addr; char name[TIPC_MAX_LINK_NAME]; struct net *net; u16 peer_session; u16 session; u16 snd_nxt_state; u16 rcv_nxt_state; u32 peer_bearer_id; u32 bearer_id; u32 tolerance; u32 abort_limit; u32 state; u16 peer_caps; bool in_session; bool active; u32 silent_intv_cnt; char if_name[TIPC_MAX_IF_NAME]; u32 priority; char net_plane; struct tipc_mon_state mon_state; u16 rst_cnt; u16 drop_point; struct sk_buff *failover_reasm_skb; struct sk_buff_head failover_deferdq; u16 mtu; u16 advertised_mtu; struct sk_buff_head transmq; struct sk_buff_head backlogq; struct { u16 len; u16 limit; struct sk_buff *target_bskb; } backlog[5]; u16 snd_nxt; u16 rcv_nxt; u32 rcv_unacked; struct sk_buff_head deferdq; struct sk_buff_head *inputq; struct sk_buff_head *namedq; struct sk_buff_head wakeupq; u16 window; u16 min_win; u16 ssthresh; u16 max_win; u16 cong_acks; u16 checkpoint; struct sk_buff *reasm_buf; struct sk_buff *reasm_tnlmsg; u16 ackers; u16 acked; u16 last_gap; struct tipc_gap_ack_blks *last_ga; struct tipc_link *bc_rcvlink; struct tipc_link *bc_sndlink; u8 nack_state; bool bc_peer_is_up; struct tipc_stats stats; };h]hXestruct tipc_link { u32 addr; char name[TIPC_MAX_LINK_NAME]; struct net *net; u16 peer_session; u16 session; u16 snd_nxt_state; u16 rcv_nxt_state; u32 peer_bearer_id; u32 bearer_id; u32 tolerance; u32 abort_limit; u32 state; u16 peer_caps; bool in_session; bool active; u32 silent_intv_cnt; char if_name[TIPC_MAX_IF_NAME]; u32 priority; char net_plane; struct tipc_mon_state mon_state; u16 rst_cnt; u16 drop_point; struct sk_buff *failover_reasm_skb; struct sk_buff_head failover_deferdq; u16 mtu; u16 advertised_mtu; struct sk_buff_head transmq; struct sk_buff_head backlogq; struct { u16 len; u16 limit; struct sk_buff *target_bskb; } backlog[5]; u16 snd_nxt; u16 rcv_nxt; u32 rcv_unacked; struct sk_buff_head deferdq; struct sk_buff_head *inputq; struct sk_buff_head *namedq; struct sk_buff_head wakeupq; u16 window; u16 min_win; u16 ssthresh; u16 max_win; u16 cong_acks; u16 checkpoint; struct sk_buff *reasm_buf; struct sk_buff *reasm_tnlmsg; u16 ackers; u16 acked; u16 last_gap; struct tipc_gap_ack_blks *last_ga; struct tipc_link *bc_rcvlink; struct tipc_link *bc_sndlink; u8 nack_state; bool bc_peer_is_up; struct tipc_stats stats; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKXhjubh)}(h **Members**h]j)}(hj h]hMembers}(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.chKhjubj)}(hhh](j)}(h-``addr`` network address of link's peer node h](j )}(h``addr``h]j)}(hj?h]haddr}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKThj9ubj')}(hhh]h)}(h#network address of link's peer nodeh]h%network address of link’s peer node}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThKThjUubah}(h]h ]h"]h$]h&]uh1j&hj9ubeh}(h]h ]h"]h$]h&]uh1jhjThKThj6ubj)}(h$``name`` link name character string h](j )}(h``name``h]j)}(hjxh]hname}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKUhjrubj')}(hhh]h)}(hlink name character stringh]hlink name character string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKUhjubah}(h]h ]h"]h$]h&]uh1j&hjrubeh}(h]h ]h"]h$]h&]uh1jhjhKUhj6ubj)}(h$``net`` pointer to namespace struct h](j )}(h``net``h]j)}(hjh]hnet}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKVhjubj')}(hhh]h)}(hpointer to namespace structh]hpointer to namespace struct}(hjʪhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjƪhKVhjǪubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjƪhKVhj6ubj)}(h?``peer_session`` link session # being used by peer end of link h](j )}(h``peer_session``h]j)}(hjh]h peer_session}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKWhjubj')}(hhh]h)}(h-link session # being used by peer end of linkh]h-link session # being used by peer end of link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKWhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKWhj6ubj)}(h'``session`` session to be used by link h](j )}(h ``session``h]j)}(hj#h]hsession}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKmhjubj')}(hhh]h)}(hsession to be used by linkh]hsession to be used by link}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hKmhj9ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj8hKmhj6ubj)}(h'``snd_nxt_state`` next send seq number h](j )}(h``snd_nxt_state``h]j)}(hj\h]h snd_nxt_state}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKnhjVubj')}(hhh]h)}(hnext send seq numberh]hnext send seq number}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhKnhjrubah}(h]h ]h"]h$]h&]uh1j&hjVubeh}(h]h ]h"]h$]h&]uh1jhjqhKnhj6ubj)}(h&``rcv_nxt_state`` next rcv seq number h](j )}(h``rcv_nxt_state``h]j)}(hjh]h rcv_nxt_state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKohjubj')}(hhh]h)}(hnext rcv seq numberh]hnext rcv seq number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKohjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKohj6ubj)}(h:``peer_bearer_id`` bearer id used by link's peer endpoint h](j )}(h``peer_bearer_id``h]j)}(hjΫh]hpeer_bearer_id}(hjЫhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̫ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKXhjȫubj')}(hhh]h)}(h&bearer id used by link's peer endpointh]h(bearer id used by link’s peer endpoint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKXhjubah}(h]h ]h"]h$]h&]uh1j&hjȫubeh}(h]h ]h"]h$]h&]uh1jhjhKXhj6ubj)}(h+``bearer_id`` local bearer id used by link h](j )}(h ``bearer_id``h]j)}(hjh]h bearer_id}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKYhjubj')}(hhh]h)}(hlocal bearer id used by linkh]hlocal bearer id used by link}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKYhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKYhj6ubj)}(hH``tolerance`` minimum link continuity loss needed to reset link [in ms] h](j )}(h ``tolerance``h]j)}(hj@h]h tolerance}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKZhj:ubj')}(hhh]h)}(h9minimum link continuity loss needed to reset link [in ms]h]h9minimum link continuity loss needed to reset link [in ms]}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhKZhjVubah}(h]h ]h"]h$]h&]uh1j&hj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKZhj6ubj)}(hK``abort_limit`` # of unacknowledged continuity probes needed to reset link h](j )}(h``abort_limit``h]j)}(hjyh]h abort_limit}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chK[hjsubj')}(hhh]h)}(h:# of unacknowledged continuity probes needed to reset linkh]h:# of unacknowledged continuity probes needed to reset link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK[hjubah}(h]h ]h"]h$]h&]uh1j&hjsubeh}(h]h ]h"]h$]h&]uh1jhjhK[hj6ubj)}(h$``state`` current state of link FSM h](j )}(h ``state``h]j)}(hjh]hstate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chK\hjubj')}(hhh]h)}(hcurrent state of link FSMh]hcurrent state of link FSM}(hjˬhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjǬhK\hjȬubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjǬhK\hj6ubj)}(h:``peer_caps`` bitmap describing capabilities of peer node h](j )}(h ``peer_caps``h]j)}(hjh]h peer_caps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chK]hjubj')}(hhh]h)}(h+bitmap describing capabilities of peer nodeh]h+bitmap describing capabilities of peer node}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK]hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK]hj6ubj)}(h4``in_session`` have received ACTIVATE_MSG from peer h](j )}(h``in_session``h]j)}(hj$h]h in_session}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKphjubj')}(hhh]h)}(h$have received ACTIVATE_MSG from peerh]h$have received ACTIVATE_MSG from peer}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKphj:ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj9hKphj6ubj)}(h``active`` link is active h](j )}(h ``active``h]j)}(hj]h]hactive}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKqhjWubj')}(hhh]h)}(hlink is activeh]hlink is active}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhKqhjsubah}(h]h ]h"]h$]h&]uh1j&hjWubeh}(h]h ]h"]h$]h&]uh1jhjrhKqhj6ubj)}(hI``silent_intv_cnt`` # of timer intervals without any reception from peer h](j )}(h``silent_intv_cnt``h]j)}(hjh]hsilent_intv_cnt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chK^hjubj')}(hhh]h)}(h4# of timer intervals without any reception from peerh]h4# of timer intervals without any reception from peer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK^hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK^hj6ubj)}(h&``if_name`` associated interface name h](j )}(h ``if_name``h]j)}(hjϭh]hif_name}(hjѭhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjͭubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKrhjɭubj')}(hhh]h)}(hassociated interface nameh]hassociated interface name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKrhjubah}(h]h ]h"]h$]h&]uh1j&hjɭubeh}(h]h ]h"]h$]h&]uh1jhjhKrhj6ubj)}(h#``priority`` current link priority h](j )}(h ``priority``h]j)}(hjh]hpriority}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chK_hjubj')}(hhh]h)}(hcurrent link priorityh]hcurrent link priority}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK_hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK_hj6ubj)}(h;``net_plane`` current link network plane ('A' through 'H') h](j )}(h ``net_plane``h]j)}(hjAh]h net_plane}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chK`hj;ubj')}(hhh]h)}(h,current link network plane ('A' through 'H')h]h4current link network plane (‘A’ through ‘H’)}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhK`hjWubah}(h]h ]h"]h$]h&]uh1j&hj;ubeh}(h]h ]h"]h$]h&]uh1jhjVhK`hj6ubj)}(h=``mon_state`` cookie with information needed by link monitor h](j )}(h ``mon_state``h]j)}(hjzh]h mon_state}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKahjtubj')}(hhh]h)}(h.cookie with information needed by link monitorh]h.cookie with information needed by link monitor}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKahjubah}(h]h ]h"]h$]h&]uh1j&hjtubeh}(h]h ]h"]h$]h&]uh1jhjhKahj6ubj)}(h``rst_cnt`` link reset counter h](j )}(h ``rst_cnt``h]j)}(hjh]hrst_cnt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKshjubj')}(hhh]h)}(hlink reset counterh]hlink reset counter}(hj̮hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjȮhKshjɮubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjȮhKshj6ubj)}(h8``drop_point`` seq number for failover handling (FIXME) h](j )}(h``drop_point``h]j)}(hjh]h drop_point}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKthjubj')}(hhh]h)}(h(seq number for failover handling (FIXME)h]h(seq number for failover handling (FIXME)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKthjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKthj6ubj)}(h6``failover_reasm_skb`` saved failover msg ptr (FIXME) h](j )}(h``failover_reasm_skb``h]j)}(hj%h]hfailover_reasm_skb}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKuhjubj')}(hhh]h)}(hsaved failover msg ptr (FIXME)h]hsaved failover msg ptr (FIXME)}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hKuhj;ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj:hKuhj6ubj)}(hL``failover_deferdq`` deferred message queue for failover processing (FIXME) h](j )}(h``failover_deferdq``h]j)}(hj^h]hfailover_deferdq}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKvhjXubj')}(hhh]h)}(h6deferred message queue for failover processing (FIXME)h]h6deferred message queue for failover processing (FIXME)}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshKvhjtubah}(h]h ]h"]h$]h&]uh1j&hjXubeh}(h]h ]h"]h$]h&]uh1jhjshKvhj6ubj)}(h2``mtu`` current maximum packet size for this link h](j )}(h``mtu``h]j)}(hjh]hmtu}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKbhjubj')}(hhh]h)}(h)current maximum packet size for this linkh]h)current maximum packet size for this link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKbhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKbhj6ubj)}(hE``advertised_mtu`` advertised own mtu when link is being established h](j )}(h``advertised_mtu``h]j)}(hjЯh]hadvertised_mtu}(hjүhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjίubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKchjʯubj')}(hhh]h)}(h1advertised own mtu when link is being establishedh]h1advertised own mtu when link is being established}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKchjubah}(h]h ]h"]h$]h&]uh1j&hjʯubeh}(h]h ]h"]h$]h&]uh1jhjhKchj6ubj)}(h&``transmq`` the link's transmit queue h](j )}(h ``transmq``h]j)}(hj h]htransmq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKwhjubj')}(hhh]h)}(hthe link's transmit queueh]hthe link’s transmit queue}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKwhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKwhj6ubj)}(h3``backlogq`` queue for messages waiting to be sent h](j )}(h ``backlogq``h]j)}(hjBh]hbacklogq}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKdhj<ubj')}(hhh]h)}(h%queue for messages waiting to be senth]h%queue for messages waiting to be sent}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhKdhjXubah}(h]h ]h"]h$]h&]uh1j&hj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhKdhj6ubj)}(h4``backlog`` link's backlog by priority (importance) h](j )}(h ``backlog``h]j)}(hj{h]hbacklog}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKxhjuubj')}(hhh]h)}(h'link's backlog by priority (importance)h]h)link’s backlog by priority (importance)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKxhjubah}(h]h ]h"]h$]h&]uh1j&hjuubeh}(h]h ]h"]h$]h&]uh1jhjhKxhj6ubj)}(h,``snd_nxt`` next sequence number to be used h](j )}(h ``snd_nxt``h]j)}(hjh]hsnd_nxt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKyhjubj')}(hhh]h)}(hnext sequence number to be usedh]hnext sequence number to be used}(hjͰhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjɰhKyhjʰubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjɰhKyhj6ubj)}(h@``rcv_nxt`` next sequence number to expect for inbound messages h](j )}(h ``rcv_nxt``h]j)}(hjh]hrcv_nxt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKghjubj')}(hhh]h)}(h3next sequence number to expect for inbound messagesh]h3next sequence number to expect for inbound messages}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKghjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKghj6ubj)}(hH``rcv_unacked`` # messages read by user, but not yet acked back to peer h](j )}(h``rcv_unacked``h]j)}(hj&h]h rcv_unacked}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKzhj ubj')}(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}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hKzhj<ubah}(h]h ]h"]h$]h&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj;hKzhj6ubj)}(h#``deferdq`` deferred receive queue h](j )}(h ``deferdq``h]j)}(hj_h]hdeferdq}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chK{hjYubj')}(hhh]h)}(hdeferred receive queueh]hdeferred receive queue}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthK{hjuubah}(h]h ]h"]h$]h&]uh1j&hjYubeh}(h]h ]h"]h$]h&]uh1jhjthK{hj6ubj)}(h=``inputq`` buffer queue for messages to be delivered upwards h](j )}(h ``inputq``h]j)}(hjh]hinputq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhhjubj')}(hhh]h)}(h1buffer queue for messages to be delivered upwardsh]h1buffer queue for messages to be delivered upwards}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhhj6ubj)}(hH``namedq`` buffer queue for name table messages to be delivered upwards h](j )}(h ``namedq``h]j)}(hjѱh]hnamedq}(hjӱhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjϱubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKihj˱ubj')}(hhh]h)}(h``checkpoint`` seq number for congestion window size handling h](j )}(h``checkpoint``h]j)}(hj`h]h checkpoint}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjZubj')}(hhh]h)}(h.seq number for congestion window size handlingh]h.seq number for congestion window size handling}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhKhjvubah}(h]h ]h"]h$]h&]uh1j&hjZubeh}(h]h ]h"]h$]h&]uh1jhjuhKhj6ubj)}(hF``reasm_buf`` head of partially reassembled inbound message fragments h](j )}(h ``reasm_buf``h]j)}(hjh]h reasm_buf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKkhjubj')}(hhh]h)}(h7head of partially reassembled inbound message fragmentsh]h7head of partially reassembled inbound message fragments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKkhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKkhj6ubj)}(hK``reasm_tnlmsg`` fragmentation/reassembly area for tunnel protocol message h](j )}(h``reasm_tnlmsg``h]j)}(hjҳh]h reasm_tnlmsg}(hjԳhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjгubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhj̳ubj')}(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&]uh1j&hj̳ubeh}(h]h ]h"]h$]h&]uh1jhjhKhj6ubj)}(hN``ackers`` # of peers that needs to ack each packet before it can be released h](j )}(h ``ackers``h]j)}(hj h]hackers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hP/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj hKehj6ubj)}(hE``acked`` # last packet acked by a certain peer. Used for broadcast. h](j )}(h ``acked``h]j)}(hjDh]hacked}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKfhj>ubj')}(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.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhKfhjZubah}(h]h ]h"]h$]h&]uh1j&hj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhKfhj6ubj)}(h3``last_gap`` last gap ack blocks for bcast (FIXME) h](j )}(h ``last_gap``h]j)}(hj}h]hlast_gap}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjwubj')}(hhh]h)}(h%last gap ack blocks for bcast (FIXME)h]h%last gap ack blocks for bcast (FIXME)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j&hjwubeh}(h]h ]h"]h$]h&]uh1jhjhKhj6ubj)}(h"``last_ga`` ptr to gap ack blocks h](j )}(h ``last_ga``h]j)}(hjh]hlast_ga}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjubj')}(hhh]h)}(hptr to gap ack blocksh]hptr to gap ack blocks}(hjϴhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj˴hKhj̴ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj˴hKhj6ubj)}(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&]uh1j hP/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj6ubj)}(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&]uh1j hP/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}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hKhj>ubah}(h]h ]h"]h$]h&]uh1j&hj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hKhj6ubj)}(h ``nack_state`` bcast nack state h](j )}(h``nack_state``h]j)}(hjah]h nack_state}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhj[ubj')}(hhh]h)}(hbcast nack stateh]hbcast nack state}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhKhjwubah}(h]h ]h"]h$]h&]uh1j&hj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhKhj6ubj)}(h4``bc_peer_is_up`` peer has acked the bcast init msg h](j )}(h``bc_peer_is_up``h]j)}(hjh]h bc_peer_is_up}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKhjubj')}(hhh]h)}(h!peer has acked the bcast init msgh]h!peer has acked the bcast init msg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj6ubj)}(h5``stats`` collects statistics regarding link activityh](j )}(h ``stats``h]j)}(hjӵh]hstats}(hjյhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjѵubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chKkhj͵ubj')}(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&]uh1j&hj͵ubeh}(h]h ]h"]h$]h&]uh1jhjhKkhj6ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_link_create (C function)c.tipc_link_createhNtauh1jhjfhhhNhNubj$)}(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](jG)}(hjgh]hbool}(hj-hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj)hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubjG)}(h h]h }(hj;hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj)hhhj:hMubjX)}(htipc_link_createh]j^)}(htipc_link_createh]htipc_link_create}(hjMhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjIubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj)hhhj:hMubj)}(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](j5)}(hj8h]hstruct}(hjihhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjeubjG)}(h h]h }(hjvhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjeubh)}(hhh]j^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjOsbc.tipc_link_createasbuh1hhjeubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjeubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj^)}(hneth]hnet}(hj¶hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjeubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(h char *if_nameh](jG)}(hcharh]hchar}(hj۶hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj׶ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj׶ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj׶ubj^)}(hif_nameh]hif_name}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj׶ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(h int bearer_idh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hj+hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(h bearer_idh]h bearer_id}(hj9hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(h int toleranceh](jG)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjNubjG)}(h h]h }(hj`hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjNubj^)}(h toleranceh]h tolerance}(hjnhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjNubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(hchar net_planeh](jG)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(h net_planeh]h net_plane}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(hu32 mtuh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhjubjG)}(h h]h }(hjݷhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hmtuh]hmtu}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(h int priorityh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hpriorityh]hpriority}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(h u32 min_winh](h)}(hhh]j^)}(hu32h]hu32}(hj<hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhj5ubjG)}(h h]h }(hjZhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj5ubj^)}(hmin_winh]hmin_win}(hjhhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj5ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(h u32 max_winh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhj}ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj}ubj^)}(hmax_winh]hmax_win}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(h u32 sessionh](h)}(hhh]j^)}(hu32h]hu32}(hj̸hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjɸubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjθmodnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhjŸubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjŸubj^)}(hsessionh]hsession}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjŸubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(hu32 selfh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhj ubjG)}(h h]h }(hj2hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj^)}(hselfh]hself}(hj@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(hu32 peerh](h)}(hhh]j^)}(hu32h]hu32}(hj\hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhjUubjG)}(h h]h }(hjzhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjUubj^)}(hpeerh]hpeer}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjUubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(h u8 *peer_idh](h)}(hhh]j^)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhjubjG)}(h h]h }(hj¹hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjйhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hpeer_idh]hpeer_id}(hjݹhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(h u16 peer_capsh](h)}(hhh]j^)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(h peer_capsh]h peer_caps}(hj%hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(hstruct tipc_link *bc_sndlinkh](j5)}(hj8h]hstruct}(hj>hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj:ubjG)}(h h]h }(hjKhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj:ubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hj\hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhj:ubjG)}(h h]h }(hjzhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj:ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj^)}(h bc_sndlinkh]h bc_sndlink}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj:ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(hstruct tipc_link *bc_rcvlinkh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hj̺hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjɺubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjκmodnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(h bc_rcvlinkh]h bc_rcvlink}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(hstruct sk_buff_head *inputqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj+hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hj<hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhjubjG)}(h h]h }(hjZhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hinputqh]hinputq}(hjuhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(hstruct sk_buff_head *namedqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhjubjG)}(h h]h }(hjʻhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjػhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hnamedqh]hnamedq}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubj%)}(hstruct tipc_link **linkh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_createasbuh1hhjubjG)}(h h]h }(hj:hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hlinkh]hlink}(hjbhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjaubeh}(h]h ]h"]h$]h&]hhuh1jhj)hhhj:hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj%hhhj:hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j(hj:hMhj"hhubj)}(hhh]h)}(hcreate a new linkh]hcreate a new link}(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&]uh1jhj"hhhj:hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjfhNhNubj)}(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)}(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)}(hjͼh]hstruct net *net}(hjϼhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj˼ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjǼubj')}(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&]uh1j&hjǼubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(hhh]h)}(hassociated interface nameh]hassociated interface name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(h2``int bearer_id`` id (index) of associated bearer h](j )}(h``int bearer_id``h]j)}(hj?h]h int bearer_id}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj9ubj')}(hhh]h)}(hid (index) of associated bearerh]hid (index) of associated bearer}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMhjUubah}(h]h ]h"]h$]h&]uh1j&hj9ubeh}(h]h ]h"]h$]h&]uh1jhjThMhjļubj)}(h4``int tolerance`` link tolerance to be used by link h](j )}(h``int tolerance``h]j)}(hjxh]h int tolerance}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjrubj')}(hhh]h)}(h!link tolerance to be used by linkh]h!link tolerance to be used by link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjrubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(h@``char net_plane`` network plane (A,B,c..) this link belongs to h](j )}(h``char net_plane``h]j)}(hjh]hchar net_plane}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(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&]uh1hhjƽhMhjǽubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjƽhMhjļubj)}(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&]uh1j hP/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(hhh]h)}(hpriority to be used by linkh]hpriority to be used by link}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj9ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj8hMhjļubj)}(h7``u32 min_win`` minimal send window to be used by link h](j )}(h``u32 min_win``h]j)}(hj\h]h u32 min_win}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjVubj')}(hhh]h)}(h&minimal send window to be used by linkh]h&minimal send window to be used by link}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMhjrubah}(h]h ]h"]h$]h&]uh1j&hjVubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjļubj)}(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&]uh1j hP/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(h+``u32 session`` session to be used by link h](j )}(h``u32 session``h]j)}(hjξh]h u32 session}(hjоhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̾ubah}(h]h ]h"]h$]h&]uh1j hP/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&]uh1j&hjȾubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(h#``u32 self`` local unicast link id h](j )}(h ``u32 self``h]j)}(hjh]hu32 self}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/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&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(h"``u32 peer`` node id of peer node h](j )}(h ``u32 peer``h]j)}(hj@h]hu32 peer}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj:ubj')}(hhh]h)}(hnode id of peer nodeh]hnode id of peer node}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMhjVubah}(h]h ]h"]h$]h&]uh1j&hj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhMhjļubj)}(h#``u8 *peer_id`` 128-bit ID of peer h](j )}(h``u8 *peer_id``h]j)}(hjyh]h u8 *peer_id}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjsubj')}(hhh]h)}(h128-bit ID of peerh]h128-bit ID of peer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjsubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(h;``u16 peer_caps`` bitmap describing peer node capabilities h](j )}(h``u16 peer_caps``h]j)}(hjh]h u16 peer_caps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(hhh]h)}(h(bitmap describing peer node capabilitiesh]h(bitmap describing peer node capabilities}(hj˿hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjǿhMhjȿubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjǿhMhjļubj)}(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&]uh1j hP/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(hhh]h)}(h3the peer specific link used for broadcast receptionh]h3the peer specific link used for broadcast reception}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj:ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj9hMhjļubj)}(hI``struct sk_buff_head *inputq`` queue to put messages ready for delivery 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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjWubj')}(hhh]h)}(h(queue to put messages ready for deliveryh]h(queue to put messages ready for delivery}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhMhjsubah}(h]h ]h"]h$]h&]uh1j&hjWubeh}(h]h ]h"]h$]h&]uh1jhjrhMhjļubj)}(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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(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&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubj)}(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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjļubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hj h]hReturn}(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.chMhjubh)}(h)true if link was created, otherwise falseh]h)true if link was created, otherwise false}(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&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_link_bc_create (C function)c.tipc_link_bc_createhNtauh1jhjfhhhNhNubj$)}(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](jG)}(hjgh]hbool}(hjOhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjKhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubjG)}(h h]h }(hj]hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjKhhhj\hMubjX)}(htipc_link_bc_createh]j^)}(htipc_link_bc_createh]htipc_link_bc_create}(hjohhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjkubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjKhhhj\hMubj)}(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](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjqsbc.tipc_link_bc_createasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h u32 ownnodeh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hownnodeh]hownnode}(hj,hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hu32 peerh](h)}(hhh]j^)}(hu32h]hu32}(hjHhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhjAubjG)}(h h]h }(hjfhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjAubj^)}(hpeerh]hpeer}(hjthhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjAubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h u8 *peer_idh](h)}(hhh]j^)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hpeer_idh]hpeer_id}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint mtuh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hmtuh]hmtu}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h u32 min_winh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhjubjG)}(h h]h }(hj8hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hmin_winh]hmin_win}(hjFhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h u32 max_winh](h)}(hhh]j^)}(hu32h]hu32}(hjbhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhj[ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj[ubj^)}(hmax_winh]hmax_win}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h u16 peer_capsh](h)}(hhh]j^)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(h peer_capsh]h peer_caps}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *inputqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhjubjG)}(h h]h }(hj+hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hinputqh]hinputq}(hjFhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *namedqh](j5)}(hj8h]hstruct}(hj_hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj[ubjG)}(h h]h }(hjlhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj[ubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hj}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhj[ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj^)}(hnamedqh]hnamedq}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_link *bc_sndlinkh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhjubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(h bc_sndlinkh]h bc_sndlink}(hj&hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_link **linkh](j5)}(hj8h]hstruct}(hj?hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj;ubjG)}(h h]h }(hjLhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj;ubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hj]hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]jc.tipc_link_bc_createasbuh1hhj;ubjG)}(h h]h }(hj{hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj^)}(hlinkh]hlink}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj;ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjKhhhj\hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjGhhhj\hMubah}(h]jBah ](jjeh"]h$]h&]jj)jhuh1j(hj\hMhjDhhubj)}(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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjDhhhj\hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjfhNhNubj)}(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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hP/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}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMhj$ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj#hMhjubj)}(h%``u32 ownnode`` identity of own node h](j )}(h``u32 ownnode``h]j)}(hjGh]h u32 ownnode}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM!hjAubj')}(hhh]h)}(hidentity of own nodeh]hidentity of own node}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hM!hj]ubah}(h]h ]h"]h$]h&]uh1j&hjAubeh}(h]h ]h"]h$]h&]uh1jhj\hM!hjubj)}(h"``u32 peer`` node id of peer node h](j )}(h ``u32 peer``h]j)}(hjh]hu32 peer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM"hjzubj')}(hhh]h)}(hnode id of peer nodeh]hnode id of peer node}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM"hjubah}(h]h ]h"]h$]h&]uh1j&hjzubeh}(h]h ]h"]h$]h&]uh1jhjhM"hjubj)}(h#``u8 *peer_id`` 128-bit ID of peer h](j )}(h``u8 *peer_id``h]j)}(hjh]h u8 *peer_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM#hjubj')}(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&]uh1j&hjubeh}(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&]uh1j hP/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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)}(hj+h]h u32 min_win}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1j hP/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}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhjAubah}(h]h ]h"]h$]h&]uh1j&hj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhjubj)}(h7``u32 max_win`` maximal send window to be used by link h](j )}(h``u32 max_win``h]j)}(hjdh]h u32 max_win}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj^ubj')}(hhh]h)}(h&maximal send window to be used by linkh]h&maximal send window to be used by link}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhMhjzubah}(h]h ]h"]h$]h&]uh1j&hj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhMhjubj)}(h;``u16 peer_caps`` bitmap describing peer node capabilities h](j )}(h``u16 peer_caps``h]j)}(hjh]h u16 peer_caps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM$hjubj')}(hhh]h)}(h(bitmap describing peer node capabilitiesh]h(bitmap describing peer node capabilities}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM$hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM$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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(hhh]h)}(h(queue to put messages ready for deliveryh]h(queue to put messages ready for delivery}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj ubj')}(hhh]h)}(h=queue to put binding table update messages ready for deliveryh]h=queue to put binding table update messages ready for delivery}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMhj%ubah}(h]h ]h"]h$]h&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj$hMhjubj)}(hV``struct tipc_link *bc_sndlink`` the namespace global link used for broadcast sending h](j )}(h ``struct tipc_link *bc_sndlink``h]j)}(hjHh]hstruct tipc_link *bc_sndlink}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM%hjBubj')}(hhh]h)}(h4the namespace global link used for broadcast sendingh]h4the namespace global link used for broadcast sending}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hM%hj^ubah}(h]h ]h"]h$]h&]uh1j&hjBubeh}(h]h ]h"]h$]h&]uh1jhj]hM%hjubj)}(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&]uh1j hP/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hj{ubeh}(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&]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&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_link_fsm_evt (C function)c.tipc_link_fsm_evthNtauh1jhjfhhhNhNubj$)}(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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMUubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMUubjX)}(htipc_link_fsm_evth]j^)}(htipc_link_fsm_evth]htipc_link_fsm_evt}(hj"hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMUubj)}(h(struct tipc_link *l, int evt)h](j%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hj>hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj:ubjG)}(h h]h }(hjKhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj:ubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hj\hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jj$sbc.tipc_link_fsm_evtasbuh1hhj:ubjG)}(h h]h }(hj|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj:ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj^)}(hlh]hl}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj:ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj6ubj%)}(hint evth](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hevth]hevt}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj6ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMUubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMUubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMUhjhhubj)}(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.chMUhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMUubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjfhNhNubj)}(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.chMYhjubj)}(hhh](j)}(h(``struct tipc_link *l`` pointer to link h](j )}(h``struct tipc_link *l``h]j)}(hj7h]hstruct tipc_link *l}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMVhj1ubj')}(hhh]h)}(hpointer to linkh]hpointer to link}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhMVhjMubah}(h]h ]h"]h$]h&]uh1j&hj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhMVhj.ubj)}(h/``int evt`` state machine event to be processedh](j )}(h ``int evt``h]j)}(hjph]hint evt}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMXhjjubj')}(hhh]h)}(h#state machine event to be processedh]h#state machine event to be processed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMWhjubah}(h]h ]h"]h$]h&]uh1j&hjjubeh}(h]h ]h"]h$]h&]uh1jhjhMXhj.ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!tipc_link_too_silent (C function)c.tipc_link_too_silenthNtauh1jhjfhhhNhNubj$)}(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](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM#ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhM#ubjX)}(htipc_link_too_silenth]j^)}(htipc_link_too_silenth]htipc_link_too_silent}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhM#ubj)}(h(struct tipc_link *l)h]j%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hj$hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j)}jjsbc.tipc_link_too_silentasbuh1hhjubjG)}(h h]h }(hjDhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hl}(hj_hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM#ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhM#ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhM#hjhhubj)}(hhh]h)}(hcheck if link is "too silent"h]h!check if link is “too silent”}(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&]uh1jhjhhhjhM#ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjfhNhNubj)}(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)}(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)}(h0``struct tipc_link *l`` tipc link to be checked 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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM$hjubj')}(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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM$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&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM&hjubh)}(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&hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jlink_schedule_user (C function)c.link_schedule_userhNtauh1jhjfhhhNhNubj$)}(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](jG)}(hinth]hint}(hjIhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjEhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMlubjG)}(h h]h }(hjXhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjEhhhjWhMlubjX)}(hlink_schedule_userh]j^)}(hlink_schedule_userh]hlink_schedule_user}(hjjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjfubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjEhhhjWhMlubj)}(h+(struct tipc_link *l, struct tipc_msg *hdr)h](j%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjlsbc.link_schedule_userasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hl}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj~ubj%)}(hstruct tipc_msg *hdrh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.link_schedule_userasbuh1hhjubjG)}(h h]h }(hj3hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hhdrh]hhdr}(hjNhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj~ubeh}(h]h ]h"]h$]h&]hhuh1jhjEhhhjWhMlubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjAhhhjWhMlubah}(h]j<ah ](jjeh"]h$]h&]jj)jhuh1j(hjWhMlhj>hhubj)}(hhh]h)}(h5schedule a message sender for wakeup after congestionh]h5schedule a message sender for wakeup after congestion}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMlhjuhhubah}(h]h ]h"]h$]h&]uh1jhj>hhhjWhMlubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjfhNhNubj)}(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)}(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.chMphjubj)}(hhh](j)}(h'``struct tipc_link *l`` congested 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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMmhjubj')}(hhh]h)}(hcongested linkh]hcongested link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMmhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMmhjubj)}(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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMnhjubj')}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMnhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMnhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j link_prepare_wakeup (C function)c.link_prepare_wakeuphNtauh1jhjfhhhNhNubj$)}(hhh](j))}(h.void link_prepare_wakeup (struct tipc_link *l)h]j/)}(h-void link_prepare_wakeup(struct tipc_link *l)h](jG)}(hvoidh]hvoid}(hjKhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubjG)}(h h]h }(hjZhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGhhhjYhMubjX)}(hlink_prepare_wakeuph]j^)}(hlink_prepare_wakeuph]hlink_prepare_wakeup}(hjlhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjhubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjGhhhjYhMubj)}(h(struct tipc_link *l)h]j%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjnsbc.link_prepare_wakeupasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hl}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubah}(h]h ]h"]h$]h&]hhuh1jhjGhhhjYhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjChhhjYhMubah}(h]j>ah ](jjeh"]h$]h&]jj)jhuh1j(hjYhMhj@hhubj)}(hhh]h)}(h)prepare users for wakeup after congestionh]h)prepare users for wakeup after congestion}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj@hhhjYhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj"jj"jjjuh1j#hhhjfhNhNubj)}(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)}(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.chMhj&ubj)}(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)}(hjKh]hstruct tipc_link *l}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjEubj')}(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}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjaubah}(h]h ]h"]h$]h&]uh1j&hjEubeh}(h]h ]h"]h$]h&]uh1jhj`hMhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j.tipc_link_set_skb_retransmit_time (C function)#c.tipc_link_set_skb_retransmit_timehNtauh1jhjfhhhNhNubj$)}(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](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(h!tipc_link_set_skb_retransmit_timeh]j^)}(h!tipc_link_set_skb_retransmit_timeh]h!tipc_link_set_skb_retransmit_time}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(h*(struct sk_buff *skb, struct tipc_link *l)h](j%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb#c.tipc_link_set_skb_retransmit_timeasbuh1hhjubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskbh]hskb}(hj;hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hjThhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjPubjG)}(h h]h }(hjahhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjPubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjrhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j#c.tipc_link_set_skb_retransmit_timeasbuh1hhjPubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj^)}(hjh]hl}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjPubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjfhNhNubj)}(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&]uh1j hP/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}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hMhj+ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj*hMhj ubj)}(h;``struct tipc_link *l`` link the skb will be transmitted onh](j )}(h``struct tipc_link *l``h]j)}(hjNh]hstruct tipc_link *l}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjHubj')}(hhh]h)}(h#link the skb will be transmitted onh]h#link the skb will be transmitted on}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjdubah}(h]h ]h"]h$]h&]uh1j&hjHubeh}(h]h ]h"]h$]h&]uh1jhjchMhj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_link_xmit (C function)c.tipc_link_xmithNtauh1jhjfhhhNhNubj$)}(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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_link_xmith]j^)}(htipc_link_xmith]htipc_link_xmit}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(hL(struct tipc_link *l, struct sk_buff_head *list, struct sk_buff_head *xmitq)h](j%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_link_xmitasbuh1hhjubjG)}(h h]h }(hj#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hl}(hj>hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *listh](j5)}(hj8h]hstruct}(hjVhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjRubjG)}(h h]h }(hjchhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjRubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjthhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]jc.tipc_link_xmitasbuh1hhjRubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjRubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj^)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjRubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *xmitqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_xmitasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hxmitqh]hxmitq}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(hhh]h)}(h0enqueue buffer list according to queue situationh]h0enqueue buffer list according to queue situation}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjDhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1j#hhhjfhNhNubj)}(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)}(hjih]h Parameters}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjcubj)}(hhh](j)}(h$``struct tipc_link *l`` link to use 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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(hhh]h)}(h link to useh]h link to use}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hB``struct sk_buff_head *list`` chain of buffers containing message 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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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&]uh1j hP/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjcubh)}(h**Description**h]j)}(hj5h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjcubh)}(hQConsumes the buffer chain. Messages at TIPC_SYSTEM_IMPORTANCE are always acceptedh]hQConsumes the buffer chain. Messages at TIPC_SYSTEM_IMPORTANCE are always accepted}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjcubh)}(h **Return**h]j)}(hj\h]hReturn}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjcubh)}(h90 if success, or errno: -ELINKCONG, -EMSGSIZE or -ENOBUFSh]h90 if success, or errno: -ELINKCONG, -EMSGSIZE or -ENOBUFS}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$link_retransmit_failure (C function)c.link_retransmit_failurehNtauh1jhjfhhhNhNubj$)}(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](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(hlink_retransmit_failureh]j^)}(hlink_retransmit_failureh]hlink_retransmit_failure}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(h3(struct tipc_link *l, struct tipc_link *r, int *rc)h](j%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.link_retransmit_failureasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hl}(hj6hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_link *rh](j5)}(hj8h]hstruct}(hjNhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjJubjG)}(h h]h }(hj[hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjlhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]jc.link_retransmit_failureasbuh1hhjJubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj^)}(hrh]hr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjJubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint *rch](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hrch]hrc}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj)jj)jjjuh1j#hhhjfhNhNubj)}(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)}(hj3h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhj-ubj)}(hhh](j)}(h)``struct tipc_link *l`` tipc link sender h](j )}(h``struct tipc_link *l``h]j)}(hjRh]hstruct tipc_link *l}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjLubj')}(hhh]h)}(htipc link senderh]htipc link sender}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghMhjhubah}(h]h ]h"]h$]h&]uh1j&hjLubeh}(h]h ]h"]h$]h&]uh1jhjghMhjIubj)}(hD``struct tipc_link *r`` tipc link receiver (= l in case of unicast) h](j )}(h``struct tipc_link *r``h]j)}(hjh]hstruct tipc_link *r}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(hhh]h)}(h+tipc link receiver (= l in case of unicast)h]h+tipc link receiver (= l in case of unicast)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjIubj)}(h``int *rc`` returned code h](j )}(h ``int *rc``h]j)}(hjh]hint *rc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(hhh]h)}(h returned codeh]h returned code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjIubeh}(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)}(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.chMhj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"tipc_get_gap_ack_blks (C function)c.tipc_get_gap_ack_blkshNtauh1jhjfhhhNhNubj$)}(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]j^)}(hu16h]hu16}(hjGhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jtipc_get_gap_ack_blkssbc.tipc_get_gap_ack_blksasbuh1hhj@hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM~ubjG)}(h h]h }(hjihhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj@hhhjhhM~ubjX)}(htipc_get_gap_ack_blksh]j^)}(hjeh]htipc_get_gap_ack_blks}(hj{hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjwubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj@hhhjhhM~ubj)}(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](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(htipc_gap_ack_blksh]htipc_gap_ack_blks}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jcc.tipc_get_gap_ack_blksasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hgah]hga}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hj1hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]jcc.tipc_get_gap_ack_blksasbuh1hhjubjG)}(h h]h }(hjOhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hl}(hjjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_msg *hdrh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj~ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj~ubh)}(hhh]j^)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jcc.tipc_get_gap_ack_blksasbuh1hhj~ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj~ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj^)}(hhdrh]hhdr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hbool uch](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(huch]huc}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhj@hhhjhhM~ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj<hhhjhhM~ubah}(h]j7ah ](jjeh"]h$]h&]jj)jhuh1j(hjhhM~hj9hhubj)}(hhh]h)}(h*get Gap ACK blocks from PROTOCOL/STATE_MSGh]h*get Gap ACK blocks from PROTOCOL/STATE_MSG}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM~hj4hhubah}(h]h ]h"]h$]h&]uh1jhj9hhhjhhM~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjOjjOjjjuh1j#hhhjfhNhNubj)}(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)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjSubj)}(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)}(hjxh]hstruct tipc_gap_ack_blks **ga}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjrubj')}(hhh]h)}(h-returned pointer to the Gap ACK blocks if anyh]h-returned pointer to the Gap ACK blocks if any}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjrubeh}(h]h ]h"]h$]h&]uh1jhjhMhjoubj)}(h&``struct tipc_link *l`` the tipc 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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjubj')}(hhh]h)}(h the tipc linkh]h the tipc link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjoubj)}(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&]uh1j hP/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjoubj)}(hO``bool uc`` desired Gap ACK blocks type, i.e. unicast (= 1) or broadcast (= 0) h](j )}(h ``bool uc``h]j)}(hj#h]hbool uc}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1j hP/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)}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj9ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj8hMhjoubeh}(h]h ]h"]h$]h&]uh1jhjSubh)}(h **Return**h]j)}(hj^h]hReturn}(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.chMhjSubh)}(hthe total Gap ACK blocks sizeh]hthe total Gap ACK blocks size}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMhjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'tipc_link_failover_prepare (C function)c.tipc_link_failover_preparehNtauh1jhjfhhhNhNubj$)}(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](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM/ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhM/ubjX)}(htipc_link_failover_prepareh]j^)}(htipc_link_failover_prepareh]htipc_link_failover_prepare}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhM/ubj)}(hH(struct tipc_link *l, struct tipc_link *tnl, struct sk_buff_head *xmitq)h](j%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_link_failover_prepareasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hl}(hj9hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_link *tnlh](j5)}(hj8h]hstruct}(hjQhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjMubjG)}(h h]h }(hj^hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjMubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjohhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]jc.tipc_link_failover_prepareasbuh1hhjMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj^)}(htnlh]htnl}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjMubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *xmitqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_link_failover_prepareasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hxmitqh]hxmitq}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM/ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhM/ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhM/hjhhubj)}(hhh]h)}(hprepare tnl for link failoverh]hprepare tnl for link failover}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM/hj?hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM/ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjjjuh1j#hhhjfhNhNubj)}(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)}(hjdh]h Parameters}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM3hj^ubj)}(hhh](j)}(h&``struct tipc_link *l`` failover 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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM4hj}ubj')}(hhh]h)}(h failover linkh]h failover link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM4hjubah}(h]h ]h"]h$]h&]uh1j&hj}ubeh}(h]h ]h"]h$]h&]uh1jhjhM4hjzubj)}(h&``struct tipc_link *tnl`` tunnel link h](j )}(h``struct tipc_link *tnl``h]j)}(hjh]hstruct tipc_link *tnl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM5hjubj')}(hhh]h)}(h tunnel linkh]h tunnel link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM5hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM5hjzubj)}(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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM6hjubj')}(hhh]h)}(hqueue for messages to be xmitedh]hqueue for messages to be xmited}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM6hj ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj hM6hjzubeh}(h]h ]h"]h$]h&]uh1jhj^ubh)}(h**Description**h]j)}(hj0h]h Description}(hj2hhhNhNubah}(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.chM8hj^ubh)}(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}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM0hj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"tipc_link_reset_stats (C function)c.tipc_link_reset_statshNtauh1jhjfhhhNhNubj$)}(hhh](j))}(h0void tipc_link_reset_stats (struct tipc_link *l)h]j/)}(h/void tipc_link_reset_stats(struct tipc_link *l)h](jG)}(hvoidh]hvoid}(hjuhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjqhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjqhhhjhM ubjX)}(htipc_link_reset_statsh]j^)}(htipc_link_reset_statsh]htipc_link_reset_stats}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjqhhhjhM ubj)}(h(struct tipc_link *l)h]j%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_link_reset_statsasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hl}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubah}(h]h ]h"]h$]h&]hhuh1jhjqhhhjhM ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjmhhhjhM ubah}(h]jhah ](jjeh"]h$]h&]jj)jhuh1j(hjhM hjjhhubj)}(hhh]h)}(hreset link statisticsh]hreset link statistics}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM hj1hhubah}(h]h ]h"]h$]h&]uh1jhjjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1j#hhhjfhNhNubj)}(h9**Parameters** ``struct tipc_link *l`` pointer to linkh](h)}(h**Parameters**h]j)}(hjVh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM hjPubj)}(hhh]j)}(h'``struct tipc_link *l`` pointer to linkh](j )}(h``struct tipc_link *l``h]j)}(hjuh]hstruct tipc_link *l}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM hjoubj')}(hhh]h)}(hpointer to linkh]hpointer to link}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chM hjubah}(h]h ]h"]h$]h&]uh1j&hjoubeh}(h]h ]h"]h$]h&]uh1jhjhM hjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_link_dump (C function)c.tipc_link_dumphNtauh1jhjfhhhNhNubj$)}(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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chME ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhME ubjX)}(htipc_link_dumph]j^)}(htipc_link_dumph]htipc_link_dump}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhME ubj)}(h-(struct tipc_link *l, u16 dqueues, char *buf)h](j%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hj hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hj*hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]j)}jjsbc.tipc_link_dumpasbuh1hhjubjG)}(h h]h }(hjJhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hl}(hjehhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h u16 dqueuesh](h)}(hhh]j^)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jFc.tipc_link_dumpasbuh1hhjyubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjyubj^)}(hdqueuesh]hdqueues}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjyubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h char *bufh](jG)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hbufh]hbuf}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhME ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhME ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhME hjhhubj)}(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.chME hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhME ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1j#hhhjfhNhNubj)}(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)}(hj:h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMI hj4ubj)}(hhh](j)}(h/``struct tipc_link *l`` tipc link to be dumped h](j )}(h``struct tipc_link *l``h]j)}(hjYh]hstruct tipc_link *l}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMF hjSubj')}(hhh]h)}(htipc link to be dumpedh]htipc link to be dumped}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhMF hjoubah}(h]h ]h"]h$]h&]uh1j&hjSubeh}(h]h ]h"]h$]h&]uh1jhjnhMF hjPubj)}(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)}(hjh]h u16 dqueues}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMN hjubj')}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMG hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMN hjPubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:169: ./net/tipc/link.chMP hjubj')}(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.chMO hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMP hjPubeh}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjfhhhNhNubeh}(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](jtipc_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](j5)}(hj8h]hstruct}(hj?hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj;hhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK:ubjG)}(h h]h }(hjMhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj;hhhjLhK:ubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj^hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jtipc_buf_acquiresbc.tipc_buf_acquireasbuh1hhj;hhhjLhK:ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj;hhhjLhK:ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhhjLhK:ubjX)}(htipc_buf_acquireh]j^)}(hj|h]htipc_buf_acquire}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj;hhhjLhK:ubj)}(h(u32 size, gfp_t gfp)h](j%)}(hu32 sizeh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jzc.tipc_buf_acquireasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h gfp_t gfph](h)}(hhh]j^)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jzc.tipc_buf_acquireasbuh1hhjubjG)}(h h]h }(hj"hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hgfph]hgfp}(hj0hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhj;hhhjLhK:ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj7hhhjLhK:ubah}(h]j2ah ](jjeh"]h$]h&]jj)jhuh1j(hjLhK:hj4hhubj)}(hhh]h)}(hcreates a TIPC message bufferh]hcreates a TIPC message buffer}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK:hjWhhubah}(h]h ]h"]h$]h&]uh1jhj4hhhjLhK:ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjrjjrjjjuh1j#hhhjhNhNubj)}(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}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK>hjvubj)}(hhh](j)}(h2``u32 size`` message size (including TIPC header) h](j )}(h ``u32 size``h]j)}(hjh]hu32 size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK;hjubj')}(hhh]h)}(h$message size (including TIPC header)h]h$message size (including TIPC header)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK;hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjubj)}(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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjvubh)}(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.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK>hjvubh)}(h**NOTE**h]j)}(hj6h]hNOTE}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK@hjvubh)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chK@hjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](jG)}(hinth]hint}(hj{hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjwhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjwhhhjhKubjX)}(htipc_msg_appendh]j^)}(htipc_msg_appendh]htipc_msg_append}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjwhhhjhKubj)}(hV(struct tipc_msg *_hdr, struct msghdr *m, int dlen, int mss, struct sk_buff_head *txq)h](j%)}(hstruct tipc_msg *_hdrh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_msg_appendasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(h_hdrh]h_hdr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hj*hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj&ubjG)}(h h]h }(hj7hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&ubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hjHhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]jc.tipc_msg_appendasbuh1hhj&ubjG)}(h h]h }(hjfhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&ubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj^)}(hmh]hm}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint dlenh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hdlenh]hdlen}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint mssh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hmssh]hmss}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *txqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hj"hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]jc.tipc_msg_appendasbuh1hhjubjG)}(h h]h }(hj@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(htxqh]htxq}(hj[hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjwhhhjhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjshhhjhKubah}(h]jnah ](jjeh"]h$]h&]jj)jhuh1j(hjhKhjphhubj)}(hhh]h)}(h/Append data to tail of an existing buffer queueh]h/Append data to tail of an existing buffer queue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhjphhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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)}(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.chKhjubj)}(hhh](j)}(h,``struct tipc_msg *_hdr`` header to be used 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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjubj')}(hhh]h)}(hheader to be usedh]hheader to be used}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(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&]uh1j hO/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h)``int dlen`` size of data to be appended h](j )}(h ``int dlen``h]j)}(hj8h]hint dlen}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhj2ubj')}(hhh]h)}(hsize of data to be appendedh]hsize of data to be appended}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhKhjNubah}(h]h ]h"]h$]h&]uh1j&hj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjubj)}(h)``int mss`` max allowable size of buffer h](j )}(h ``int mss``h]j)}(hjqh]hint mss}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjkubj')}(hhh]h)}(hmax allowable size of bufferh]hmax allowable size of buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j&hjkubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h0``struct sk_buff_head *txq`` queue to append to h](j )}(h``struct sk_buff_head *txq``h]j)}(hjh]hstruct sk_buff_head *txq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chKhjubj')}(hhh]h)}(hqueue to append toh]hqueue to append to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(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.chKhjubh)}(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.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](jG)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&hhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM8ubjG)}(h h]h }(hj9hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&hhhj8hM8ubjX)}(htipc_msg_fragmenth]j^)}(htipc_msg_fragmenth]htipc_msg_fragment}(hjKhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjGubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj&hhhj8hM8ubj)}(hY(struct sk_buff *skb, const struct tipc_msg *hdr, int pktmax, struct sk_buff_head *frags)h](j%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjghhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjcubjG)}(h h]h }(hjthhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjcubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjMsbc.tipc_msg_fragmentasbuh1hhjcubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjcubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj_ubj%)}(hconst struct tipc_msg *hdrh](j5)}(hj,h]hconst}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_fragmentasbuh1hhjubjG)}(h h]h }(hj0hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hhdrh]hhdr}(hjKhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj_ubj%)}(h int pktmaxh](jG)}(hinth]hint}(hjdhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj`ubjG)}(h h]h }(hjrhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj`ubj^)}(hpktmaxh]hpktmax}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj`ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj_ubj%)}(hstruct sk_buff_head *fragsh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_fragmentasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hfragsh]hfrags}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj_ubeh}(h]h ]h"]h$]h&]hhuh1jhj&hhhj8hM8ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj"hhhj8hM8ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hj8hM8hjhhubj)}(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.chM8hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj8hM8ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1j#hhhjhNhNubj)}(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)}(hj<h]h Parameters}(hj>hhhNhNubah}(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.chM<hj6ubj)}(hhh](j)}(h)``struct sk_buff *skb`` TIPC message skb h](j )}(h``struct sk_buff *skb``h]j)}(hj[h]hstruct sk_buff *skb}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM:hjUubj')}(hhh]h)}(hTIPC message skbh]hTIPC message skb}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphM:hjqubah}(h]h ]h"]h$]h&]uh1j&hjUubeh}(h]h ]h"]h$]h&]uh1jhjphM:hjRubj)}(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)}(hjh]hconst struct tipc_msg *hdr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM;hjubj')}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM;hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM;hjRubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM<hjubj')}(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&]uh1hhjhM<hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM<hjRubj)}(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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM=hjubj')}(hhh]h)}(hreturned fragment skb listh]hreturned fragment skb list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM=hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM=hjRubeh}(h]h ]h"]h$]h&]uh1jhj6ubh)}(h **Return**h]j)}(hjAh]hReturn}(hjChhhNhNubah}(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.chM?hj6ubh)}(hC0 if the fragmentation is successful, otherwise: -EINVAL or -ENOMEMh]hC0 if the fragmentation is successful, otherwise: -EINVAL or -ENOMEM}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM?hj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMsubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMsubjX)}(htipc_msg_buildh]j^)}(htipc_msg_buildh]htipc_msg_build}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMsubj)}(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](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_msg_buildasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hmhdrh]hmhdr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hj5hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj1ubjG)}(h h]h }(hjBhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj1ubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hjShhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]jc.tipc_msg_buildasbuh1hhj1ubjG)}(h h]h }(hjqhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj^)}(hjh]hm}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h int offseth](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hoffseth]hoffset}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint dszh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hdszh]hdsz}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h int pktmaxh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj^)}(hpktmaxh]hpktmax}(hj*hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *listh](j5)}(hj8h]hstruct}(hjChhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj?ubjG)}(h h]h }(hjPhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj?ubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjahhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]jc.tipc_msg_buildasbuh1hhj?ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj?ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj^)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMsubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj~hhhjhMsubah}(h]jyah ](jjeh"]h$]h&]jj)jhuh1j(hjhMshj{hhubj)}(hhh]h)}(h8create buffer chain containing specified header and datah]h8create buffer chain containing specified header and data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMshjhhubah}(h]h ]h"]h$]h&]uh1jhj{hhhjhMsubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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.chMwhjubj)}(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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMthjubj')}(hhh]h)}(h'Message header, to be prepended to datah]h'Message header, to be prepended to data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMthjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMthjubj)}(h"``struct msghdr *m`` User message h](j )}(h``struct msghdr *m``h]j)}(hj>h]hstruct msghdr *m}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMuhj8ubj')}(hhh]h)}(h User messageh]h User message}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShMuhjTubah}(h]h ]h"]h$]h&]uh1j&hj8ubeh}(h]h ]h"]h$]h&]uh1jhjShMuhjubj)}(h=``int offset`` buffer offset for fragmented messages (FIXME) h](j )}(h``int offset``h]j)}(hjwh]h int offset}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMvhjqubj')}(hhh]h)}(h-buffer offset for fragmented messages (FIXME)h]h-buffer offset for fragmented messages (FIXME)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMvhjubah}(h]h ]h"]h$]h&]uh1j&hjqubeh}(h]h ]h"]h$]h&]uh1jhjhMvhjubj)}(h&``int dsz`` Total length of user data h](j )}(h ``int dsz``h]j)}(hjh]hint dsz}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMwhjubj')}(hhh]h)}(hTotal length of user datah]hTotal length of user data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMwhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMwhjubj)}(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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMxhjubj')}(hhh]h)}(h Max packet size that can be usedh]h Max packet size that can be used}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMxhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMxhjubj)}(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)}(hj"h]hstruct sk_buff_head *list}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMyhjubj')}(hhh]h)}(h3Buffer or chain of buffers to be returned to callerh]h3Buffer or chain of buffers to be returned to caller}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hMyhj8ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj7hMyhjubeh}(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&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM{hjubh)}(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.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMzhjubh)}(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.chM}hjubh)}(h,message data size or errno: -ENOMEM, -EFAULTh]h,message data size or errno: -ENOMEM, -EFAULT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM~hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_msg_bundleh]j^)}(htipc_msg_bundleh]htipc_msg_bundle}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(h5(struct sk_buff *bskb, struct tipc_msg *msg, u32 max)h](j%)}(hstruct sk_buff *bskbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj#hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j)}jjsbc.tipc_msg_bundleasbuh1hhjubjG)}(h h]h }(hjChhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hbskbh]hbskb}(hj^hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_msg *msgh](j5)}(hj8h]hstruct}(hjwhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjsubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjsubh)}(hhh]j^)}(htipc_msgh]htipc_msg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j?c.tipc_msg_bundleasbuh1hhjsubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjsubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj^)}(hmsgh]hmsg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjsubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hu32 maxh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j?c.tipc_msg_bundleasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hmaxh]hmax}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(hhh]h)}(h6Append contents of a buffer to tail of an existing oneh]h6Append contents of a buffer to tail of an existing one}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhj=hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1j#hhhjhNhNubj)}(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)}(hjbh]h Parameters}(hjdhhhNhNubah}(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.chMhj\ubj)}(hhh](j)}(h8``struct sk_buff *bskb`` the bundle buffer to append to h](j )}(h``struct sk_buff *bskb``h]j)}(hjh]hstruct sk_buff *bskb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hO/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjxubj)}(h0``struct tipc_msg *msg`` message to be appended h](j )}(h``struct tipc_msg *msg``h]j)}(hjh]hstruct tipc_msg *msg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubj')}(hhh]h)}(hmessage to be appendedh]hmessage to be appended}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjxubj)}(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&]uh1j hO/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjxubeh}(h]h ]h"]h$]h&]uh1jhj\ubh)}(h **Return**h]j)}(hj.h]hReturn}(hj0hhhNhNubah}(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.chMhj\ubh)}(h8"true" if bundling has been performed, otherwise "false"h]h@“true” if bundling has been performed, otherwise “false”}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhj\ubeh}(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](jG)}(hjgh]hbool}(hjshhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjohhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjohhhjhMubjX)}(htipc_msg_try_bundleh]j^)}(htipc_msg_try_bundleh]htipc_msg_try_bundle}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjohhhjhMubj)}(hR(struct sk_buff *tskb, struct sk_buff **skb, u32 mss, u32 dnode, bool *new_bundle)h](j%)}(hstruct sk_buff *tskbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_msg_try_bundleasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(htskbh]htskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff **skbh](j5)}(hj8h]hstruct}(hj!hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj.hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj?hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]jc.tipc_msg_try_bundleasbuh1hhjubjG)}(h h]h }(hj]hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hu32 mssh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_try_bundleasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hmssh]hmss}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h u32 dnodeh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_try_bundleasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hdnodeh]hdnode}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hbool *new_bundleh](jG)}(hjgh]hbool}(hj.hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj*ubjG)}(h h]h }(hj;hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj*ubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj^)}(h new_bundleh]h new_bundle}(hjVhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjohhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjkhhhjhMubah}(h]jfah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhhubj)}(hhh]h)}(h+Try to bundle a new message to the last oneh]h+Try to bundle a new message to the last one}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhj}hhubah}(h]h ]h"]h$]h&]uh1jhjhhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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)}(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.chM hjubj)}(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)}(hjh]hstruct sk_buff *tskb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM hjubj')}(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&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM hjubj')}(hhh]h)}(hthe new message skb pointerh]hthe new message skb pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h0``u32 mss`` max message size (header inclusive) h](j )}(h ``u32 mss``h]j)}(hj3h]hu32 mss}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM hj-ubj')}(hhh]h)}(h#max message size (header inclusive)h]h#max message size (header inclusive)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhM hjIubah}(h]h ]h"]h$]h&]uh1j&hj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhM hjubj)}(h/``u32 dnode`` destination node for the message h](j )}(h ``u32 dnode``h]j)}(hjlh]h u32 dnode}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM hjfubj')}(hhh]h)}(h destination node for the messageh]h destination node for the message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hjfubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h;``bool *new_bundle`` if this call made a new bundle or not h](j )}(h``bool *new_bundle``h]j)}(hjh]hbool *new_bundle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM hjubj')}(hhh]h)}(h%if this call made a new bundle or noth]h%if this call made a new bundle or not}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubh)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](jG)}(hjgh]hbool}(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj!hhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMIubjG)}(h h]h }(hj3hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj!hhhj2hMIubjX)}(htipc_msg_extracth]j^)}(htipc_msg_extracth]htipc_msg_extract}(hjEhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjAubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj!hhhj2hMIubj)}(h6(struct sk_buff *skb, struct sk_buff **iskb, int *pos)h](j%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjahhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj]ubjG)}(h h]h }(hjnhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj]ubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjGsbc.tipc_msg_extractasbuh1hhj]ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj]ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjYubj%)}(hstruct sk_buff **iskbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_msg_extractasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hiskbh]hiskb}(hj7hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjYubj%)}(hint *posh](jG)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjLubjG)}(h h]h }(hj^hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjLubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj^)}(hposh]hpos}(hjyhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjLubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjYubeh}(h]h ]h"]h$]h&]hhuh1jhj!hhhj2hMIubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhj2hMIubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hj2hMIhjhhubj)}(hhh]h)}(h(extract bundled inner packet from bufferh]h(extract bundled inner packet from buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMIhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj2hMIubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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)}(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.chMMhjubj)}(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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMJhjubj')}(hhh]h)}(hbuffer to be extracted from.h]hbuffer to be extracted from.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMJhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMJhjubj)}(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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMKhjubj')}(hhh]h)}(h&extracted inner buffer, to be returnedh]h&extracted inner buffer, to be returned}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMKhj3ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj2hMKhjubj)}(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)}(hjVh]hint *pos}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMNhjPubj')}(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}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMLhjlubah}(h]h ]h"]h$]h&]uh1j&hjPubeh}(h]h ]h"]h$]h&]uh1jhjkhMNhjubeh}(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)}(h7true when there is an extracted buffer, otherwise falseh]h7true when there is an extracted buffer, 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](jtipc_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](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMvubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMvubjX)}(htipc_msg_reverseh]j^)}(htipc_msg_reverseh]htipc_msg_reverse}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMvubj)}(h-(u32 own_node, struct sk_buff **skb, int err)h](j%)}(h u32 own_nodeh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_msg_reverseasbuh1hhjubjG)}(h h]h }(hj6hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hown_nodeh]hown_node}(hjDhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubj%)}(hstruct sk_buff **skbh](j5)}(hj8h]hstruct}(hj]hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjYubjG)}(h h]h }(hjjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjYubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj{hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j2c.tipc_msg_reverseasbuh1hhjYubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjYubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubj%)}(hint errh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(herrh]herr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMvubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMvubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMvhjhhubj)}(hhh]h)}(h8swap source and destination addresses and add error codeh]h8swap source and destination addresses and add error code}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMvhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMvubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1j#hhhjhNhNubj)}(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)}(hjBh]h Parameters}(hjDhhhNhNubah}(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.chMzhj<ubj)}(hhh](j)}(h:``u32 own_node`` originating node id for reversed message h](j )}(h``u32 own_node``h]j)}(hjah]h u32 own_node}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMwhj[ubj')}(hhh]h)}(h(originating node id for reversed messageh]h(originating node id for reversed message}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhMwhjwubah}(h]h ]h"]h$]h&]uh1j&hj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhMwhjXubj)}(hT``struct sk_buff **skb`` buffer containing message to be reversed; will be consumed 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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMxhjubj')}(hhh]h)}(h:buffer containing message to be reversed; will be consumedh]h:buffer containing message to be reversed; will be consumed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMxhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMxhjXubj)}(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&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMzhjubj')}(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.chMyhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMzhjXubeh}(h]h ]h"]h$]h&]uh1jhj<ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(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.chM|hj<ubh)}(h true if success, otherwise falseh]h true if success, otherwise false}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chM{hj<ubeh}(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](jG)}(hjgh]hbool}(hjThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjPhhhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMubjG)}(h h]h }(hjbhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjPhhhjahMubjX)}(htipc_msg_lookup_desth]j^)}(htipc_msg_lookup_desth]htipc_msg_lookup_dest}(hjthhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjpubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjPhhhjahMubj)}(h0(struct net *net, struct sk_buff *skb, int *err)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjvsbc.tipc_msg_lookup_destasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]jc.tipc_msg_lookup_destasbuh1hhjubjG)}(h h]h }(hj>hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskbh]hskb}(hjYhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint *errh](jG)}(hinth]hint}(hjrhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjnubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjnubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj^)}(herrh]herr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjnubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjPhhhjahMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjLhhhjahMubah}(h]jGah ](jjeh"]h$]h&]jj)jhuh1j(hjahMhjIhhubj)}(hhh]h)}(h-try to find new destination for named messageh]h-try to find new destination for named message}(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&]uh1jhjIhhhjahMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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&]uh1j hO/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&]uh1j&hjubeh}(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)}(hj?h]hstruct sk_buff *skb}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhj9ubj')}(hhh]h)}(h"the buffer containing the message.h]h"the buffer containing the message.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMhjUubah}(h]h ]h"]h$]h&]uh1j&hj9ubeh}(h]h ]h"]h$]h&]uh1jhjThMhjubj)}(hU``int *err`` error code to be used by caller if lookup fails Does not consume buffer h](j )}(h ``int *err``h]j)}(hjxh]hint *err}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1j hO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjrubj')}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhO/var/lib/git/docbuild/linux/Documentation/networking/tipc:175: ./net/tipc/msg.chMhjubah}(h]h ]h"]h$]h&]uh1j&hjrubeh}(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&]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}(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&]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](jservice_range (C struct)c.service_rangehNtauh1jhjhhhNhNubj$)}(hhh](j))}(h service_rangeh]j/)}(hstruct service_rangeh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKubjX)}(h service_rangeh]j^)}(hj h]h service_range}(hj2hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj.ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj hhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKhjhhubj)}(hhh]h)}(h-container for all bindings of a service rangeh]h-container for all bindings of a service range}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK4hjQhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjljjljjjuh1j#hhhjhNhNubj)}(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}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubh:}(hjthhhNhNubeh}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK8hjpubj)}(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; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK:hjpubh)}(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:181: ./net/tipc/name_table.chKChjpubj)}(hhh](j)}(h$``lower`` service range lower bound h](j )}(h ``lower``h]j)}(hjh]hlower}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK6hjubj')}(hhh]h)}(hservice range lower boundh]hservice range lower bound}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK6hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK6hjubj)}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK7hjubj)}(h.``tree_node`` member of service range RB tree h](j )}(h ``tree_node``h]j)}(hj3h]h tree_node}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK8hj-ubj')}(hhh]h)}(hmember of service range RB treeh]hmember of service range RB tree}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhK8hjIubah}(h]h ]h"]h$]h&]uh1j&hj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhK8hjubj)}(h-``max`` largest 'upper' in this node subtree h](j )}(h``max``h]j)}(hjlh]hmax}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK9hjfubj')}(hhh]h)}(h$largest 'upper' in this node subtreeh]h(largest ‘upper’ in this node subtree}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK9hjubah}(h]h ]h"]h$]h&]uh1j&hjfubeh}(h]h ]h"]h$]h&]uh1jhjhK9hjubj)}(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)}(hjh]h local_publ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK;hjubj')}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK:hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjubj)}(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&]uh1j hV/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)}(hjh]h subscriptions}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKNhjubj')}(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&]uh1j&hjubeh}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKOhjubj)}(h3``rcu`` RCU callback head used for deferred freeingh](j )}(h``rcu``h]j)}(hj=h]hrcu}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKOhj7ubj')}(hhh]h)}(h+RCU callback head used for deferred freeingh]h+RCU callback head used for deferred freeing}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKPhjSubah}(h]h ]h"]h$]h&]uh1j&hj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhKOhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(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]jX)}(hservice_range_foreach_matchh]j^)}(hjh]hservice_range_foreach_match}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKgubah}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKgubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKghjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhjhKgubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubh)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKihjhhubh 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)}(hj#h]hsr}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1j hV/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}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hKihj9ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj8hKihjubj)}(hH``sc`` the pointer to tipc service which holds the service range rbtree h](j )}(h``sc``h]j)}(hj\h]hsc}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKjhjVubj')}(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}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhKjhjrubah}(h]h ]h"]h$]h&]uh1j&hjVubeh}(h]h ]h"]h$]h&]uh1jhjqhKjhjubj)}(hD``start`` beginning of the search range (end >= start) for matching h](j )}(h ``start``h]j)}(hjh]hstart}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKkhjubj')}(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&]uh1hhjhKkhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKkhjubj)}(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&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKmhjubj')}(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&]uh1j&hjubeh}(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](j5)}(hj8h]hstruct}(hj(hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj$hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKxubjG)}(h h]h }(hj6hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj$hhhj5hKxubh)}(hhh]j^)}(h service_rangeh]h service_range}(hjGhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jservice_range_match_firstsbc.service_range_match_firstasbuh1hhj$hhhj5hKxubjG)}(h h]h }(hjhhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj$hhhj5hKxubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj5hKxubjX)}(hservice_range_match_firsth]j^)}(hjeh]hservice_range_match_first}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj$hhhj5hKxubj)}(h'(struct rb_node *n, u32 start, u32 end)h](j%)}(hstruct rb_node *nh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hrb_nodeh]hrb_node}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jcc.service_range_match_firstasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjih]hn}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h u32 starth](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jcc.service_range_match_firstasbuh1hhj ubjG)}(h h]h }(hj2hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj^)}(hstarth]hstart}(hj@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hu32 endh](h)}(hhh]j^)}(hu32h]hu32}(hj\hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]jcc.service_range_match_firstasbuh1hhjUubjG)}(h h]h }(hjzhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjUubj^)}(hendh]hend}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjUubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhj$hhhj5hKxubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj hhhj5hKxubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hj5hKxhjhhubj)}(hhh]h)}(h)find first service range matching a rangeh]h)find first service range matching a range}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKxhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj5hKxubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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&]uh1j hV/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKyhj ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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)}(hj,h]h u32 start}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKzhj&ubj')}(hhh]h)}(h9beginning of the search range (end >= start) for matchingh]h9beginning of the search range (end >= start) for matching}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhKzhjBubah}(h]h ]h"]h$]h&]uh1j&hj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhKzhjubj)}(h@``u32 end`` end of the search range (end >= start) for matching h](j )}(h ``u32 end``h]j)}(hjeh]hu32 end}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chK{hj_ubj')}(hhh]h)}(h3end of the search range (end >= start) for matchingh]h3end of the search range (end >= start) for matching}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhK{hj{ubah}(h]h ]h"]h$]h&]uh1j&hj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhK{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&]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.}(hjhhhNhNubah}(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](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKubh)}(hhh]j^)}(h service_rangeh]h service_range}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jservice_range_match_nextsbc.service_range_match_nextasbuh1hhjhhhjhKubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubjX)}(hservice_range_match_nexth]j^)}(hj"h]hservice_range_match_next}(hjDhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj@ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKubj)}(h'(struct rb_node *n, u32 start, u32 end)h](j%)}(hstruct rb_node *nh](j5)}(hj8h]hstruct}(hj_hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj[ubjG)}(h h]h }(hjlhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj[ubh)}(hhh]j^)}(hrb_nodeh]hrb_node}(hj}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.service_range_match_nextasbuh1hhj[ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj^)}(hjih]hn}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjWubj%)}(h u32 starth](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.service_range_match_nextasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hstarth]hstart}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjWubj%)}(hu32 endh](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.service_range_match_nextasbuh1hhjubjG)}(h h]h }(hj7hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hendh]hend}(hjEhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjWubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKhjhhubj)}(hhh]h)}(h(find next service range matching a rangeh]h(find next service range matching a range}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjlhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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)}(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.chKhjubj)}(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)}(hjh]hstruct rb_node *n}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjubj')}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h@``u32 end`` end of the search range (end >= start) for matching h](j )}(h ``u32 end``h]j)}(hj"h]hu32 end}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hV/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}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hKhj8ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj7hKhjubeh}(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&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjubh)}(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.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKubh)}(hhh]j^)}(h publicationh]h publication}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jtipc_publ_createsbc.tipc_publ_createasbuh1hhjhhhjhKubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubjX)}(htipc_publ_createh]j^)}(hjh]htipc_publ_create}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKubj)}(h=(struct tipc_uaddr *ua, struct tipc_socket_addr *sk, u32 key)h](j%)}(hstruct tipc_uaddr *uah](j5)}(hj8h]hstruct}(hj hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj ubjG)}(h h]h }(hj) hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubh)}(hhh]j^)}(h tipc_uaddrh]h tipc_uaddr}(hj: hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj7 ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj< modnameN classnameNjj)}j]jc.tipc_publ_createasbuh1hhj ubjG)}(h h]h }(hjX hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj)}(hjh]h*}(hjf hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj^)}(huah]hua}(hjs hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubj%)}(hstruct tipc_socket_addr *skh](j5)}(hj8h]hstruct}(hj hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubh)}(hhh]j^)}(htipc_socket_addrh]htipc_socket_addr}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.tipc_publ_createasbuh1hhj ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj^)}(hskh]hsk}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubj%)}(hu32 keyh](h)}(hhh]j^)}(hu32h]hu32}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.tipc_publ_createasbuh1hhj ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj^)}(hkeyh]hkey}(hj+ hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKhjhhubj)}(hhh]h)}(hcreate a publication structureh]hcreate a publication structure}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjR hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjm jjm jjjuh1j#hhhjhNhNubj)}(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)}(hjw h]h Parameters}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjq 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)}(hj h]hstruct tipc_uaddr *ua}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhj ubj')}(hhh]h)}(h(the service range the user is binding toh]h(the service range the user is binding to}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j&hj 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&]uh1j hV/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&]uh1j&hj 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&]uh1j hV/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&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubeh}(h]h ]h"]h$]h&]uh1jhjq 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](j5)}(hj8h]hstruct}(hjb hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj^ hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKubjG)}(h h]h }(hjp hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj^ hhhjo hKubh)}(hhh]j^)}(h tipc_serviceh]h tipc_service}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj~ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jtipc_service_createsbc.tipc_service_createasbuh1hhj^ hhhjo hKubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj^ hhhjo hKubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ hhhjo hKubjX)}(htipc_service_createh]j^)}(hj h]htipc_service_create}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj^ hhhjo hKubj)}(h((struct net *net, struct tipc_uaddr *ua)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubh)}(hhh]j^)}(hneth]hnet}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.tipc_service_createasbuh1hhj ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj)}(hjh]h*}(hj& hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj^)}(hneth]hnet}(hj3 hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubj%)}(hstruct tipc_uaddr *uah](j5)}(hj8h]hstruct}(hjL hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjH ubjG)}(h h]h }(hjY hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjH ubh)}(hhh]j^)}(h tipc_uaddrh]h tipc_uaddr}(hjj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjg ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjl modnameN classnameNjj)}j]j c.tipc_service_createasbuh1hhjH ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjH ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH ubj^)}(huah]hua}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjH ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj ubeh}(h]h ]h"]h$]h&]hhuh1jhj^ hhhjo hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjZ hhhjo hKubah}(h]jU ah ](jjeh"]h$]h&]jj)jhuh1j(hjo hKhjW hhubj)}(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&]uh1jhjW hhhjo hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1j#hhhjhNhNubj)}(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&]uh1j hV/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&]uh1j&hj 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)}(hjG h]hstruct tipc_uaddr *ua}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chKhjA 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&]uh1j&hjA ubeh}(h]h ]h"]h$]h&]uh1jhj\ hKhj 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&]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]hnode' 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)}(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.chM+hjWubj)}(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&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM(hjvubj')}(hhh]h)}(hnetwork namespaceh]hnetwork namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM(hjubah}(h]h ]h"]h$]h&]uh1j&hjvubeh}(h]h ]h"]h$]h&]uh1jhjhM(hjsubj)}(h5``struct tipc_uaddr *ua`` service address to look up 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&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM)hjubj')}(hhh]h)}(hservice address to look uph]hservice address to look up}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM)hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM)hjsubj)}(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&]uh1j hV/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM*hjsubeh}(h]h ]h"]h$]h&]uh1jhjWubh)}(h**Description**h]j)}(hj)h]h Description}(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.chM,hjWubh)}(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.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM+hjWubh)}(hOn exit:h]hOn exit:}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM.hjWubj)}(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’.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM0hj`ubah}(h]h ]h"]h$]h&]uh1jhj]ubj)}(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’.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM2hjyubah}(h]h ]h"]h$]h&]uh1jhj]ubj)}(h If lookup fails, return 'false' h]h)}(hIf lookup fails, return 'false'h]h#If lookup fails, return ‘false’}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM4hjubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]jjuh1jhjrhM0hjWubh)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM6hjWubeh}(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](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_nametbl_withdrawh]j^)}(htipc_nametbl_withdrawh]htipc_nametbl_withdraw}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(hN(struct net *net, struct tipc_uaddr *ua, struct tipc_socket_addr *sk, u32 key)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj*hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hneth]hnet}(hj;hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j)}jjsbc.tipc_nametbl_withdrawasbuh1hhjubjG)}(h h]h }(hj[hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hneth]hnet}(hjvhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_uaddr *uah](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_uaddrh]h tipc_uaddr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jWc.tipc_nametbl_withdrawasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(huah]hua}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_socket_addr *skh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(htipc_socket_addrh]htipc_socket_addr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jWc.tipc_nametbl_withdrawasbuh1hhjubjG)}(h h]h }(hj;hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskh]hsk}(hjVhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hu32 keyh](h)}(hhh]j^)}(hu32h]hu32}(hjrhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]jWc.tipc_nametbl_withdrawasbuh1hhjkubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjkubj^)}(hkeyh]hkey}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjkubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(hhh]h)}(hwithdraw a service bindingh]hwithdraw a service binding}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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)}(hj h]hstruct net *net}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj')}(hhh]h)}(hnetwork namespaceh]hnetwork namespace}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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)}(hjBh]hstruct tipc_uaddr *ua}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhj<ubj')}(hhh]h)}(h#service address/range being unboundh]h#service address/range being unbound}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjXubah}(h]h ]h"]h$]h&]uh1j&hj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhMhjubj)}(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}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjuubj')}(hhh]h)}(h(address of the socket being unbound fromh]h(address of the socket being unbound from}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjuubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubj')}(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.chMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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_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](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM:ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj hhhjhM:ubjX)}(htipc_nametbl_subscribeh]j^)}(htipc_nametbl_subscribeh]htipc_nametbl_subscribe}(hj.hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj*ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj hhhjhM:ubj)}(h(struct tipc_subscription *sub)h]j%)}(hstruct tipc_subscription *subh](j5)}(hj8h]hstruct}(hjJhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjFubjG)}(h h]h }(hjWhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjFubh)}(hhh]j^)}(htipc_subscriptionh]htipc_subscription}(hjhhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j)}jj0sbc.tipc_nametbl_subscribeasbuh1hhjFubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj^)}(hsubh]hsub}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjFubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjBubah}(h]h ]h"]h$]h&]hhuh1jhj hhhjhM:ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhM:ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhM:hjhhubj)}(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.chM:hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM:ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM@hjubj')}(hhh]h)}(hsubscription to addh]hsubscription to add}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chM;hj$ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(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_nametbl_unsubscribe (C function)c.tipc_nametbl_unsubscribehNtauh1jhjhhhNhNubj$)}(hhh](j))}(h=void tipc_nametbl_unsubscribe (struct tipc_subscription *sub)h]j/)}(hhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hneth]hnet}(hjYhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_service *sch](j5)}(hj8h]hstruct}(hjrhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjnubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjnubh)}(hhh]j^)}(h tipc_serviceh]h tipc_service}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j:c.tipc_service_deleteasbuh1hhjnubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjnubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj^)}(hsch]hsc}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjnubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1j#hhhjhNhNubj)}(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)}(hj4h]hstruct net *net}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhj.ubj')}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjJubah}(h]h ]h"]h$]h&]uh1j&hj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMhj+ubj)}(h2``struct tipc_service *sc`` tipc_service to deleteh](j )}(h``struct tipc_service *sc``h]j)}(hjmh]hstruct tipc_service *sc}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjgubj')}(hhh]h)}(htipc_service to deleteh]htipc_service to delete}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:181: ./net/tipc/name_table.chMhjubah}(h]h ]h"]h$]h&]uh1j&hjgubeh}(h]h ]h"]h$]h&]uh1jhjhMhj+ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jpubl_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](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK-ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhK-ubjX)}(h publ_to_itemh]j^)}(h publ_to_itemh]h publ_to_item}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhK-ubj)}(h-(struct distr_item *i, struct publication *p)h](j%)}(hstruct distr_item *ih](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h distr_itemh]h distr_item}(hj"hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jjsbc.publ_to_itemasbuh1hhjubjG)}(h h]h }(hjBhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hih]hi}(hj]hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct publication *ph](j5)}(hj8h]hstruct}(hjvhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjrubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrubh)}(hhh]j^)}(h publicationh]h publication}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j>c.publ_to_itemasbuh1hhjrubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj^)}(hjh]hp}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjrubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhK-ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhK-ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhK-hjhhubj)}(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&]uh1jhjhhhjhK-ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(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)}(hj7h]hstruct distr_item *i}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK/hj1ubj')}(hhh]h)}(hlocation of item in the messageh]hlocation of item in the message}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhK/hjMubah}(h]h ]h"]h$]h&]uh1j&hj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhK/hj.ubj)}(h*``struct publication *p`` publication infoh](j )}(h``struct publication *p``h]j)}(hjph]hstruct publication *p}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK1hjjubj')}(hhh]h)}(hpublication infoh]hpublication info}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK.hjubah}(h]h ]h"]h$]h&]uh1j&hjjubeh}(h]h ]h"]h$]h&]uh1jhjhK1hj.ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jnamed_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](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK;ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhK;ubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jnamed_prepare_bufsbc.named_prepare_bufasbuh1hhjhhhjhK;ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhK;ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK;ubjX)}(hnamed_prepare_bufh]j^)}(hj h]hnamed_prepare_buf}(hj) hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj% ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhK;ubj)}(h/(struct net *net, u32 type, u32 size, u32 dest)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjD hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj@ ubjG)}(h h]h }(hjQ hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj@ ubh)}(hhh]j^)}(hneth]hnet}(hjb hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj_ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjd modnameN classnameNjj)}j]j c.named_prepare_bufasbuh1hhj@ ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj@ ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ ubj^)}(hneth]hnet}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj@ ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj< ubj%)}(hu32 typeh](h)}(hhh]j^)}(hu32h]hu32}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.named_prepare_bufasbuh1hhj ubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj^)}(htypeh]htype}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj< ubj%)}(hu32 sizeh](h)}(hhh]j^)}(hu32h]hu32}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j c.named_prepare_bufasbuh1hhj ubjG)}(h h]h }(hj!hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj^)}(hsizeh]hsize}(hj+!hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj< ubj%)}(hu32 desth](h)}(hhh]j^)}(hu32h]hu32}(hjG!hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjD!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjI!modnameN classnameNjj)}j]j c.named_prepare_bufasbuh1hhj@!ubjG)}(h h]h }(hje!hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj@!ubj^)}(hdesth]hdest}(hjs!hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj@!ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj< ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhK;ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhK;ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhK;hjhhubj)}(hhh]h)}(h+allocate & initialize a publication messageh]h+allocate & initialize a publication message}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK;hj!hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK;ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1j#hhhjhNhNubj)}(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)}(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.chK?hj!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&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKhjJ"ubj')}(hhh]h)}(h payload sizeh]h payload size}(hji"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje"hK>hjf"ubah}(h]h ]h"]h$]h&]uh1j&hjJ"ubeh}(h]h ]h"]h$]h&]uh1jhje"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&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chK?hj"ubj')}(hhh]h)}(hdestination nodeh]hdestination node}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hK?hj"ubah}(h]h ]h"]h$]h&]uh1j&hj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hK?hj!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&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKAhj!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.chK@hj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_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](j5)}(hj8h]hstruct}(hj #hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj#hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKTubjG)}(h h]h }(hj#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj#hhhj#hKTubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj(#hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj%#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*#modnameN classnameNjj)}j]j)}jtipc_named_publishsbc.tipc_named_publishasbuh1hhj#hhhj#hKTubjG)}(h h]h }(hjI#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj#hhhj#hKTubj)}(hjh]h*}(hjW#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhj#hKTubjX)}(htipc_named_publishh]j^)}(hjF#h]htipc_named_publish}(hjh#hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjd#ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj#hhhj#hKTubj)}(h((struct net *net, struct publication *p)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj#hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj#ubjG)}(h h]h }(hj#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj#ubh)}(hhh]j^)}(hneth]hnet}(hj#hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]jD#c.tipc_named_publishasbuh1hhj#ubjG)}(h h]h }(hj#hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj^)}(hneth]hnet}(hj#hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj{#ubj%)}(hstruct publication *ph](j5)}(hj8h]hstruct}(hj#hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj#ubjG)}(h h]h }(hj$hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj#ubh)}(hhh]j^)}(h publicationh]h publication}(hj$hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]jD#c.tipc_named_publishasbuh1hhj#ubjG)}(h h]h }(hj/$hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj#ubj)}(hjh]h*}(hj=$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj^)}(hjh]hp}(hjJ$hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj{#ubeh}(h]h ]h"]h$]h&]hhuh1jhj#hhhj#hKTubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj#hhhj#hKTubah}(h]j"ah ](jjeh"]h$]h&]jj)jhuh1j(hj#hKThj"hhubj)}(hhh]h)}(h5tell other nodes about a new publication by this nodeh]h5tell other nodes about a new publication by this node}(hjs$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKThjp$hhubah}(h]h ]h"]h$]h&]uh1jhj"hhhj#hKTubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$jj$jjjuh1j#hhhjhNhNubj)}(hw**Parameters** ``struct net *net`` the associated network namespace ``struct publication *p`` the new 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.chKXhj$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&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKUhj$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&]uh1j&hj$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&]uh1j hV/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&]uh1j&hj$ubeh}(h]h ]h"]h$]h&]uh1jhj%hKWhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$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](j5)}(hj8h]hstruct}(hjG%hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjC%hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKrubjG)}(h h]h }(hjU%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjC%hhhjT%hKrubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjf%hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjc%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjh%modnameN classnameNjj)}j]j)}jtipc_named_withdrawsbc.tipc_named_withdrawasbuh1hhjC%hhhjT%hKrubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjC%hhhjT%hKrubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC%hhhjT%hKrubjX)}(htipc_named_withdrawh]j^)}(hj%h]htipc_named_withdraw}(hj%hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj%ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjC%hhhjT%hKrubj)}(h((struct net *net, struct publication *p)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj%hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj%ubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj%ubh)}(hhh]j^)}(hneth]hnet}(hj%hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j%c.tipc_named_withdrawasbuh1hhj%ubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj%ubj)}(hjh]h*}(hj &hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj^)}(hneth]hnet}(hj&hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj%ubj%)}(hstruct publication *ph](j5)}(hj8h]hstruct}(hj1&hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj-&ubjG)}(h h]h }(hj>&hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-&ubh)}(hhh]j^)}(h publicationh]h publication}(hjO&hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjL&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQ&modnameN classnameNjj)}j]j%c.tipc_named_withdrawasbuh1hhj-&ubjG)}(h h]h }(hjm&hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-&ubj)}(hjh]h*}(hj{&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-&ubj^)}(hjh]hp}(hj&hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj-&ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj%ubeh}(h]h ]h"]h$]h&]hhuh1jhjC%hhhjT%hKrubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj?%hhhjT%hKrubah}(h]j:%ah ](jjeh"]h$]h&]jj)jhuh1j(hjT%hKrhj<%hhubj)}(hhh]h)}(h;tell other nodes about a withdrawn publication by this nodeh]h;tell other nodes about a withdrawn 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.chKrhj&hhubah}(h]h ]h"]h$]h&]uh1jhj<%hhhjT%hKrubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1j#hhhjhNhNubj)}(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&]uh1j hV/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&]uh1j&hj&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&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKuhj%'ubj')}(hhh]h)}(hthe withdrawn publicationh]hthe withdrawn publication}(hjD'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKthjA'ubah}(h]h ]h"]h$]h&]uh1j&hj%'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](jnamed_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](jG)}(hvoidh]hvoid}(hj'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj'hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKubjG)}(h h]h }(hj'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj'hhhj'hKubjX)}(hnamed_distributeh]j^)}(hnamed_distributeh]hnamed_distribute}(hj'hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj'ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj'hhhj'hKubj)}(hY(struct net *net, struct sk_buff_head *list, u32 dnode, struct list_head *pls, u16 seqno)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj'hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj'ubjG)}(h h]h }(hj'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj'ubh)}(hhh]j^)}(hneth]hnet}(hj'hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jj'sbc.named_distributeasbuh1hhj'ubjG)}(h h]h }(hj(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj'ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj^)}(hneth]hnet}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj'ubj%)}(hstruct sk_buff_head *listh](j5)}(hj8h]hstruct}(hj4(hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj0(ubjG)}(h h]h }(hjA(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj0(ubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjR(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjO(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjT(modnameN classnameNjj)}j]j'c.named_distributeasbuh1hhj0(ubjG)}(h h]h }(hjp(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj0(ubj)}(hjh]h*}(hj~(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0(ubj^)}(hlisth]hlist}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj0(ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj'ubj%)}(h u32 dnodeh](h)}(hhh]j^)}(hu32h]hu32}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j'c.named_distributeasbuh1hhj(ubjG)}(h h]h }(hj(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj(ubj^)}(hdnodeh]hdnode}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj'ubj%)}(hstruct list_head *plsh](j5)}(hj8h]hstruct}(hj(hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj(ubjG)}(h h]h }(hj(hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj(ubh)}(hhh]j^)}(h list_headh]h list_head}(hj )hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj )modnameN classnameNjj)}j]j'c.named_distributeasbuh1hhj(ubjG)}(h h]h }(hj()hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj(ubj)}(hjh]h*}(hj6)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj^)}(hplsh]hpls}(hjC)hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj'ubj%)}(h u16 seqnoh](h)}(hhh]j^)}(hu16h]hu16}(hj_)hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj\)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetja)modnameN classnameNjj)}j]j'c.named_distributeasbuh1hhjX)ubjG)}(h h]h }(hj})hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjX)ubj^)}(hseqnoh]hseqno}(hj)hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjX)ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj'ubeh}(h]h ]h"]h$]h&]hhuh1jhj'hhhj'hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj}'hhhj'hKubah}(h]jx'ah ](jjeh"]h$]h&]jj)jhuh1j(hj'hKhjz'hhubj)}(hhh]h)}(h7prepare name info for bulk distribution to another nodeh]h7prepare name info for bulk distribution to another node}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKhj)hhubah}(h]h ]h"]h$]h&]uh1jhjz'hhhj'hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj)jj)jjjuh1j#hhhjhNhNubj)}(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&]uh1j hV/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&]uh1j&hj)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}(hj1*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-*ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chKhj)*ubj')}(hhh]h)}(h6h]h bool *open}(hj@6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<6ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMthj86ubj')}(hhh]h)}(h"last bulk msg was received (FIXME)h]h"last bulk msg was received (FIXME)}(hjW6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMshjT6ubah}(h]h ]h"]h$]h&]uh1j&hj86ubeh}(h]h ]h"]h$]h&]uh1jhjS6hMthj5ubeh}(h]h ]h"]h$]h&]uh1jhjn5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_named_reinit (C function)c.tipc_named_reinithNtauh1jhjhhhNhNubj$)}(hhh](j))}(h(void tipc_named_reinit (struct net *net)h]j/)}(h'void tipc_named_reinit(struct net *net)h](jG)}(hvoidh]hvoid}(hj6hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6hhhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMubjG)}(h h]h }(hj6hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6hhhj6hMubjX)}(htipc_named_reinith]j^)}(htipc_named_reinith]htipc_named_reinit}(hj6hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj6ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj6hhhj6hMubj)}(h(struct net *net)h]j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj6hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj6ubjG)}(h h]h }(hj6hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6ubh)}(hhh]j^)}(hneth]hnet}(hj6hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jj6sbc.tipc_named_reinitasbuh1hhj6ubjG)}(h h]h }(hj7hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6ubj)}(hjh]h*}(hj!7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj^)}(hneth]hnet}(hj.7hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj6ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj6ubah}(h]h ]h"]h$]h&]hhuh1jhj6hhhj6hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj6hhhj6hMubah}(h]j6ah ](jjeh"]h$]h&]jj)jhuh1j(hj6hMhj6hhubj)}(hhh]h)}(h re-initialize local publicationsh]h re-initialize local publications}(hjX7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMhjU7hhubah}(h]h ]h"]h$]h&]uh1jhj6hhhj6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjp7jjp7jjjuh1j#hhhjhNhNubj)}(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)}(hjz7h]h Parameters}(hj|7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx7ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMhjt7ubj)}(hhh]j)}(h5``struct net *net`` the associated network namespace h](j )}(h``struct net *net``h]j)}(hj7h]hstruct net *net}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/networking/tipc:184: ./net/tipc/name_distr.chMhj7ubj')}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1j&hj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhjt7ubh)}(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.chMhjt7ubh)}(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.chMhjt7ubeh}(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}(hj 8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_node (C struct) c.tipc_nodehNtauh1jhj8hhhNhNubj$)}(hhh](j))}(h tipc_nodeh]j/)}(hstruct tipc_nodeh](j5)}(hj8h]hstruct}(hj28hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj.8hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKubjG)}(h h]h }(hj@8hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj.8hhhj?8hKubjX)}(h tipc_nodeh]j^)}(hj,8h]h tipc_node}(hjR8hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjN8ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj.8hhhj?8hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj*8hhhj?8hKubah}(h]j%8ah ](jjeh"]h$]h&]jj)jhuh1j(hj?8hKhj'8hhubj)}(hhh]h)}(hTIPC node structureh]hTIPC node structure}(hjt8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKShjq8hhubah}(h]h ]h"]h$]h&]uh1jhj'8hhhj?8hKubeh}(h]h ](jstructeh"]h$]h&]jjjj8jj8jjjuh1j#hhhj8hNhNubj)}(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}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubh:}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKWhj8ubj)}(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; };}hj8sbah}(h]h ]h"]h$]h&]hhuh1jhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKYhj8ubh)}(h **Members**h]j)}(hj8h]hMembers}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chK|hj8ubj)}(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&]uh1j hP/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&]uh1j&hj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hKUhj8ubj)}(h*``kref`` reference counter to node object h](j )}(h``kref``h]j)}(hj9h]hkref}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKVhj9ubj')}(hhh]h)}(h reference counter to node objecth]h reference counter to node object}(hj39hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/9hKVhj09ubah}(h]h ]h"]h$]h&]uh1j&hj9ubeh}(h]h ]h"]h$]h&]uh1jhj/9hKVhj8ubj)}(h.``lock`` rwlock governing access to structure h](j )}(h``lock``h]j)}(hjS9h]hlock}(hjU9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ9ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKWhjM9ubj')}(hhh]h)}(h$rwlock governing access to structureh]h$rwlock governing access to structure}(hjl9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh9hKWhji9ubah}(h]h ]h"]h$]h&]uh1j&hjM9ubeh}(h]h ]h"]h$]h&]uh1jhjh9hKWhj8ubj)}(h%``net`` the applicable net namespace h](j )}(h``net``h]j)}(hj9h]hnet}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKXhj9ubj')}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKXhj9ubah}(h]h ]h"]h$]h&]uh1j&hj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hKXhj8ubj)}(h8``hash`` links to adjacent nodes in unsorted hash chain h](j )}(h``hash``h]j)}(hj9h]hhash}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKYhj9ubj')}(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&]uh1j&hj9ubeh}(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}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKZhj9ubj')}(hhh]h)}(hh]hkeepalive_intv}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1j hP/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&]uh1j&hj=ubeh}(h]h ]h"]h$]h&]uh1jhj>hKmhj8ubj)}(h!``timer`` node's keepalive timer h](j )}(h ``timer``h]j)}(hj9>h]htimer}(hj;>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7>ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKlhj3>ubj')}(hhh]h)}(hnode's keepalive timerh]hnode’s keepalive timer}(hjR>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjN>hKlhjO>ubah}(h]h ]h"]h$]h&]uh1j&hj3>ubeh}(h]h ]h"]h$]h&]uh1jhjN>hKlhj8ubj)}(h!``rcu`` rcu struct for tipc_node h](j )}(h``rcu``h]j)}(hjr>h]hrcu}(hjt>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp>ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKnhjl>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&]uh1j&hjl>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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKohj>ubj')}(hhh]h)}(h+indicates the time for deleting a down nodeh]h+indicates the time for deleting a down node}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hKohj>ubah}(h]h ]h"]h$]h&]uh1j&hj>ubeh}(h]h ]h"]h$]h&]uh1jhj>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&]uh1j hP/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&]uh1j&hj>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&]uh1j hP/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)}(hj6?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2?hKqhj3?ubah}(h]h ]h"]h$]h&]uh1j&hj?ubeh}(h]h ]h"]h$]h&]uh1jhj2?hKqhj8ubj)}(h``crypto_rx`` RX crypto handlerh](j )}(h ``crypto_rx``h]j)}(hjV?h]h crypto_rx}(hjX?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT?ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKqhjP?ubj')}(hhh]h)}(hRX crypto handlerh]hRX crypto handler}(hjo?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chKrhjl?ubah}(h]h ]h"]h$]h&]uh1j&hjP?ubeh}(h]h ]h"]h$]h&]uh1jhjk?hKqhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_node_crypto_rx (C function)c.tipc_node_crypto_rxhNtauh1jhj8hhhNhNubj$)}(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](j5)}(hj8h]hstruct}(hj?hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj?hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubjG)}(h h]h }(hj?hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj?hhhj?hMubh)}(hhh]j^)}(h tipc_cryptoh]h tipc_crypto}(hj?hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jtipc_node_crypto_rxsbc.tipc_node_crypto_rxasbuh1hhj?hhhj?hMubjG)}(h h]h }(hj?hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj?hhhj?hMubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhhj?hMubjX)}(htipc_node_crypto_rxh]j^)}(hj?h]htipc_node_crypto_rx}(hj@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj @ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj?hhhj?hMubj)}(h(struct tipc_node *__n)h]j%)}(hstruct tipc_node *__nh](j5)}(hj8h]hstruct}(hj*@hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj&@ubjG)}(h h]h }(hj7@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&@ubh)}(hhh]j^)}(h tipc_nodeh]h tipc_node}(hjH@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjE@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJ@modnameN classnameNjj)}j]j?c.tipc_node_crypto_rxasbuh1hhj&@ubjG)}(h h]h }(hjf@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&@ubj)}(hjh]h*}(hjt@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&@ubj^)}(h__nh]h__n}(hj@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj&@ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj"@ubah}(h]h ]h"]h$]h&]hhuh1jhj?hhhj?hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj?hhhj?hMubah}(h]j?ah ](jjeh"]h$]h&]jj)jhuh1j(hj?hMhj?hhubj)}(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&]uh1jhj?hhhj?hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@jj@jjjuh1j#hhhj8hNhNubj)}(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.chMhj@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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj@ubj')}(hhh]h)}(htarget tipc_nodeh]htarget tipc_node}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjAubah}(h]h ]h"]h$]h&]uh1j&hj@ubeh}(h]h ]h"]h$]h&]uh1jhjAhMhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubh)}(h**Note**h]j)}(hj'Ah]hNote}(hj)AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Aubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj@ubh)}(h$node ref counter must be held first!h]h$node ref counter must be held first!}(hj=AhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j __tipc_node_link_up (C function)c.__tipc_node_link_uphNtauh1jhj8hhhNhNubj$)}(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](jG)}(hvoidh]hvoid}(hjlAhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhAhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMQubjG)}(h h]h }(hj{AhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhAhhhjzAhMQubjX)}(h__tipc_node_link_uph]j^)}(h__tipc_node_link_uph]h__tipc_node_link_up}(hjAhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjAubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhAhhhjzAhMQubj)}(h@(struct tipc_node *n, int bearer_id, struct sk_buff_head *xmitq)h](j%)}(hstruct tipc_node *nh](j5)}(hj8h]hstruct}(hjAhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjAubjG)}(h h]h }(hjAhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjAubh)}(hhh]j^)}(h tipc_nodeh]h tipc_node}(hjAhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j)}jjAsbc.__tipc_node_link_upasbuh1hhjAubjG)}(h h]h }(hjAhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj^)}(hjih]hn}(hjBhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjAubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjAubj%)}(h int bearer_idh](jG)}(hinth]hint}(hjBhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjBubjG)}(h h]h }(hj(BhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjBubj^)}(h bearer_idh]h bearer_id}(hj6BhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjBubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjAubj%)}(hstruct sk_buff_head *xmitqh](j5)}(hj8h]hstruct}(hjOBhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjKBubjG)}(h h]h }(hj\BhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjKBubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjmBhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjoBmodnameN classnameNjj)}j]jAc.__tipc_node_link_upasbuh1hhjKBubjG)}(h h]h }(hjBhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjKBubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKBubj^)}(hxmitqh]hxmitq}(hjBhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjKBubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjAubeh}(h]h ]h"]h$]h&]hhuh1jhjhAhhhjzAhMQubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjdAhhhjzAhMQubah}(h]j_Aah ](jjeh"]h$]h&]jj)jhuh1j(hjzAhMQhjaAhhubj)}(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&]uh1jhjaAhhhjzAhMQubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1j#hhhj8hNhNubj)}(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)}(hjCh]hstruct tipc_node *n}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMRhj Cubj')}(hhh]h)}(htarget tipc_nodeh]htarget tipc_node}(hj*ChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ChMRhj'Cubah}(h]h ]h"]h$]h&]uh1j&hj Cubeh}(h]h ]h"]h$]h&]uh1jhj&ChMRhjCubj)}(h#``int bearer_id`` id of the bearer h](j )}(h``int bearer_id``h]j)}(hjJCh]h int bearer_id}(hjLChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHCubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMShjDCubj')}(hhh]h)}(hid of the bearerh]hid of the bearer}(hjcChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ChMShj`Cubah}(h]h ]h"]h$]h&]uh1j&hjDCubeh}(h]h ]h"]h$]h&]uh1jhj_ChMShjCubj)}(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)}(hjCh]hstruct sk_buff_head *xmitq}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMUhj}Cubj')}(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.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMThjCubah}(h]h ]h"]h$]h&]uh1j&hj}Cubeh}(h]h ]h"]h$]h&]uh1jhjChMUhjCubeh}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_node_link_up (C function)c.tipc_node_link_uphNtauh1jhj8hhhNhNubj$)}(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](jG)}(hvoidh]hvoid}(hjChhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjChhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubjG)}(h h]h }(hjChhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjChhhjChMubjX)}(htipc_node_link_uph]j^)}(htipc_node_link_uph]htipc_node_link_up}(hjChhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjCubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjChhhjChMubj)}(h@(struct tipc_node *n, int bearer_id, struct sk_buff_head *xmitq)h](j%)}(hstruct tipc_node *nh](j5)}(hj8h]hstruct}(hjDhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjDubjG)}(h h]h }(hj'DhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjDubh)}(hhh]j^)}(h tipc_nodeh]h tipc_node}(hj8DhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj5Dubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:DmodnameN classnameNjj)}j]j)}jjDsbc.tipc_node_link_upasbuh1hhjDubjG)}(h h]h }(hjXDhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjDubj)}(hjh]h*}(hjfDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj^)}(hjih]hn}(hjsDhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjDubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjDubj%)}(h int bearer_idh](jG)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjDubjG)}(h h]h }(hjDhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjDubj^)}(h bearer_idh]h bearer_id}(hjDhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjDubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjDubj%)}(hstruct sk_buff_head *xmitqh](j5)}(hj8h]hstruct}(hjDhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjDubjG)}(h h]h }(hjDhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjDubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjDhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]jTDc.tipc_node_link_upasbuh1hhjDubjG)}(h h]h }(hjDhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjDubj)}(hjh]h*}(hj EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj^)}(hxmitqh]hxmitq}(hjEhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjDubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjDubeh}(h]h ]h"]h$]h&]hhuh1jhjChhhjChMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjChhhjChMubah}(h]jCah ](jjeh"]h$]h&]jj)jhuh1j(hjChMhjChhubj)}(hhh]h)}(hhandle addition of linkh]hhandle addition of link}(hjAEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj>Ehhubah}(h]h ]h"]h$]h&]uh1jhjChhhjChMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYEjjYEjjjuh1j#hhhj8hNhNubj)}(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)}(hjcEh]h Parameters}(hjeEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaEubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj]Eubj)}(hhh](j)}(h)``struct tipc_node *n`` target tipc_node h](j )}(h``struct tipc_node *n``h]j)}(hjEh]hstruct tipc_node *n}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj|Eubj')}(hhh]h)}(htarget tipc_nodeh]htarget tipc_node}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjEubah}(h]h ]h"]h$]h&]uh1j&hj|Eubeh}(h]h ]h"]h$]h&]uh1jhjEhMhjyEubj)}(h#``int bearer_id`` id of the bearer h](j )}(h``int bearer_id``h]j)}(hjEh]h int bearer_id}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjEubj')}(hhh]h)}(hid of the bearerh]hid of the bearer}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjEubah}(h]h ]h"]h$]h&]uh1j&hjEubeh}(h]h ]h"]h$]h&]uh1jhjEhMhjyEubj)}(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&]uh1j hP/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}(hj FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj FhMhj Fubah}(h]h ]h"]h$]h&]uh1j&hjEubeh}(h]h ]h"]h$]h&]uh1jhj FhMhjyEubeh}(h]h ]h"]h$]h&]uh1jhj]Eubh)}(h**Description**h]j)}(hj/Fh]h Description}(hj1FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-Fubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj]Eubh)}(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.}(hjEFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj]Eubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$tipc_node_link_failover (C function)c.tipc_node_link_failoverhNtauh1jhj8hhhNhNubj$)}(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](jG)}(hvoidh]hvoid}(hjtFhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjpFhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubjG)}(h h]h }(hjFhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjpFhhhjFhMubjX)}(htipc_node_link_failoverh]j^)}(htipc_node_link_failoverh]htipc_node_link_failover}(hjFhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjFubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjpFhhhjFhMubj)}(h](struct tipc_node *n, struct tipc_link *l, struct tipc_link *tnl, struct sk_buff_head *xmitq)h](j%)}(hstruct tipc_node *nh](j5)}(hj8h]hstruct}(hjFhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjFubjG)}(h h]h }(hjFhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjFubh)}(hhh]j^)}(h tipc_nodeh]h tipc_node}(hjFhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]j)}jjFsbc.tipc_node_link_failoverasbuh1hhjFubjG)}(h h]h }(hjFhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjFubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj^)}(hjih]hn}(hj GhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjFubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjFubj%)}(hstruct tipc_link *lh](j5)}(hj8h]hstruct}(hj"GhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjGubjG)}(h h]h }(hj/GhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hj@GhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj=Gubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBGmodnameN classnameNjj)}j]jFc.tipc_node_link_failoverasbuh1hhjGubjG)}(h h]h }(hj^GhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGubj)}(hjh]h*}(hjlGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj^)}(hjh]hl}(hjyGhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjGubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjFubj%)}(hstruct tipc_link *tnlh](j5)}(hj8h]hstruct}(hjGhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjGubjG)}(h h]h }(hjGhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGubh)}(hhh]j^)}(h tipc_linkh]h tipc_link}(hjGhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]jFc.tipc_node_link_failoverasbuh1hhjGubjG)}(h h]h }(hjGhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj^)}(htnlh]htnl}(hjGhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjGubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjFubj%)}(hstruct sk_buff_head *xmitqh](j5)}(hj8h]hstruct}(hjHhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjGubjG)}(h h]h }(hjHhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjHhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!HmodnameN classnameNjj)}j]jFc.tipc_node_link_failoverasbuh1hhjGubjG)}(h h]h }(hj=HhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjGubj)}(hjh]h*}(hjKHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj^)}(hxmitqh]hxmitq}(hjXHhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjGubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjFubeh}(h]h ]h"]h$]h&]hhuh1jhjpFhhhjFhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjlFhhhjFhMubah}(h]jgFah ](jjeh"]h$]h&]jj)jhuh1j(hjFhMhjiFhhubj)}(hhh]h)}(h&start failover in case "half-failover"h]h*start failover in case “half-failover”}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjHhhubah}(h]h ]h"]h$]h&]uh1jhjiFhhhjFhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjjjuh1j#hhhj8hNhNubj)}(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)}(hjHh]h Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjHubj)}(hhh](j)}(h,``struct tipc_node *n`` tipc node structure h](j )}(h``struct tipc_node *n``h]j)}(hjHh]hstruct tipc_node *n}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjHubj')}(hhh]h)}(htipc node structureh]htipc node structure}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1j&hjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjHubj)}(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&]uh1j hP/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)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjIubah}(h]h ]h"]h$]h&]uh1j&hjHubeh}(h]h ]h"]h$]h&]uh1jhjIhMhjHubj)}(h&``struct tipc_link *tnl`` tunnel link h](j )}(h``struct tipc_link *tnl``h]j)}(hj5Ih]hstruct tipc_link *tnl}(hj7IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3Iubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj/Iubj')}(hhh]h)}(h tunnel linkh]h tunnel link}(hjNIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJIhMhjKIubah}(h]h ]h"]h$]h&]uh1j&hj/Iubeh}(h]h ]h"]h$]h&]uh1jhjJIhMhjHubj)}(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)}(hjnIh]hstruct sk_buff_head *xmitq}(hjpIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlIubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjhIubj')}(hhh]h)}(h1queue for messages to be xmited on tnl link laterh]h1queue for messages to be xmited on tnl link later}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjIubah}(h]h ]h"]h$]h&]uh1j&hjhIubeh}(h]h ]h"]h$]h&]uh1jhjIhMhjHubeh}(h]h ]h"]h$]h&]uh1jhjHubh)}(h**Description**h]j)}(hjIh]h Description}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjHubh)}(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.:}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjHubj)}(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.chMhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"__tipc_node_link_down (C function)c.__tipc_node_link_downhNtauh1jhj8hhhNhNubj$)}(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](jG)}(hvoidh]hvoid}(hjIhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjIhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubjG)}(h h]h }(hj JhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjIhhhj JhMubjX)}(h__tipc_node_link_downh]j^)}(h__tipc_node_link_downh]h__tipc_node_link_down}(hjJhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjJubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjIhhhj JhMubj)}(ha(struct tipc_node *n, int *bearer_id, struct sk_buff_head *xmitq, struct tipc_media_addr **maddr)h](j%)}(hstruct tipc_node *nh](j5)}(hj8h]hstruct}(hj:JhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj6JubjG)}(h h]h }(hjGJhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6Jubh)}(hhh]j^)}(h tipc_nodeh]h tipc_node}(hjXJhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjUJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZJmodnameN classnameNjj)}j]j)}jj Jsbc.__tipc_node_link_downasbuh1hhj6JubjG)}(h h]h }(hjxJhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6Jubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Jubj^)}(hjih]hn}(hjJhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj6Jubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj2Jubj%)}(hint *bearer_idh](jG)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJubjG)}(h h]h }(hjJhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj^)}(h bearer_idh]h bearer_id}(hjJhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjJubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj2Jubj%)}(hstruct sk_buff_head *xmitqh](j5)}(hj8h]hstruct}(hjJhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjJubjG)}(h h]h }(hjJhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hj KhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj KmodnameN classnameNjj)}j]jtJc.__tipc_node_link_downasbuh1hhjJubjG)}(h h]h }(hj)KhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJubj)}(hjh]h*}(hj7KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj^)}(hxmitqh]hxmitq}(hjDKhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjJubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj2Jubj%)}(hstruct tipc_media_addr **maddrh](j5)}(hj8h]hstruct}(hj]KhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjYKubjG)}(h h]h }(hjjKhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjYKubh)}(hhh]j^)}(htipc_media_addrh]htipc_media_addr}(hj{KhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjxKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}KmodnameN classnameNjj)}j]jtJc.__tipc_node_link_downasbuh1hhjYKubjG)}(h h]h }(hjKhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjYKubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYKubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYKubj^)}(hmaddrh]hmaddr}(hjKhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjYKubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj2Jubeh}(h]h ]h"]h$]h&]hhuh1jhjIhhhj JhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjIhhhj JhMubah}(h]jIah ](jjeh"]h$]h&]jj)jhuh1j(hj JhMhjIhhubj)}(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&]uh1jhjIhhhj JhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1j#hhhj8hNhNubj)}(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)}(hj Lh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Lubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjLubj)}(hhh](j)}(h)``struct tipc_node *n`` target tipc_node h](j )}(h``struct tipc_node *n``h]j)}(hj,Lh]hstruct tipc_node *n}(hj.LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*Lubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj&Lubj')}(hhh]h)}(htarget tipc_nodeh]htarget tipc_node}(hjELhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjALhMhjBLubah}(h]h ]h"]h$]h&]uh1j&hj&Lubeh}(h]h ]h"]h$]h&]uh1jhjALhMhj#Lubj)}(h$``int *bearer_id`` id of the bearer h](j )}(h``int *bearer_id``h]j)}(hjeLh]hint *bearer_id}(hjgLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcLubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj_Lubj')}(hhh]h)}(hid of the bearerh]hid of the bearer}(hj~LhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzLhMhj{Lubah}(h]h ]h"]h$]h&]uh1j&hj_Lubeh}(h]h ]h"]h$]h&]uh1jhjzLhMhj#Lubj)}(hB``struct sk_buff_head *xmitq`` queue for messages to be xmited on h](j )}(h``struct sk_buff_head *xmitq``h]j)}(hjLh]hstruct sk_buff_head *xmitq}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjLubj')}(hhh]h)}(h"queue for messages to be xmited onh]h"queue for messages to be xmited on}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhMhjLubah}(h]h ]h"]h$]h&]uh1j&hjLubeh}(h]h ]h"]h$]h&]uh1jhjLhMhj#Lubj)}(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&]uh1j hP/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&]uh1j&hjLubeh}(h]h ]h"]h$]h&]uh1jhjLhMhj#Lubeh}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#tipc_node_get_linkname (C function)c.tipc_node_get_linknamehNtauh1jhj8hhhNhNubj$)}(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](jG)}(hinth]hint}(hj1MhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-MhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubjG)}(h h]h }(hj@MhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-Mhhhj?MhMubjX)}(htipc_node_get_linknameh]j^)}(htipc_node_get_linknameh]htipc_node_get_linkname}(hjRMhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjNMubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj-Mhhhj?MhMubj)}(hF(struct net *net, u32 bearer_id, u32 addr, char *linkname, size_t len)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjnMhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjjMubjG)}(h h]h }(hj{MhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjjMubh)}(hhh]j^)}(hneth]hnet}(hjMhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]j)}jjTMsbc.tipc_node_get_linknameasbuh1hhjjMubjG)}(h h]h }(hjMhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjjMubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjMubj^)}(hneth]hnet}(hjMhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjjMubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjfMubj%)}(h u32 bearer_idh](h)}(hhh]j^)}(hu32h]hu32}(hjMhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]jMc.tipc_node_get_linknameasbuh1hhjMubjG)}(h h]h }(hjNhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjMubj^)}(h bearer_idh]h bearer_id}(hjNhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjMubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjfMubj%)}(hu32 addrh](h)}(hhh]j^)}(hu32h]hu32}(hj+NhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj(Nubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-NmodnameN classnameNjj)}j]jMc.tipc_node_get_linknameasbuh1hhj$NubjG)}(h h]h }(hjINhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj$Nubj^)}(haddrh]haddr}(hjWNhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj$Nubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjfMubj%)}(hchar *linknameh](jG)}(hcharh]hchar}(hjpNhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjlNubjG)}(h h]h }(hj~NhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjlNubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlNubj^)}(hlinknameh]hlinkname}(hjNhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjlNubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjfMubj%)}(h size_t lenh](h)}(hhh]j^)}(hsize_th]hsize_t}(hjNhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]jMc.tipc_node_get_linknameasbuh1hhjNubjG)}(h h]h }(hjNhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjNubj^)}(hlenh]hlen}(hjNhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjNubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjfMubeh}(h]h ]h"]h$]h&]hhuh1jhj-Mhhhj?MhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj)Mhhhj?MhMubah}(h]j$Mah ](jjeh"]h$]h&]jj)jhuh1j(hj?MhMhj&Mhhubj)}(hhh]h)}(hget the name of a linkh]hget the name of a link}(hj OhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjOhhubah}(h]h ]h"]h$]h&]uh1jhj&Mhhhj?MhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#Ojj#Ojjjuh1j#hhhj8hNhNubj)}(hX**Parameters** ``struct net *net`` the applicable net namespace ``u32 bearer_id`` id of the bearer ``u32 addr`` peer node address ``char *linkname`` link name output buffer ``size_t len`` size of **linkname** output buffer **Return** 0 on successh](h)}(h**Parameters**h]j)}(hj-Oh]h Parameters}(hj/OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Oubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj'Oubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j )}(h``struct net *net``h]j)}(hjLOh]hstruct net *net}(hjNOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJOubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjFOubj')}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hjeOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaOhMhjbOubah}(h]h ]h"]h$]h&]uh1j&hjFOubeh}(h]h ]h"]h$]h&]uh1jhjaOhMhjCOubj)}(h#``u32 bearer_id`` id of the bearer h](j )}(h``u32 bearer_id``h]j)}(hjOh]h u32 bearer_id}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjOubj')}(hhh]h)}(hid of the bearerh]hid of the bearer}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhMhjOubah}(h]h ]h"]h$]h&]uh1j&hjOubeh}(h]h ]h"]h$]h&]uh1jhjOhMhjCOubj)}(h``u32 addr`` peer node address h](j )}(h ``u32 addr``h]j)}(hjOh]hu32 addr}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjOubj')}(hhh]h)}(hpeer node addressh]hpeer node address}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhMhjOubah}(h]h ]h"]h$]h&]uh1j&hjOubeh}(h]h ]h"]h$]h&]uh1jhjOhMhjCOubj)}(h+``char *linkname`` link name output buffer h](j )}(h``char *linkname``h]j)}(hjOh]hchar *linkname}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjOubj')}(hhh]h)}(hlink name output bufferh]hlink name output buffer}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj PhMhj Pubah}(h]h ]h"]h$]h&]uh1j&hjOubeh}(h]h ]h"]h$]h&]uh1jhj PhMhjCOubj)}(h2``size_t len`` size of **linkname** output buffer h](j )}(h``size_t len``h]j)}(hj0Ph]h size_t len}(hj2PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.Pubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj*Pubj')}(hhh]h)}(h"size of **linkname** output bufferh](hsize of }(hjIPhhhNhNubj)}(h **linkname**h]hlinkname}(hjQPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIPubh output buffer}(hjIPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjEPhMhjFPubah}(h]h ]h"]h$]h&]uh1j&hj*Pubeh}(h]h ]h"]h$]h&]uh1jhjEPhMhjCOubeh}(h]h ]h"]h$]h&]uh1jhj'Oubh)}(h **Return**h]j)}(hj}Ph]hReturn}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Pubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj'Oubh)}(h 0 on successh]h 0 on success}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhj'Oubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_node_xmit (C function)c.tipc_node_xmithNtauh1jhj8hhhNhNubj$)}(hhh](j))}(hXint tipc_node_xmit (struct net *net, struct sk_buff_head *list, u32 dnode, int selector)h]j/)}(hWint tipc_node_xmit(struct net *net, struct sk_buff_head *list, u32 dnode, int selector)h](jG)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjPhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubjG)}(h h]h }(hjPhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjPhhhjPhMubjX)}(htipc_node_xmith]j^)}(htipc_node_xmith]htipc_node_xmit}(hjPhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjPubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjPhhhjPhMubj)}(hE(struct net *net, struct sk_buff_head *list, u32 dnode, int selector)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjPhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjPubjG)}(h h]h }(hj QhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjPubh)}(hhh]j^)}(hneth]hnet}(hjQhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]j)}jjPsbc.tipc_node_xmitasbuh1hhjPubjG)}(h h]h }(hj=QhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjPubj)}(hjh]h*}(hjKQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj^)}(hneth]hnet}(hjXQhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjPubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjPubj%)}(hstruct sk_buff_head *listh](j5)}(hj8h]hstruct}(hjqQhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjmQubjG)}(h h]h }(hj~QhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjmQubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjQhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]j9Qc.tipc_node_xmitasbuh1hhjmQubjG)}(h h]h }(hjQhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjmQubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmQubj^)}(hlisth]hlist}(hjQhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjmQubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjPubj%)}(h u32 dnodeh](h)}(hhh]j^)}(hu32h]hu32}(hjQhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]j9Qc.tipc_node_xmitasbuh1hhjQubjG)}(h h]h }(hjRhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjQubj^)}(hdnodeh]hdnode}(hjRhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjQubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjPubj%)}(h int selectorh](jG)}(hinth]hint}(hj)RhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj%RubjG)}(h h]h }(hj7RhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj%Rubj^)}(hselectorh]hselector}(hjERhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj%Rubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjPubeh}(h]h ]h"]h$]h&]hhuh1jhjPhhhjPhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjPhhhjPhMubah}(h]jPah ](jjeh"]h$]h&]jj)jhuh1j(hjPhMhjPhhubj)}(hhh]h)}(h/general link level function for message sendingh]h/general link level function for message sending}(hjoRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjlRhhubah}(h]h ]h"]h$]h&]uh1jhjPhhhjPhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRjjRjjjuh1j#hhhj8hNhNubj)}(hXe**Parameters** ``struct net *net`` the applicable net namespace ``struct sk_buff_head *list`` chain of buffers containing message ``u32 dnode`` address of destination node ``int selector`` a number used for deterministic link selection Consumes the buffer chain. **Return** 0 if success, otherwise: -ELINKCONG,-EHOSTUNREACH,-EMSGSIZE,-ENOBUFh](h)}(h**Parameters**h]j)}(hjRh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjRubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j )}(h``struct net *net``h]j)}(hjRh]hstruct net *net}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjRubj')}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1j&hjRubeh}(h]h ]h"]h$]h&]uh1jhjRhMhjRubj)}(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&]uh1j hP/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}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1j&hjRubeh}(h]h ]h"]h$]h&]uh1jhjRhMhjRubj)}(h*``u32 dnode`` address of destination node h](j )}(h ``u32 dnode``h]j)}(hj"Sh]h u32 dnode}(hj$ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Subah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjSubj')}(hhh]h)}(haddress of destination nodeh]haddress of destination node}(hj;ShhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7ShMhj8Subah}(h]h ]h"]h$]h&]uh1j&hjSubeh}(h]h ]h"]h$]h&]uh1jhj7ShMhjRubj)}(h[``int selector`` a number used for deterministic link selection Consumes the buffer chain. h](j )}(h``int selector``h]j)}(hj[Sh]h int selector}(hj]ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYSubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjUSubj')}(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.}(hjtShhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjqSubah}(h]h ]h"]h$]h&]uh1j&hjUSubeh}(h]h ]h"]h$]h&]uh1jhjpShMhjRubeh}(h]h ]h"]h$]h&]uh1jhjRubh)}(h **Return**h]j)}(hjSh]hReturn}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjRubh)}(hC0 if success, otherwise: -ELINKCONG,-EHOSTUNREACH,-EMSGSIZE,-ENOBUFh]hC0 if success, otherwise: -ELINKCONG,-EHOSTUNREACH,-EMSGSIZE,-ENOBUF}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_node_bc_rcv (C function)c.tipc_node_bc_rcvhNtauh1jhj8hhhNhNubj$)}(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](jG)}(hvoidh]hvoid}(hjShhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjShhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMIubjG)}(h h]h }(hjShhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjShhhjShMIubjX)}(htipc_node_bc_rcvh]j^)}(htipc_node_bc_rcvh]htipc_node_bc_rcv}(hjShhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjSubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjShhhjShMIubj)}(h5(struct net *net, struct sk_buff *skb, int bearer_id)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjThhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjTubjG)}(h h]h }(hj&ThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjTubh)}(hhh]j^)}(hneth]hnet}(hj7ThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj4Tubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9TmodnameN classnameNjj)}j]j)}jjSsbc.tipc_node_bc_rcvasbuh1hhjTubjG)}(h h]h }(hjWThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjTubj)}(hjh]h*}(hjeThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj^)}(hneth]hnet}(hjrThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjTubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjTubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjThhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjTubjG)}(h h]h }(hjThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjTubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]jSTc.tipc_node_bc_rcvasbuh1hhjTubjG)}(h h]h }(hjThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjTubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj^)}(hskbh]hskb}(hjThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjTubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjTubj%)}(h int bearer_idh](jG)}(hinth]hint}(hjThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjTubjG)}(h h]h }(hj UhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjTubj^)}(h bearer_idh]h bearer_id}(hjUhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjTubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjTubeh}(h]h ]h"]h$]h&]hhuh1jhjShhhjShMIubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjShhhjShMIubah}(h]jSah ](jjeh"]h$]h&]jj)jhuh1j(hjShMIhjShhubj)}(hhh]h)}(h4process TIPC broadcast packet arriving from off-nodeh]h4process TIPC broadcast packet arriving from off-node}(hjAUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMIhj>Uhhubah}(h]h ]h"]h$]h&]uh1jhjShhhjShMIubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYUjjYUjjjuh1j#hhhj8hNhNubj)}(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)}(hjcUh]h Parameters}(hjeUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaUubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMMhj]Uubj)}(hhh](j)}(h1``struct net *net`` the applicable net namespace h](j )}(h``struct net *net``h]j)}(hjUh]hstruct net *net}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMJhj|Uubj')}(hhh]h)}(hthe applicable net namespaceh]hthe applicable net namespace}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMJhjUubah}(h]h ]h"]h$]h&]uh1j&hj|Uubeh}(h]h ]h"]h$]h&]uh1jhjUhMJhjyUubj)}(h$``struct sk_buff *skb`` TIPC packet h](j )}(h``struct sk_buff *skb``h]j)}(hjUh]hstruct sk_buff *skb}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMKhjUubj')}(hhh]h)}(h TIPC packeth]h TIPC packet}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMKhjUubah}(h]h ]h"]h$]h&]uh1j&hjUubeh}(h]h ]h"]h$]h&]uh1jhjUhMKhjyUubj)}(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&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMLhjUubj')}(hhh]h)}(hid of bearer message arrived onh]hid of bearer message arrived on}(hj VhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj VhMLhj Vubah}(h]h ]h"]h$]h&]uh1j&hjUubeh}(h]h ]h"]h$]h&]uh1jhj VhMLhjyUubeh}(h]h ]h"]h$]h&]uh1jhj]Uubh)}(h**Description**h]j)}(hj/Vh]h Description}(hj1VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-Vubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMNhj]Uubh)}(hInvoked with no locks held.h]hInvoked with no locks held.}(hjEVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMMhj]Uubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"tipc_node_check_state (C function)c.tipc_node_check_statehNtauh1jhj8hhhNhNubj$)}(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](jG)}(hjgh]hbool}(hjtVhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjpVhhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chMubjG)}(h h]h }(hjVhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjpVhhhjVhMubjX)}(htipc_node_check_stateh]j^)}(htipc_node_check_stateh]htipc_node_check_state}(hjVhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjVubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjpVhhhjVhMubj)}(hU(struct tipc_node *n, struct sk_buff *skb, int bearer_id, struct sk_buff_head *xmitq)h](j%)}(hstruct tipc_node *nh](j5)}(hj8h]hstruct}(hjVhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjVubjG)}(h h]h }(hjVhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjVubh)}(hhh]j^)}(h tipc_nodeh]h tipc_node}(hjVhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]j)}jjVsbc.tipc_node_check_stateasbuh1hhjVubjG)}(h h]h }(hjVhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjVubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj^)}(hjih]hn}(hj WhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjVubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjVubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hj!WhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjWubjG)}(h h]h }(hj.WhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjWubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj?WhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj\ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM#hjn[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.}(hjV\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM"hjn[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_node_dump (C function)c.tipc_node_dumphNtauh1jhj8hhhNhNubj$)}(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](jG)}(hinth]hint}(hj\hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj\hhhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM ubjG)}(h h]h }(hj\hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj\hhhj\hM ubjX)}(htipc_node_dumph]j^)}(htipc_node_dumph]htipc_node_dump}(hj\hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj\ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj\hhhj\hM ubj)}(h+(struct tipc_node *n, bool more, char *buf)h](j%)}(hstruct tipc_node *nh](j5)}(hj8h]hstruct}(hj\hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj\ubjG)}(h h]h }(hj\hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj\ubh)}(hhh]j^)}(h tipc_nodeh]h tipc_node}(hj\hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]j)}jj\sbc.tipc_node_dumpasbuh1hhj\ubjG)}(h h]h }(hj]hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj\ubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj^)}(hjih]hn}(hj]hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj\ubj%)}(h bool moreh](jG)}(hjgh]hbool}(hj3]hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj/]ubjG)}(h h]h }(hj@]hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj/]ubj^)}(hmoreh]hmore}(hjN]hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj/]ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj\ubj%)}(h char *bufh](jG)}(hcharh]hchar}(hjg]hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjc]ubjG)}(h h]h }(hju]hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjc]ubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc]ubj^)}(hbufh]hbuf}(hj]hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjc]ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj\ubeh}(h]h ]h"]h$]h&]hhuh1jhj\hhhj\hM ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj}\hhhj\hM ubah}(h]jx\ah ](jjeh"]h$]h&]jj)jhuh1j(hj\hM hjz\hhubj)}(hhh]h)}(hdump TIPC node datah]hdump TIPC node data}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hj]hhubah}(h]h ]h"]h$]h&]uh1jhjz\hhhj\hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1j#hhhj8hNhNubj)}(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&]uh1j hP/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&]uh1j&hj]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)}(hj4^h]h bool more}(hj6^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2^ubah}(h]h ]h"]h$]h&]uh1j hP/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}(hjM^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hjJ^ubah}(h]h ]h"]h$]h&]uh1j&hj.^ubeh}(h]h ]h"]h$]h&]uh1jhjI^hM hj]ubj)}(h4``char *buf`` returned buffer of dump data in formath](j )}(h ``char *buf``h]j)}(hjn^h]h char *buf}(hjp^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl^ubah}(h]h ]h"]h$]h&]uh1j hP/var/lib/git/docbuild/linux/Documentation/networking/tipc:190: ./net/tipc/node.chM hjh^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 hj^ubah}(h]h ]h"]h$]h&]uh1j&hjh^ubeh}(h]h ]h"]h$]h&]uh1jhj^hM hj]ubeh}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj8hhhNhNubeh}(h]tipc-node-management-interfacesah ]h"]tipc node management interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTIPC Socket Interfacesh]hTIPC Socket Interfaces}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sock (C struct) c.tipc_sockhNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h tipc_sockh]j/)}(hstruct tipc_sockh](j5)}(hj8h]hstruct}(hj^hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj^hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKubjG)}(h h]h }(hj^hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj^hhhj^hKubjX)}(h tipc_sockh]j^)}(hj^h]h tipc_sock}(hj_hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj^ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj^hhhj^hKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj^hhhj^hKubah}(h]j^ah ](jjeh"]h$]h&]jj)jhuh1j(hj^hKhj^hhubj)}(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.chKLhj _hhubah}(h]h ]h"]h$]h&]uh1jhj^hhhj^hKubeh}(h]h ](jstructeh"]h$]h&]jjjj;_jj;_jjjuh1j#hhhj^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}(hjG_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC_ubh:}(hjC_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKPhj?_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.chKRhj?_ubh)}(h **Members**h]j)}(hjq_h]hMembers}(hjs_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo_ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKuhj?_ubj)}(hhh](j)}(hG``sk`` socket - interacts with 'port' and with user via the socket API h](j )}(h``sk``h]j)}(hj_h]hsk}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKNhj_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&]uh1hhj_hKNhj_ubah}(h]h ]h"]h$]h&]uh1j&hj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hKNhj_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&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKOhj_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_hKOhj_ubah}(h]h ]h"]h$]h&]uh1j&hj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hKOhj_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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKPhj_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`hKPhj`ubah}(h]h ]h"]h$]h&]uh1j&hj_ubeh}(h]h ]h"]h$]h&]uh1jhj`hKPhj_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&]uh1jhj9`ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKQhj5`ubj')}(hhh]h)}(h.unique port identity in TIPC socket hash tableh]h.unique port identity in TIPC socket hash table}(hjT`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP`hKQhjQ`ubah}(h]h ]h"]h$]h&]uh1j&hj5`ubeh}(h]h ]h"]h$]h&]uh1jhjP`hKQhj_ubj)}(h@``phdr`` preformatted message header used when sending messages h](j )}(h``phdr``h]j)}(hjt`h]hphdr}(hjv`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr`ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKRhjn`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`hKRhj`ubah}(h]h ]h"]h$]h&]uh1j&hjn`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKRhj_ubj)}(h'``cong_links`` list of congested links h](j )}(h``cong_links``h]j)}(hj`h]h cong_links}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKShj`ubj')}(hhh]h)}(hlist of congested linksh]hlist of congested links}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hKShj`ubah}(h]h ]h"]h$]h&]uh1j&hj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKShj_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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKThj`ubj')}(hhh]h)}(hlist of publications for porth]hlist of publications for port}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hKThj`ubah}(h]h ]h"]h$]h&]uh1j&hj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKThj_ubj)}(hH``pub_count`` total # of publications port has made during its lifetime h](j )}(h ``pub_count``h]j)}(hjah]h pub_count}(hj!ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKUhjaubj')}(hhh]h)}(h9total # of publications port has made during its lifetimeh]h9total # of publications port has made during its lifetime}(hj8ahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4ahKUhj5aubah}(h]h ]h"]h$]h&]uh1j&hjaubeh}(h]h ]h"]h$]h&]uh1jhj4ahKUhj_ubj)}(hM``dupl_rcvcnt`` number of bytes counted twice, in both backlog and rcv queue h](j )}(h``dupl_rcvcnt``h]j)}(hjXah]h dupl_rcvcnt}(hjZahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVaubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKXhjRaubj')}(hhh]h)}(hbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:bubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKZhj6bubj')}(hhh]h)}(h4# messages sent by socket, and not yet acked by peerh]h4# messages sent by socket, and not yet acked by peer}(hjUbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQbhKZhjRbubah}(h]h ]h"]h$]h&]uh1j&hj6bubeh}(h]h ]h"]h$]h&]uh1jhjQbhKZhj_ubj)}(h``snd_win`` send window size h](j )}(h ``snd_win``h]j)}(hjubh]hsnd_win}(hjwbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsbubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK[hjobubj')}(hhh]h)}(hsend window sizeh]hsend window size}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhK[hjbubah}(h]h ]h"]h$]h&]uh1j&hjobubeh}(h]h ]h"]h$]h&]uh1jhjbhK[hj_ubj)}(h%``peer_caps`` peer capabilities mask h](j )}(h ``peer_caps``h]j)}(hjbh]h peer_caps}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK\hjbubj')}(hhh]h)}(hpeer capabilities maskh]hpeer capabilities mask}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhK\hjbubah}(h]h ]h"]h$]h&]uh1j&hjbubeh}(h]h ]h"]h$]h&]uh1jhjbhK\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&]uh1j hR/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}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhK]hjbubah}(h]h ]h"]h$]h&]uh1j&hjbubeh}(h]h ]h"]h$]h&]uh1jhjbhK]hj_ubj)}(h ``rcv_win`` receive window size h](j )}(h ``rcv_win``h]j)}(hj ch]hrcv_win}(hj"chhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK^hjcubj')}(hhh]h)}(hreceive window sizeh]hreceive window size}(hj9chhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5chK^hj6cubah}(h]h ]h"]h$]h&]uh1j&hjcubeh}(h]h ]h"]h$]h&]uh1jhj5chK^hj_ubj)}(h(``peer`` 'connected' peer for dgram/rdm h](j )}(h``peer``h]j)}(hjYch]hpeer}(hj[chhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWcubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK_hjScubj')}(hhh]h)}(h'connected' peer for dgram/rdmh]h"‘connected’ peer for dgram/rdm}(hjrchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnchK_hjocubah}(h]h ]h"]h$]h&]uh1j&hjScubeh}(h]h ]h"]h$]h&]uh1jhjnchK_hj_ubj)}(h``node`` hash table node h](j )}(h``node``h]j)}(hjch]hnode}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chK`hjcubj')}(hhh]h)}(hhash table nodeh]hhash table node}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchK`hjcubah}(h]h ]h"]h$]h&]uh1j&hjcubeh}(h]h ]h"]h$]h&]uh1jhjchK`hj_ubj)}(h@``mc_method`` cookie for use between socket and broadcast layer h](j )}(h ``mc_method``h]j)}(hjch]h mc_method}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKahjcubj')}(hhh]h)}(h1cookie for use between socket and broadcast layerh]h1cookie for use between socket and broadcast layer}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchKahjcubah}(h]h ]h"]h$]h&]uh1j&hjcubeh}(h]h ]h"]h$]h&]uh1jhjchKahj_ubj)}(h!``rcu`` rcu struct for tipc_sock h](j )}(h``rcu``h]j)}(hjdh]hrcu}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKbhjcubj')}(hhh]h)}(hrcu struct for tipc_sockh]hrcu struct for tipc_sock}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKbhjdubah}(h]h ]h"]h$]h&]uh1j&hjcubeh}(h]h ]h"]h$]h&]uh1jhjdhKbhj_ubj)}(h$``group`` TIPC communications group h](j )}(h ``group``h]j)}(hj=dh]hgroup}(hj?dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;dubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKchj7dubj')}(hhh]h)}(hTIPC communications grouph]hTIPC communications group}(hjVdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRdhKchjSdubah}(h]h ]h"]h$]h&]uh1j&hj7dubeh}(h]h ]h"]h$]h&]uh1jhjRdhKchj_ubj)}(h2``oneway`` message count in one direction (FIXME) h](j )}(h ``oneway``h]j)}(hjvdh]honeway}(hjxdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtdubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKdhjpdubj')}(hhh]h)}(h&message count in one direction (FIXME)h]h&message count in one direction (FIXME)}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKdhjdubah}(h]h ]h"]h$]h&]uh1j&hjpdubeh}(h]h ]h"]h$]h&]uh1jhjdhKdhj_ubj)}(h$``nagle_start`` current nagle value h](j )}(h``nagle_start``h]j)}(hjdh]h nagle_start}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKehjdubj')}(hhh]h)}(hcurrent nagle valueh]hcurrent nagle value}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKehjdubah}(h]h ]h"]h$]h&]uh1j&hjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKehj_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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKfhjdubj')}(hhh]h)}(hsend backlog counth]hsend backlog count}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhKfhjdubah}(h]h ]h"]h$]h&]uh1j&hjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKfhj_ubj)}(hB``msg_acc`` messages accepted; used in managing backlog and nagle h](j )}(h ``msg_acc``h]j)}(hj!eh]hmsg_acc}(hj#ehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKghjeubj')}(hhh]h)}(h5messages accepted; used in managing backlog and nagleh]h5messages accepted; used in managing backlog and nagle}(hj:ehhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ehKghj7eubah}(h]h ]h"]h$]h&]uh1j&hjeubeh}(h]h ]h"]h$]h&]uh1jhj6ehKghj_ubj)}(h%``pkt_cnt`` TIPC socket packet count h](j )}(h ``pkt_cnt``h]j)}(hjZeh]hpkt_cnt}(hj\ehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXeubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKhhjTeubj')}(hhh]h)}(hTIPC socket packet counth]hTIPC socket packet count}(hjsehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoehKhhjpeubah}(h]h ]h"]h$]h&]uh1j&hjTeubeh}(h]h ]h"]h$]h&]uh1jhjoehKhhj_ubj)}(h<``expect_ack`` whether this TIPC socket is expecting an ack h](j )}(h``expect_ack``h]j)}(hjeh]h expect_ack}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKihjeubj')}(hhh]h)}(h,whether this TIPC socket is expecting an ackh]h,whether this TIPC socket is expecting an ack}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehKihjeubah}(h]h ]h"]h$]h&]uh1j&hjeubeh}(h]h ]h"]h$]h&]uh1jhjehKihj_ubj)}(h.``nodelay`` setsockopt() TIPC_NODELAY setting h](j )}(h ``nodelay``h]j)}(hjeh]hnodelay}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKjhjeubj')}(hhh]h)}(h!setsockopt() TIPC_NODELAY settingh]h!setsockopt() TIPC_NODELAY setting}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehKjhjeubah}(h]h ]h"]h$]h&]uh1j&hjeubeh}(h]h ]h"]h$]h&]uh1jhjehKjhj_ubj)}(h:``group_is_open`` TIPC socket group is fully open (FIXME) h](j )}(h``group_is_open``h]j)}(hjfh]h group_is_open}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKkhjeubj')}(hhh]h)}(h'TIPC socket group is fully open (FIXME)h]h'TIPC socket group is fully open (FIXME)}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhKkhjfubah}(h]h ]h"]h$]h&]uh1j&hjeubeh}(h]h ]h"]h$]h&]uh1jhjfhKkhj_ubj)}(h<``published`` true if port has one or more associated names h](j )}(h ``published``h]j)}(hj>fh]h published}(hj@fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(struct net *net, struct socket *sock, int protocol, int kern)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj~jhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjzjubjG)}(h h]h }(hjjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjzjubh)}(hhh]j^)}(hneth]hnet}(hjjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j)}jjdjsbc.tipc_sk_createasbuh1hhjzjubjG)}(h h]h }(hjjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjzjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzjubj^)}(hneth]hnet}(hjjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjzjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjvjubj%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjjubjG)}(h h]h }(hjjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjjubh)}(hhh]j^)}(hsocketh]hsocket}(hjkhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj kubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]jjc.tipc_sk_createasbuh1hhjjubjG)}(h h]h }(hj,khhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjjubj)}(hjh]h*}(hj:khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj^)}(hsockh]hsock}(hjGkhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjvjubj%)}(h int protocolh](jG)}(hinth]hint}(hj`khhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj\kubjG)}(h h]h }(hjnkhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj\kubj^)}(hprotocolh]hprotocol}(hj|khhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj\kubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjvjubj%)}(hint kernh](jG)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjkubjG)}(h h]h }(hjkhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjkubj^)}(hkernh]hkern}(hjkhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjkubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjvjubeh}(h]h ]h"]h$]h&]hhuh1jhj=jhhhjOjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj9jhhhjOjhMubah}(h]j4jah ](jjeh"]h$]h&]jj)jhuh1j(hjOjhMhj6jhhubj)}(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&]uh1jhj6jhhhjOjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1j#hhhj^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)}(hjlh]hstruct net *net}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjlubj')}(hhh]h)}(h+network namespace (must be default network)h]h+network namespace (must be default network)}(hj5lhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1lhMhj2lubah}(h]h ]h"]h$]h&]uh1j&hjlubeh}(h]h ]h"]h$]h&]uh1jhj1lhMhjlubj)}(h7``struct socket *sock`` pre-allocated socket structure h](j )}(h``struct socket *sock``h]j)}(hjUlh]hstruct socket *sock}(hjWlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSlubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjOlubj')}(hhh]h)}(hpre-allocated socket structureh]hpre-allocated socket structure}(hjnlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjlhMhjklubah}(h]h ]h"]h$]h&]uh1j&hjOlubeh}(h]h ]h"]h$]h&]uh1jhjjlhMhjlubj)}(h0``int protocol`` protocol indicator (must be 0) h](j )}(h``int protocol``h]j)}(hjlh]h int protocol}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjlubj')}(hhh]h)}(hprotocol indicator (must be 0)h]hprotocol indicator (must be 0)}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhMhjlubah}(h]h ]h"]h$]h&]uh1j&hjlubeh}(h]h ]h"]h$]h&]uh1jhjlhMhjlubj)}(h/``int kern`` caused by kernel or by userspace? h](j )}(h ``int kern``h]j)}(hjlh]hint kern}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjlubj')}(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&]uh1j&hjlubeh}(h]h ]h"]h$]h&]uh1jhjlhMhjlubeh}(h]h ]h"]h$]h&]uh1jhjkubh)}(h**Description**h]j)}(hjmh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(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.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjkubh)}(h **Return**h]j)}(hj)mh]hReturn}(hj+mhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'mubah}(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}(hj?mhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjkubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_release (C function)c.tipc_releasehNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h&int tipc_release (struct socket *sock)h]j/)}(h%int tipc_release(struct socket *sock)h](jG)}(hinth]hint}(hjnmhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjjmhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMbubjG)}(h h]h }(hj}mhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjjmhhhj|mhMbubjX)}(h tipc_releaseh]j^)}(h tipc_releaseh]h tipc_release}(hjmhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjmubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjjmhhhj|mhMbubj)}(h(struct socket *sock)h]j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjmhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjmubjG)}(h h]h }(hjmhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjmubh)}(hhh]j^)}(hsocketh]hsocket}(hjmhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jjmsbc.tipc_releaseasbuh1hhjmubjG)}(h h]h }(hjmhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjmubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj^)}(hsockh]hsock}(hjnhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjmubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjmubah}(h]h ]h"]h$]h&]hhuh1jhjjmhhhj|mhMbubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjfmhhhj|mhMbubah}(h]jamah ](jjeh"]h$]h&]jj)jhuh1j(hj|mhMbhjcmhhubj)}(hhh]h)}(hdestroy a TIPC socketh]hdestroy a TIPC socket}(hj.nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMbhj+nhhubah}(h]h ]h"]h$]h&]uh1jhjcmhhhj|mhMbubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFnjjFnjjjuh1j#hhhj^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)}(hjPnh]h Parameters}(hjRnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNnubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMfhjJnubj)}(hhh]j)}(h*``struct socket *sock`` socket to destroy h](j )}(h``struct socket *sock``h]j)}(hjonh]hstruct socket *sock}(hjqnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmnubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMchjinubj')}(hhh]h)}(hsocket to destroyh]hsocket to destroy}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhMchjnubah}(h]h ]h"]h$]h&]uh1j&hjinubeh}(h]h ]h"]h$]h&]uh1jhjnhMchjfnubah}(h]h ]h"]h$]h&]uh1jhjJnubh)}(h**Description**h]j)}(hjnh]h Description}(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.chMehjJnubh)}(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.)}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMdhjJnubh)}(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.chMjhjJnubh)}(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.chMkhjJnubh)}(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.chMohjJnubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMohjJnubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j__tipc_bind (C function) c.__tipc_bindhNtauh1jhj^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](jG)}(hinth]hint}(hj=ohhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj9ohhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hjLohhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj9ohhhjKohMubjX)}(h __tipc_bindh]j^)}(h __tipc_bindh]h __tipc_bind}(hj^ohhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjZoubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj9ohhhjKohMubj)}(h8(struct socket *sock, struct sockaddr *skaddr, int alen)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjzohhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjvoubjG)}(h h]h }(hjohhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjvoubh)}(hhh]j^)}(hsocketh]hsocket}(hjohhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jj`osb c.__tipc_bindasbuh1hhjvoubjG)}(h h]h }(hjohhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjvoubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvoubj^)}(hsockh]hsock}(hjohhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjvoubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjroubj%)}(hstruct sockaddr *skaddrh](j5)}(hj8h]hstruct}(hjohhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjoubjG)}(h h]h }(hjohhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjoubh)}(hhh]j^)}(hsockaddrh]hsockaddr}(hj phhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj pmodnameN classnameNjj)}j]jo c.__tipc_bindasbuh1hhjoubjG)}(h h]h }(hj(phhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjoubj)}(hjh]h*}(hj6phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj^)}(hskaddrh]hskaddr}(hjCphhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjoubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjroubj%)}(hint alenh](jG)}(hinth]hint}(hj\phhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjXpubjG)}(h h]h }(hjjphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjXpubj^)}(halenh]halen}(hjxphhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjXpubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjroubeh}(h]h ]h"]h$]h&]hhuh1jhj9ohhhjKohMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj5ohhhjKohMubah}(h]j0oah ](jjeh"]h$]h&]jj)jhuh1j(hjKohMhj2ohhubj)}(hhh]h)}(h4associate or disassociate TIPC name(s) with a socketh]h4associate or disassociate TIPC name(s) with a socket}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjphhubah}(h]h ]h"]h$]h&]uh1jhj2ohhhjKohMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjpjjpjjjuh1j#hhhj^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)}(hjph]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjpubj)}(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&]uh1j hR/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&]uh1j&hjpubeh}(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)}(hjqh]hstruct sockaddr *skaddr}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqubj')}(hhh]h)}(h7socket address describing name(s) and desired operationh]h7socket address describing name(s) and desired operation}(hj5qhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1qhMhj2qubah}(h]h ]h"]h$]h&]uh1j&hjqubeh}(h]h ]h"]h$]h&]uh1jhj1qhMhjpubj)}(h3``int alen`` size of socket address data structure h](j )}(h ``int alen``h]j)}(hjUqh]hint alen}(hjWqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSqubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjOqubj')}(hhh]h)}(h%size of socket address data structureh]h%size of socket address data structure}(hjnqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjqhMhjkqubah}(h]h ]h"]h$]h&]uh1j&hjOqubeh}(h]h ]h"]h$]h&]uh1jhjjqhMhjpubeh}(h]h ]h"]h$]h&]uh1jhjpubh)}(h**Description**h]j)}(hjqh]h Description}(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.chMhjpubh)}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjpubh)}(h **Return**h]j)}(hjqh]hReturn}(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.chMhjpubh)}(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.chMhjpubh)}(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.chMhjpubj)}(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&]uh1j hR/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.}(hj rhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj rubah}(h]h ]h"]h$]h&]uh1j&hjqubeh}(h]h ]h"]h$]h&]uh1jhj rhMhjqubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_getname (C function)c.tipc_getnamehNtauh1jhj^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](jG)}(hinth]hint}(hjNrhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJrhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hj]rhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJrhhhj\rhMubjX)}(h tipc_getnameh]j^)}(h tipc_getnameh]h tipc_getname}(hjorhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjkrubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjJrhhhj\rhMubj)}(h7(struct socket *sock, struct sockaddr *uaddr, int peer)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjrhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjrubjG)}(h h]h }(hjrhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrubh)}(hhh]j^)}(hsocketh]hsocket}(hjrhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jjqrsbc.tipc_getnameasbuh1hhjrubjG)}(h h]h }(hjrhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj^)}(hsockh]hsock}(hjrhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjrubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjrubj%)}(hstruct sockaddr *uaddrh](j5)}(hj8h]hstruct}(hjrhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjrubjG)}(h h]h }(hj shhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrubh)}(hhh]j^)}(hsockaddrh]hsockaddr}(hjshhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]jrc.tipc_getnameasbuh1hhjrubjG)}(h h]h }(hj9shhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrubj)}(hjh]h*}(hjGshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj^)}(huaddrh]huaddr}(hjTshhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjrubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjrubj%)}(hint peerh](jG)}(hinth]hint}(hjmshhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjisubjG)}(h h]h }(hj{shhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjisubj^)}(hpeerh]hpeer}(hjshhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjisubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjrubeh}(h]h ]h"]h$]h&]hhuh1jhjJrhhhj\rhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjFrhhhj\rhMubah}(h]jArah ](jjeh"]h$]h&]jj)jhuh1j(hj\rhMhjCrhhubj)}(hhh]h)}(h$get port ID of socket or peer socketh]h$get port ID of socket or peer socket}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjshhubah}(h]h ]h"]h$]h&]uh1jhjCrhhhj\rhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1j#hhhj^hNhNubj)}(hX**Parameters** ``struct socket *sock`` socket structure ``struct sockaddr *uaddr`` area for returned socket address ``int peer`` 0 = own ID, 1 = current peer ID, 2 = current/former peer ID **Return** 0 on success, errno otherwise **NOTE** This routine doesn't need to take the socket lock since it only accesses socket information that is unchanging (or which changes in a completely predictable manner).h](h)}(h**Parameters**h]j)}(hjsh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjsubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j )}(h``struct socket *sock``h]j)}(hjsh]hstruct socket *sock}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjsubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hj thhhNhNubah}(h]h ]h"]h$]h&]uh1hhj thMhj tubah}(h]h ]h"]h$]h&]uh1j&hjsubeh}(h]h ]h"]h$]h&]uh1jhj thMhjsubj)}(h<``struct sockaddr *uaddr`` area for returned socket address h](j )}(h``struct sockaddr *uaddr``h]j)}(hj-th]hstruct sockaddr *uaddr}(hj/thhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+tubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj'tubj')}(hhh]h)}(h area for returned socket addressh]h area for returned socket address}(hjFthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBthMhjCtubah}(h]h ]h"]h$]h&]uh1j&hj'tubeh}(h]h ]h"]h$]h&]uh1jhjBthMhjsubj)}(hI``int peer`` 0 = own ID, 1 = current peer ID, 2 = current/former peer ID h](j )}(h ``int peer``h]j)}(hjfth]hint peer}(hjhthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdtubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj`tubj')}(hhh]h)}(h;0 = own ID, 1 = current peer ID, 2 = current/former peer IDh]h;0 = own ID, 1 = current peer ID, 2 = current/former peer ID}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{thMhj|tubah}(h]h ]h"]h$]h&]uh1j&hj`tubeh}(h]h ]h"]h$]h&]uh1jhj{thMhjsubeh}(h]h ]h"]h$]h&]uh1jhjsubh)}(h **Return**h]j)}(hjth]hReturn}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjsubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjsubh)}(h**NOTE**h]j)}(hjth]hNOTE}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjsubj)}(hhh]j)}(hThis routine doesn't need to take the socket lock since it only accesses socket information that is unchanging (or which changes in a completely predictable manner).h](j )}(h?This routine doesn't need to take the socket lock since it onlyh]hAThis routine doesn’t need to take the socket lock since it only}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjtubj')}(hhh]h)}(heaccesses socket information that is unchanging (or which changes in a completely predictable manner).h]heaccesses socket information that is unchanging (or which changes in a completely predictable manner).}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthMhjtubah}(h]h ]h"]h$]h&]uh1j&hjtubeh}(h]h ]h"]h$]h&]uh1jhjthMhjtubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_poll (C function) c.tipc_pollhNtauh1jhj^hhhNhNubj$)}(hhh](j))}(hM__poll_t tipc_poll (struct file *file, struct socket *sock, poll_table *wait)h]j/)}(hL__poll_t tipc_poll(struct file *file, struct socket *sock, poll_table *wait)h](h)}(hhh]j^)}(h__poll_th]h__poll_t}(hj:uhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj7uubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjyhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjxubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjmxubj%)}(hstruct msghdr *msgh](j5)}(hj8h]hstruct}(hjWyhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjSyubjG)}(h h]h }(hjdyhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjSyubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hjuyhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjryubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwymodnameN classnameNjj)}j]jxc.tipc_sendmcastasbuh1hhjSyubjG)}(h h]h }(hjyhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjSyubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSyubj^)}(hmsgh]hmsg}(hjyhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjSyubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjmxubj%)}(h size_t dlenh](h)}(hhh]j^)}(hsize_th]hsize_t}(hjyhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jxc.tipc_sendmcastasbuh1hhjyubjG)}(h h]h }(hjyhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjyubj^)}(hdlenh]hdlen}(hjyhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjyubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjmxubj%)}(h long timeouth](jG)}(hlongh]hlong}(hjzhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj zubjG)}(h h]h }(hjzhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj zubj^)}(htimeouth]htimeout}(hj+zhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj zubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjmxubeh}(h]h ]h"]h$]h&]hhuh1jhj4xhhhjFxhM@ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj0xhhhjFxhM@ubah}(h]j+xah ](jjeh"]h$]h&]jj)jhuh1j(hjFxhM@hj-xhhubj)}(hhh]h)}(hsend multicast messageh]hsend multicast message}(hjUzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM@hjRzhhubah}(h]h ]h"]h$]h&]uh1jhj-xhhhjFxhM@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmzjjmzjjjuh1j#hhhj^hNhNubj)}(hX**Parameters** ``struct socket *sock`` socket structure ``struct tipc_uaddr *ua`` destination address struct ``struct msghdr *msg`` message to send ``size_t dlen`` length of data to send ``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)}(hjwzh]h Parameters}(hjyzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuzubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMDhjqzubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j )}(h``struct socket *sock``h]j)}(hjzh]hstruct socket *sock}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMAhjzubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhMAhjzubah}(h]h ]h"]h$]h&]uh1j&hjzubeh}(h]h ]h"]h$]h&]uh1jhjzhMAhjzubj)}(h5``struct tipc_uaddr *ua`` destination address struct h](j )}(h``struct tipc_uaddr *ua``h]j)}(hjzh]hstruct tipc_uaddr *ua}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMBhjzubj')}(hhh]h)}(hdestination address structh]hdestination address struct}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhMBhjzubah}(h]h ]h"]h$]h&]uh1j&hjzubeh}(h]h ]h"]h$]h&]uh1jhjzhMBhjzubj)}(h'``struct msghdr *msg`` message to send h](j )}(h``struct msghdr *msg``h]j)}(hj{h]hstruct msghdr *msg}(hj {hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMChj{ubj')}(hhh]h)}(hmessage to sendh]hmessage to send}(hj!{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hMChj{ubah}(h]h ]h"]h$]h&]uh1j&hj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMChjzubj)}(h'``size_t dlen`` length of data to send h](j )}(h``size_t dlen``h]j)}(hjA{h]h size_t dlen}(hjC{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?{ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMDhj;{ubj')}(hhh]h)}(hlength of data to sendh]hlength of data to send}(hjZ{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV{hMDhjW{ubah}(h]h ]h"]h$]h&]uh1j&hj;{ubeh}(h]h ]h"]h$]h&]uh1jhjV{hMDhjzubj)}(h,``long timeout`` timeout to wait for wakeup h](j )}(h``long timeout``h]j)}(hjz{h]h long timeout}(hj|{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx{ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMEhjt{ubj')}(hhh]h)}(htimeout to wait for wakeuph]htimeout to wait for wakeup}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hMEhj{ubah}(h]h ]h"]h$]h&]uh1j&hjt{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMEhjzubeh}(h]h ]h"]h$]h&]uh1jhjqzubh)}(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.chMGhjqzubh)}(hECalled from function tipc_sendmsg(), which has done all sanity checksh]hECalled from function tipc_sendmsg(), which has done all sanity checks}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMFhjqzubh)}(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.chMHhjqzubh)}(h-the number of bytes sent on success, or errnoh]h-the number of bytes sent on success, or errno}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMHhjqzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j tipc_send_group_msg (C function)c.tipc_send_group_msghNtauh1jhj^hhhNhNubj$)}(hhh](j))}(hint tipc_send_group_msg (struct net *net, struct tipc_sock *tsk, struct msghdr *m, struct tipc_member *mb, u32 dnode, u32 dport, int dlen)h]j/)}(hint tipc_send_group_msg(struct net *net, struct tipc_sock *tsk, struct msghdr *m, struct tipc_member *mb, u32 dnode, u32 dport, int dlen)h](jG)}(hinth]hint}(hj!|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hj0|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|hhhj/|hMubjX)}(htipc_send_group_msgh]j^)}(htipc_send_group_msgh]htipc_send_group_msg}(hjB|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj>|ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj|hhhj/|hMubj)}(hr(struct net *net, struct tipc_sock *tsk, struct msghdr *m, struct tipc_member *mb, u32 dnode, u32 dport, int dlen)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hj^|hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjZ|ubjG)}(h h]h }(hjk|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjZ|ubh)}(hhh]j^)}(hneth]hnet}(hj||hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjy|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~|modnameN classnameNjj)}j]j)}jjD|sbc.tipc_send_group_msgasbuh1hhjZ|ubjG)}(h h]h }(hj|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjZ|ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ|ubj^)}(hneth]hnet}(hj|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjZ|ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjV|ubj%)}(hstruct tipc_sock *tskh](j5)}(hj8h]hstruct}(hj|hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj|ubjG)}(h h]h }(hj|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|ubh)}(hhh]j^)}(h tipc_sockh]h tipc_sock}(hj|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j|c.tipc_send_group_msgasbuh1hhj|ubjG)}(h h]h }(hj }hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj^)}(htskh]htsk}(hj'}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj|ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjV|ubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hj@}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj<}ubjG)}(h h]h }(hjM}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj<}ubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hj^}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj[}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`}modnameN classnameNjj)}j]j|c.tipc_send_group_msgasbuh1hhj<}ubjG)}(h h]h }(hj|}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj<}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<}ubj^)}(hjh]hm}(hj}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj<}ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjV|ubj%)}(hstruct tipc_member *mbh](j5)}(hj8h]hstruct}(hj}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj}ubjG)}(h h]h }(hj}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj}ubh)}(hhh]j^)}(h tipc_memberh]h tipc_member}(hj}hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j|c.tipc_send_group_msgasbuh1hhj}ubjG)}(h h]h }(hj}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj^)}(hmbh]hmb}(hj~hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjV|ubj%)}(h u32 dnodeh](h)}(hhh]j^)}(hu32h]hu32}(hj"~hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$~modnameN classnameNjj)}j]j|c.tipc_send_group_msgasbuh1hhj~ubjG)}(h h]h }(hj@~hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj~ubj^)}(hdnodeh]hdnode}(hjN~hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjV|ubj%)}(h u32 dporth](h)}(hhh]j^)}(hu32h]hu32}(hjj~hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjg~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjl~modnameN classnameNjj)}j]j|c.tipc_send_group_msgasbuh1hhjc~ubjG)}(h h]h }(hj~hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjc~ubj^)}(hdporth]hdport}(hj~hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjc~ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjV|ubj%)}(hint dlenh](jG)}(hinth]hint}(hj~hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj~ubjG)}(h h]h }(hj~hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj~ubj^)}(hdlenh]hdlen}(hj~hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjV|ubeh}(h]h ]h"]h$]h&]hhuh1jhj|hhhj/|hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj|hhhj/|hMubah}(h]j|ah ](jjeh"]h$]h&]jj)jhuh1j(hj/|hMhj|hhubj)}(hhh]h)}(h'send a message to a member in the grouph]h'send a message to a member in the group}(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&]uh1jhj|hhhj/|hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1j#hhhj^hNhNubj)}(hX$**Parameters** ``struct net *net`` network namespace ``struct tipc_sock *tsk`` tipc socket ``struct msghdr *m`` message to send ``struct tipc_member *mb`` group member ``u32 dnode`` destination node ``u32 dport`` destination port ``int dlen`` total length of message datah](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 net *net`` network namespace h](j )}(h``struct net *net``h]j)}(hj6h]hstruct net *net}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj0ubj')}(hhh]h)}(hnetwork namespaceh]hnetwork namespace}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjLubah}(h]h ]h"]h$]h&]uh1j&hj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj-ubj)}(h&``struct tipc_sock *tsk`` tipc socket h](j )}(h``struct tipc_sock *tsk``h]j)}(hjoh]hstruct tipc_sock *tsk}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjiubj')}(hhh]h)}(h tipc socketh]h tipc socket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(hmessage to sendh]hmessage to send}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubj)}(h(``struct tipc_member *mb`` group member h](j )}(h``struct tipc_member *mb``h]j)}(hjh]hstruct tipc_member *mb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(h group memberh]h group member}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubj)}(h``u32 dnode`` destination node h](j )}(h ``u32 dnode``h]j)}(hjh]h u32 dnode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(hdestination nodeh]hdestination node}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj-ubj)}(h``u32 dport`` destination port h](j )}(h ``u32 dport``h]j)}(hjSh]h u32 dport}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjMubj')}(hhh]h)}(hdestination porth]hdestination port}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjiubah}(h]h ]h"]h$]h&]uh1j&hjMubeh}(h]h ]h"]h$]h&]uh1jhjhhMhj-ubj)}(h)``int dlen`` total length of message datah](j )}(h ``int dlen``h]j)}(hjh]hint dlen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(htotal length of message datah]htotal length of message data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$tipc_send_group_unicast (C function)c.tipc_send_group_unicasthNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h[int tipc_send_group_unicast (struct socket *sock, struct msghdr *m, int dlen, long timeout)h]j/)}(hZint tipc_send_group_unicast(struct socket *sock, struct msghdr *m, int dlen, long timeout)h](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_send_group_unicasth]j^)}(htipc_send_group_unicasth]htipc_send_group_unicast}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(h?(struct socket *sock, struct msghdr *m, int dlen, long timeout)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hj#hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj0hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hjAhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jj sbc.tipc_send_group_unicastasbuh1hhjubjG)}(h h]h }(hjahhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsockh]hsock}(hj|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j]c.tipc_send_group_unicastasbuh1hhjubjG)}(h h]h }(hjсhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj߁hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hm}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint dlenh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hdlenh]hdlen}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h long timeouth](jG)}(hlongh]hlong}(hj9hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj5ubjG)}(h h]h }(hjGhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj5ubj^)}(htimeouth]htimeout}(hjUhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj5ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjހhhhjhMubah}(h]jـah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjۀhhubj)}(hhh]h)}(h%send message to a member in the grouph]h%send message to a member in the group}(hjhhhNhNubah}(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&]uh1jhjۀhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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)}(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`` socket structure h](j )}(h``struct socket *sock``h]j)}(hjh]hstruct socket *sock}(hj‚hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hjقhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjՂhMhjւubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjՂhMhjubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(hmessage to sendh]hmessage to send}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h*``int dlen`` total length of message data h](j )}(h ``int dlen``h]j)}(hj2h]hint dlen}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj,ubj')}(hhh]h)}(htotal length of message datah]htotal length of message data}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhMhjHubah}(h]h ]h"]h$]h&]uh1j&hj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjubj)}(h,``long timeout`` timeout to wait for wakeup h](j )}(h``long timeout``h]j)}(hjkh]h long timeout}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjeubj')}(hhh]h)}(htimeout to wait for wakeuph]htimeout to wait for wakeup}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjeubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(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)}(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.chMhjubh)}(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)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$tipc_send_group_anycast (C function)c.tipc_send_group_anycasthNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h[int tipc_send_group_anycast (struct socket *sock, struct msghdr *m, int dlen, long timeout)h]j/)}(hZint tipc_send_group_anycast(struct socket *sock, struct msghdr *m, int dlen, long timeout)h](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hj!hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhj hMubjX)}(htipc_send_group_anycasth]j^)}(htipc_send_group_anycasth]htipc_send_group_anycast}(hj3hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj/ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhj hMubj)}(h?(struct socket *sock, struct msghdr *m, int dlen, long timeout)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjOhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjKubjG)}(h h]h }(hj\hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjKubh)}(hhh]j^)}(hsocketh]hsocket}(hjmhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jj5sbc.tipc_send_group_anycastasbuh1hhjKubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj^)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjKubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjGubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj΄hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hj߄hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj܄ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_send_group_anycastasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hm}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjGubj%)}(hint dlenh](jG)}(hinth]hint}(hj0hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj,ubjG)}(h h]h }(hj>hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj,ubj^)}(hdlenh]hdlen}(hjLhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjGubj%)}(h long timeouth](jG)}(hlongh]hlong}(hjehhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjaubjG)}(h h]h }(hjshhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjaubj^)}(htimeouth]htimeout}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjaubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjGubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhj hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj hhhj hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hj hMhjhhubj)}(hhh]h)}(h.send message to any member with given identityh]h.send message to any member with given identity}(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&]uh1jhjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjÅjjÅjjjuh1j#hhhj^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.chMhjDž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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h%``struct msghdr *m`` message to send h](j )}(h``struct msghdr *m``h]j)}(hj%h]hstruct msghdr *m}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(hmessage to sendh]hmessage to send}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hMhj;ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj:hMhjubj)}(h*``int dlen`` total length of message data h](j )}(h ``int dlen``h]j)}(hj^h]hint dlen}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjXubj')}(hhh]h)}(htotal length of message datah]htotal length of message data}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshMhjtubah}(h]h ]h"]h$]h&]uh1j&hjXubeh}(h]h ]h"]h$]h&]uh1jhjshMhjubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(htimeout to wait for wakeuph]htimeout to wait for wakeup}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjDž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.chMhjDž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.chMhjDž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.chMhjDž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.chMhjDžubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"tipc_send_group_bcast (C function)c.tipc_send_group_bcasthNtauh1jhj^hhhNhNubj$)}(hhh](j))}(hYint tipc_send_group_bcast (struct socket *sock, struct msghdr *m, int dlen, long timeout)h]j/)}(hXint tipc_send_group_bcast(struct socket *sock, struct msghdr *m, int dlen, long timeout)h](jG)}(hinth]hint}(hj>hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj:hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM0ubjG)}(h h]h }(hjMhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj:hhhjLhM0ubjX)}(htipc_send_group_bcasth]j^)}(htipc_send_group_bcasth]htipc_send_group_bcast}(hj_hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj[ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj:hhhjLhM0ubj)}(h?(struct socket *sock, struct msghdr *m, int dlen, long timeout)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hj{hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjwubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjwubh)}(hhh]j^)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjasbc.tipc_send_group_bcastasbuh1hhjwubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjwubj)}(hjh]h*}(hjLJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj^)}(hsockh]hsock}(hjԇhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjwubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjsubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.tipc_send_group_bcastasbuh1hhjubjG)}(h h]h }(hj)hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hm}(hjDhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjsubj%)}(hint dlenh](jG)}(hinth]hint}(hj\hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjXubjG)}(h h]h }(hjjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjXubj^)}(hdlenh]hdlen}(hjxhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjXubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjsubj%)}(h long timeouth](jG)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(htimeouth]htimeout}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjsubeh}(h]h ]h"]h$]h&]hhuh1jhj:hhhjLhM0ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj6hhhjLhM0ubah}(h]j1ah ](jjeh"]h$]h&]jj)jhuh1j(hjLhM0hj3hhubj)}(hhh]h)}(h2send message to all members in communication grouph]h2send message to all members in communication group}(hj׈hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM0hjԈhhubah}(h]h ]h"]h$]h&]uh1jhj3hhhjLhM0ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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)}(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.chM4hjubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM1hjubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hM1hj.ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj-hM1hjubj)}(h%``struct msghdr *m`` message to send h](j )}(h``struct msghdr *m``h]j)}(hjQh]hstruct msghdr *m}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM2hjKubj')}(hhh]h)}(hmessage to sendh]hmessage to send}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhM2hjgubah}(h]h ]h"]h$]h&]uh1j&hjKubeh}(h]h ]h"]h$]h&]uh1jhjfhM2hjubj)}(h*``int dlen`` total length of message data h](j )}(h ``int dlen``h]j)}(hjh]hint dlen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM3hjubj')}(hhh]h)}(htotal length of message datah]htotal length of message data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM3hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM3hjubj)}(h,``long timeout`` timeout to wait for wakeup h](j )}(h``long timeout``h]j)}(hjÉh]h long timeout}(hjʼnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM4hjubj')}(hhh]h)}(htimeout to wait for wakeuph]htimeout to wait for wakeup}(hj܉hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj؉hM4hjىubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj؉hM4hjubeh}(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.chM6hjubh)}(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.chM5hjubh)}(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.chM7hjubh)}(h-the number of bytes sent on success, or errnoh]h-the number of bytes sent on success, or errno}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM7hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"tipc_send_group_mcast (C function)c.tipc_send_group_mcasthNtauh1jhj^hhhNhNubj$)}(hhh](j))}(hYint tipc_send_group_mcast (struct socket *sock, struct msghdr *m, int dlen, long timeout)h]j/)}(hXint tipc_send_group_mcast(struct socket *sock, struct msghdr *m, int dlen, long timeout)h](jG)}(hinth]hint}(hjjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjfhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMzubjG)}(h h]h }(hjyhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjfhhhjxhMzubjX)}(htipc_send_group_mcasth]j^)}(htipc_send_group_mcasth]htipc_send_group_mcast}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjfhhhjxhMzubj)}(h?(struct socket *sock, struct msghdr *m, int dlen, long timeout)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hjŊhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjŠubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNJmodnameN classnameNjj)}j]j)}jjsbc.tipc_send_group_mcastasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj&hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hj7hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]jc.tipc_send_group_mcastasbuh1hhjubjG)}(h h]h }(hjUhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hm}(hjphhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint dlenh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hdlenh]hdlen}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h long timeouth](jG)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjˋhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(htimeouth]htimeout}(hjًhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjfhhhjxhMzubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjbhhhjxhMzubah}(h]j]ah ](jjeh"]h$]h&]jj)jhuh1j(hjxhMzhj_hhubj)}(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.chMzhjhhubah}(h]h ]h"]h$]h&]uh1jhj_hhhjxhMzubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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~hjubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j )}(h``struct socket *sock``h]j)}(hjDh]hstruct socket *sock}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM{hj>ubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhM{hjZubah}(h]h ]h"]h$]h&]uh1j&hj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhM{hj;ubj)}(h%``struct msghdr *m`` message to send h](j )}(h``struct msghdr *m``h]j)}(hj}h]hstruct msghdr *m}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM|hjwubj')}(hhh]h)}(hmessage to sendh]hmessage to send}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM|hjubah}(h]h ]h"]h$]h&]uh1j&hjwubeh}(h]h ]h"]h$]h&]uh1jhjhM|hj;ubj)}(h*``int dlen`` total length of message data h](j )}(h ``int dlen``h]j)}(hjh]hint dlen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM}hjubj')}(hhh]h)}(htotal length of message datah]htotal length of message data}(hjόhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjˌhM}hǰubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjˌhM}hj;ubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM~hj;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)}(hECalled from function tipc_sendmsg(), which has done all sanity checksh]hECalled from function tipc_sendmsg(), which has done all sanity checks}(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)}(hjQh]hReturn}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubh)}(h-the number of bytes sent on success, or errnoh]h-the number of bytes sent on success, or errno}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sk_mcast_rcv (C function)c.tipc_sk_mcast_rcvhNtauh1jhj^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](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_sk_mcast_rcvh]j^)}(htipc_sk_mcast_rcvh]htipc_sk_mcast_rcv}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(hJ(struct net *net, struct sk_buff_head *arrvq, struct sk_buff_head *inputq)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjӍhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjύubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjύubh)}(hhh]j^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_sk_mcast_rcvasbuh1hhjύubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjύubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjύubj^)}(hneth]hnet}(hj,hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjύubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjˍubj%)}(hstruct sk_buff_head *arrvqh](j5)}(hj8h]hstruct}(hjEhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjAubjG)}(h h]h }(hjRhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjAubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjchhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]j c.tipc_sk_mcast_rcvasbuh1hhjAubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjAubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj^)}(harrvqh]harrvq}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjAubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjˍubj%)}(hstruct sk_buff_head *inputqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjŽhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjӎhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjЎubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjՎmodnameN classnameNjj)}j]j c.tipc_sk_mcast_rcvasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hinputqh]hinputq}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjˍubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(hhh]h)}(h5Deliver multicast messages to all destination socketsh]h5Deliver multicast messages to all destination sockets}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj3hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1j#hhhj^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)}(hjXh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjRubj)}(hhh](j)}(h5``struct net *net`` the associated network namespace h](j )}(h``struct net *net``h]j)}(hjwh]hstruct net *net}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjqubj')}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjqubeh}(h]h ]h"]h$]h&]uh1jhjhMhjnubj)}(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)}(hjh]hstruct sk_buff_head *arrvq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(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&]uh1hhjŏhMhjƏubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjŏhMhjnubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjnubeh}(h]h ]h"]h$]h&]uh1jhjRubh)}(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.chMhjRubh)}(hFMulti-threaded: parallel calls with reference to same queues may occurh]hFMulti-threaded: parallel calls with reference to same queues may occur}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#tipc_sk_conn_proto_rcv (C function)c.tipc_sk_conn_proto_rcvhNtauh1jhj^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](jG)}(hvoidh]hvoid}(hjihhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjehhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM'ubjG)}(h h]h }(hjxhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjehhhjwhM'ubjX)}(htipc_sk_conn_proto_rcvh]j^)}(htipc_sk_conn_proto_rcvh]htipc_sk_conn_proto_rcv}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjehhhjwhM'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](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_sockh]h tipc_sock}(hjĐhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjƐmodnameN classnameNjj)}j]j)}jjsbc.tipc_sk_conn_proto_rcvasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(htskh]htsk}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj6hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]jc.tipc_sk_conn_proto_rcvasbuh1hhjubjG)}(h h]h }(hjThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskbh]hskb}(hjohhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *inputqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_conn_proto_rcvasbuh1hhjubjG)}(h h]h }(hjđhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjґhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hinputqh]hinputq}(hjߑhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *xmitqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_conn_proto_rcvasbuh1hhjubjG)}(h h]h }(hj4hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hxmitqh]hxmitq}(hjOhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjehhhjwhM'ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjahhhjwhM'ubah}(h]j\ah ](jjeh"]h$]h&]jj)jhuh1j(hjwhM'hj^hhubj)}(hhh]h)}(h)receive a connection mng protocol messageh]h)receive a connection mng protocol message}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM'hjvhhubah}(h]h ]h"]h$]h&]uh1jhj^hhhjwhM'ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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)}(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 tipc_sock *tsk`` receiving 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM(hjubj')}(hhh]h)}(hreceiving socketh]hreceiving socket}(hjӒhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjϒhM(hjВubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjϒhM(hjubj)}(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&]uh1j hR/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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM)hj ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM)hjubj)}(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}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1j hR/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}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhM*hjBubah}(h]h ]h"]h$]h&]uh1j&hj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhM*hjubj)}(h2``struct sk_buff_head *xmitq`` output message areah](j )}(h``struct sk_buff_head *xmitq``h]j)}(hjeh]hstruct sk_buff_head *xmitq}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM,hj_ubj')}(hhh]h)}(houtput message areah]houtput message area}(hj~hhhNhNubah}(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&]uh1j&hj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhM,hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sendmsg (C function)c.tipc_sendmsghNtauh1jhj^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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhubjG)}(h h]h }(hjΓhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhj͓hMhubjX)}(h tipc_sendmsgh]j^)}(h tipc_sendmsgh]h tipc_sendmsg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjܓubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhj͓hMhubj)}(h3(struct socket *sock, struct msghdr *m, size_t dsz)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_sendmsgasbuh1hhjubjG)}(h h]h }(hj:hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsockh]hsock}(hjUhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hjnhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjjubjG)}(h h]h }(hj{hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjjubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j6c.tipc_sendmsgasbuh1hhjjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj^)}(hjh]hm}(hjŔhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h size_t dszh](h)}(hhh]j^)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjݔubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j6c.tipc_sendmsgasbuh1hhjٔubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjٔubj^)}(hdszh]hdsz}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjٔubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhj͓hMhubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhj͓hMhubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hj͓hMhhjhhubj)}(hhh]h)}(h%send message in connectionless mannerh]h%send message in connectionless manner}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhhj3hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj͓hMhubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1j#hhhj^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)}(hjXh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMlhjRubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j )}(h``struct socket *sock``h]j)}(hjwh]hstruct socket *sock}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMihjqubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMihjubah}(h]h ]h"]h$]h&]uh1j&hjqubeh}(h]h ]h"]h$]h&]uh1jhjhMihjnubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMjhjubj')}(hhh]h)}(hmessage to sendh]hmessage to send}(hjɕhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjŕhMjhjƕubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjŕhMjhjnubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMkhjubj')}(hhh]h)}(hamount of user data to be senth]hamount of user data to be sent}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMkhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMkhjnubeh}(h]h ]h"]h$]h&]uh1jhjRubh)}(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.chMmhjRubh)}(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.)}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMlhjRubh)}(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.chMqhjRubh)}(h7the number of bytes sent on success, or errno otherwiseh]h7the number of bytes sent on success, or errno otherwise}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMrhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sendstream (C function)c.tipc_sendstreamhNtauh1jhj^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](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_sendstreamh]j^)}(htipc_sendstreamh]htipc_sendstream}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(h3(struct socket *sock, struct msghdr *m, size_t dsz)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hj͖hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjɖubjG)}(h h]h }(hjږhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjɖubh)}(hhh]j^)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_sendstreamasbuh1hhjɖubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjɖubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjɖubj^)}(hsockh]hsock}(hj&hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjɖubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjŖubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hj?hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj;ubjG)}(h h]h }(hjLhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj;ubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hj]hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]jc.tipc_sendstreamasbuh1hhj;ubjG)}(h h]h }(hj{hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj^)}(hjh]hm}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj;ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjŖubj%)}(h size_t dszh](h)}(hhh]j^)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sendstreamasbuh1hhjubjG)}(h h]h }(hjϗhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hdszh]hdsz}(hjݗhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjŖubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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)}(hjHh]hstruct socket *sock}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjBubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hMhj^ubah}(h]h ]h"]h$]h&]uh1j&hjBubeh}(h]h ]h"]h$]h&]uh1jhj]hMhj?ubj)}(h"``struct msghdr *m`` data 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj{ubj')}(hhh]h)}(h data to sendh]h data to send}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMhj?ubj)}(h6``size_t dsz`` total length of data to be transmitted 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(h&total length of data to be transmittedh]h&total length of data to be transmitted}(hjӘhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjϘhMhjИubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjϘhMhj?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&]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.}(hj hhhNhNubah}(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)}(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}(hj2hhhNhNubah}(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&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_send_packet (C function)c.tipc_send_packethNtauh1jhj^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](jG)}(hinth]hint}(hjahhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj]hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMjubjG)}(h h]h }(hjphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj]hhhjohMjubjX)}(htipc_send_packeth]j^)}(htipc_send_packeth]htipc_send_packet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj~ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj]hhhjohMjubj)}(h3(struct socket *sock, struct msghdr *m, size_t dsz)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_send_packetasbuh1hhjubjG)}(h h]h }(hjܙhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hj.hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]jؙc.tipc_send_packetasbuh1hhj ubjG)}(h h]h }(hjLhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj^)}(hjh]hm}(hjghhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h size_t dszh](h)}(hhh]j^)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jؙc.tipc_send_packetasbuh1hhj{ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj{ubj^)}(hdszh]hdsz}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj{ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhj]hhhjohMjubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjYhhhjohMjubah}(h]jTah ](jjeh"]h$]h&]jj)jhuh1j(hjohMjhjVhhubj)}(hhh]h)}(h"send a connection-oriented messageh]h"send a connection-oriented message}(hjؚhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMjhj՚hhubah}(h]h ]h"]h$]h&]uh1jhjVhhhjohMjubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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.chMnhjubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMkhjubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hMkhj/ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj.hMkhjubj)}(h%``struct msghdr *m`` message to send h](j )}(h``struct msghdr *m``h]j)}(hjRh]hstruct msghdr *m}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMlhjLubj')}(hhh]h)}(hmessage to sendh]hmessage to send}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghMlhjhubah}(h]h ]h"]h$]h&]uh1j&hjLubeh}(h]h ]h"]h$]h&]uh1jhjghMlhjubj)}(h0``size_t dsz`` length of data to be transmitted 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMmhjubj')}(hhh]h)}(h length of data to be transmittedh]h length of data to be transmitted}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMmhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMmhjubeh}(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.chMohjubh)}(h!Used for SOCK_SEQPACKET messages.h]h!Used for SOCK_SEQPACKET messages.}(hjܛhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMnhjubh)}(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.chMphjubh)}(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.chMqhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"tipc_sk_set_orig_addr (C function)c.tipc_sk_set_orig_addrhNtauh1jhj^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](jG)}(hvoidh]hvoid}(hj2hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj.hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hjAhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj.hhhj@hMubjX)}(htipc_sk_set_orig_addrh]j^)}(htipc_sk_set_orig_addrh]htipc_sk_set_orig_addr}(hjShhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjOubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj.hhhj@hMubj)}(h'(struct msghdr *m, struct sk_buff *skb)h](j%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hjohhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjkubjG)}(h h]h }(hj|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjkubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjUsbc.tipc_sk_set_orig_addrasbuh1hhjkubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjkubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj^)}(hjh]hm}(hjȜhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjkubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjgubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjܜubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjܜubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_set_orig_addrasbuh1hhjܜubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjܜubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjܜubj^)}(hskbh]hskb}(hj7hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjܜubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjgubeh}(h]h ]h"]h$]h&]hhuh1jhj.hhhj@hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj*hhhj@hMubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1j(hj@hMhj'hhubj)}(hhh]h)}(h-capture sender's address for received messageh]h/capture sender’s address for received message}(hjahhhNhNubah}(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&]uh1jhj'hhhj@hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1j#hhhj^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)}(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.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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h)``struct sk_buff *skb`` received 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj՝ubj')}(hhh]h)}(hreceived messageh]hreceived message}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hj՝ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(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)}(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.chMhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"tipc_sk_anc_data_recv (C function)c.tipc_sk_anc_data_recvhNtauh1jhj^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](jG)}(hinth]hint}(hj[hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjWhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hjjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjWhhhjihMubjX)}(htipc_sk_anc_data_recvh]j^)}(htipc_sk_anc_data_recvh]htipc_sk_anc_data_recv}(hj|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjxubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjWhhhjihMubj)}(h>(struct msghdr *m, struct sk_buff *skb, struct tipc_sock *tsk)h](j%)}(hstruct msghdr *mh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj~sbc.tipc_sk_anc_data_recvasbuh1hhjubjG)}(h h]h }(hj֞hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hjh]hm}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hj hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hj'hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]jҞc.tipc_sk_anc_data_recvasbuh1hhjubjG)}(h h]h }(hjEhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskbh]hskb}(hj`hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct tipc_sock *tskh](j5)}(hj8h]hstruct}(hjyhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjuubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjuubh)}(hhh]j^)}(h tipc_sockh]h tipc_sock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jҞc.tipc_sk_anc_data_recvasbuh1hhjuubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjuubj)}(hjh]h*}(hjßhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj^)}(htskh]htsk}(hjПhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjuubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjWhhhjihMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjShhhjihMubah}(h]jNah ](jjeh"]h$]h&]jj)jhuh1j(hjihMhjPhhubj)}(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&]uh1jhjPhhhjihMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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)}(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)}(h1``struct msghdr *m`` descriptor for message info h](j )}(h``struct msghdr *m``h]j)}(hj;h]hstruct msghdr *m}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj5ubj')}(hhh]h)}(hdescriptor for message infoh]hdescriptor for message info}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMhjQubah}(h]h ]h"]h$]h&]uh1j&hj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMhj2ubj)}(h0``struct sk_buff *skb`` received 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjnubj')}(hhh]h)}(hreceived message bufferh]hreceived message buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhj2ubj)}(h<``struct tipc_sock *tsk`` TIPC port associated with message 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(h!TIPC port associated with messageh]h!TIPC port associated with message}(hjƠhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhjàubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj hMhj2ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(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.chMhjubh)}(hubjG)}(h h]h }(hjOhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj>ubh)}(hhh]j^)}(hmsghdrh]hmsghdr}(hj`hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j c.tipc_recvstreamasbuh1hhj>ubjG)}(h h]h }(hj~hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj>ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj^)}(hjh]hm}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjȤubj%)}(h size_t buflenh](h)}(hhh]j^)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.tipc_recvstreamasbuh1hhjubjG)}(h h]h }(hjҥhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hbuflenh]hbuflen}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjȤubj%)}(h int flagsh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjȤubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhjhhubj)}(hhh]h)}(hreceive stream-oriented datah]hreceive stream-oriented data}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1j#hhhj^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)}(hjah]h Parameters}(hjchhhNhNubah}(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`` network socket h](j )}(h``struct socket *sock``h]j)}(hjh]hstruct socket *sock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjzubj')}(hhh]h)}(hnetwork socketh]hnetwork socket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjzubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(hdescriptor for message infoh]hdescriptor for message info}(hjҦhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjΦhMhjϦubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjΦhMhjwubj)}(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&]uh1j hR/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(h``int flags`` receive flags h](j )}(h ``int flags``h]j)}(hj+h]h int flags}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj%ubj')}(hhh]h)}(h receive flagsh]h receive flags}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhjAubah}(h]h ]h"]h$]h&]uh1j&hj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhjwubeh}(h]h ]h"]h$]h&]uh1jhj[ubh)}(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:196: ./net/tipc/socket.chMhj[ubh)}(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.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.size of returned message data, errno otherwiseh]h.size of returned message data, errno otherwise}(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&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_write_space (C function)c.tipc_write_spacehNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h'void tipc_write_space (struct sock *sk)h]j/)}(h&void tipc_write_space(struct sock *sk)h](jG)}(hvoidh]hvoid}(hjҧhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjΧhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM>ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjΧhhhjhM>ubjX)}(htipc_write_spaceh]j^)}(htipc_write_spaceh]htipc_write_space}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjΧhhhjhM>ubj)}(h(struct sock *sk)h]j%)}(hstruct sock *skh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubh)}(hhh]j^)}(hsockh]hsock}(hj-hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jjsbc.tipc_write_spaceasbuh1hhj ubjG)}(h h]h }(hjMhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj^)}(hskh]hsk}(hjhhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubah}(h]h ]h"]h$]h&]hhuh1jhjΧhhhjhM>ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjʧhhhjhM>ubah}(h]jŧah ](jjeh"]h$]h&]jj)jhuh1j(hjhM>hjǧhhubj)}(hhh]h)}(h-wake up thread if port congestion is releasedh]h-wake up thread if port congestion is released}(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&]uh1jhjǧhhhjhM>ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^hNhNubj)}(h,**Parameters** ``struct sock *sk`` socketh](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.chMBhjubj)}(hhh]j)}(h``struct sock *sk`` socketh](j )}(h``struct sock *sk``h]j)}(hjӨh]hstruct sock *sk}(hjըhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjѨubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMDhjͨubj')}(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&]uh1j&hjͨubeh}(h]h ]h"]h$]h&]uh1jhjhMDhjʨubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_data_ready (C function)c.tipc_data_readyhNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h&void tipc_data_ready (struct sock *sk)h]j/)}(h%void tipc_data_ready(struct sock *sk)h](jG)}(hvoidh]hvoid}(hj-hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj)hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMNubjG)}(h h]h }(hj<hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj)hhhj;hMNubjX)}(htipc_data_readyh]j^)}(htipc_data_readyh]htipc_data_ready}(hjNhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjJubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj)hhhj;hMNubj)}(h(struct sock *sk)h]j%)}(hstruct sock *skh](j5)}(hj8h]hstruct}(hjjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjfubjG)}(h h]h }(hjwhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjfubh)}(hhh]j^)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjPsbc.tipc_data_readyasbuh1hhjfubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjfubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj^)}(hskh]hsk}(hjéhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjfubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjbubah}(h]h ]h"]h$]h&]hhuh1jhj)hhhj;hMNubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj%hhhj;hMNubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j(hj;hMNhj"hhubj)}(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.chMNhjhhubah}(h]h ]h"]h$]h&]uh1jhj"hhhj;hMNubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^hNhNubj)}(h,**Parameters** ``struct sock *sk`` socketh](h)}(h**Parameters**h]j)}(hjh]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.chMRhj ubj)}(hhh]j)}(h``struct sock *sk`` socketh](j )}(h``struct sock *sk``h]j)}(hj.h]hstruct sock *sk}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMThj(ubj')}(hhh]h)}(hsocketh]hsocket}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMOhjDubah}(h]h ]h"]h$]h&]uh1j&hj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMThj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#tipc_sk_filter_connect (C function)c.tipc_sk_filter_connecthNtauh1jhj^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](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMubjX)}(htipc_sk_filter_connecth]j^)}(htipc_sk_filter_connecth]htipc_sk_filter_connect}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMubj)}(hH(struct tipc_sock *tsk, struct sk_buff *skb, struct sk_buff_head *xmitq)h](j%)}(hstruct tipc_sock *tskh](j5)}(hj8h]hstruct}(hjĪhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjѪhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h tipc_sockh]h tipc_sock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjߪubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_sk_filter_connectasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(htskh]htsk}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hj6hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj2ubjG)}(h h]h }(hjChhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj2ubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]jc.tipc_sk_filter_connectasbuh1hhj2ubjG)}(h h]h }(hjrhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj2ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj2ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff_head *xmitqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjīhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjƫmodnameN classnameNjj)}j]jc.tipc_sk_filter_connectasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hxmitqh]hxmitq}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMubah}(h]j{ah ](jjeh"]h$]h&]jj)jhuh1j(hjhMhj}hhubj)}(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&]uh1jhj}hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?jj?jjjuh1j#hhhj^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)}(hjIh]h Parameters}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjCubj)}(hhh](j)}(h&``struct tipc_sock *tsk`` TIPC socket h](j )}(h``struct tipc_sock *tsk``h]j)}(hjhh]hstruct tipc_sock *tsk}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjbubj')}(hhh]h)}(h TIPC socketh]h TIPC socket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hMhj~ubah}(h]h ]h"]h$]h&]uh1j&hjbubeh}(h]h ]h"]h$]h&]uh1jhj}hMhj_ubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(hpointer to message buffer.h]hpointer to message buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj_ubj)}(h4``struct sk_buff_head *xmitq`` for Nagle ACK if any h](j )}(h``struct sk_buff_head *xmitq``h]j)}(hjڬh]hstruct sk_buff_head *xmitq}(hjܬhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjجubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjԬubj')}(hhh]h)}(hfor Nagle ACK if anyh]hfor Nagle ACK if any}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j&hjԬubeh}(h]h ]h"]h$]h&]uh1jhjhMhj_ubeh}(h]h ]h"]h$]h&]uh1jhjCubh)}(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.chMhjCubh)}(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.chMhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jrcvbuf_limit (C function)c.rcvbuf_limithNtauh1jhj^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](jG)}(hunsignedh]hunsigned}(hjZhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjVhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hjihhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjVhhhjhhMubjG)}(hinth]hint}(hjwhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjVhhhjhhMubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjVhhhjhhMubjX)}(h rcvbuf_limith]j^)}(h rcvbuf_limith]h rcvbuf_limit}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjVhhhjhhMubj)}(h&(struct sock *sk, struct sk_buff *skb)h](j%)}(hstruct sock *skh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsockh]hsock}(hjѭhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjέubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjӭmodnameN classnameNjj)}j]j)}jjsbc.rcvbuf_limitasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskh]hsk}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hj%hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj!ubjG)}(h h]h }(hj2hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj!ubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjChhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]jc.rcvbuf_limitasbuh1hhj!ubjG)}(h h]h }(hjahhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj!ubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj^)}(hskbh]hskb}(hj|hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjVhhhjhhMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjRhhhjhhMubah}(h]jMah ](jjeh"]h$]h&]jj)jhuh1j(hjhhMhjOhhubj)}(hhh]h)}(h1get proper overload limit of socket receive queueh]h1get proper overload limit of socket receive queue}(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&]uh1jhjOhhhjhhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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&]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 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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjޮubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(hmessageh]hmessage}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMhj6ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj5hMhjޮubeh}(h]h ]h"]h$]h&]uh1jhj®ubh)}(h**Description**h]j)}(hj[h]h Description}(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.chMhj®ubh)}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj®ubh)}(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:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhj®ubh)}(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)}(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.chM hj®ubh)}(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](jG)}(hinth]hint}(hjDzhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjòhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM] ubjG)}(h h]h }(hjֲhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjòhhhjղhM] ubjX)}(htipc_sk_backlog_rcvh]j^)}(htipc_sk_backlog_rcvh]htipc_sk_backlog_rcv}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjòhhhjղhM] ubj)}(h&(struct sock *sk, struct sk_buff *skb)h](j%)}(hstruct sock *skh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsockh]hsock}(hj"hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jjsbc.tipc_sk_backlog_rcvasbuh1hhjubjG)}(h h]h }(hjBhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskh]hsk}(hj]hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjvhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjrubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j>c.tipc_sk_backlog_rcvasbuh1hhjrubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj^)}(hskbh]hskb}(hjͳhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjrubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjòhhhjղhM] ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjղhM] ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjղhM] hjhhubj)}(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.chM] hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjղhM] ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^hNhNubj)}(h~**Parameters** ``struct sock *sk`` socket ``struct sk_buff *skb`` message **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.chMa hjubj)}(hhh](j)}(h``struct sock *sk`` socket h](j )}(h``struct sock *sk``h]j)}(hj8h]hstruct sock *sk}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM^ hj2ubj')}(hhh]h)}(hsocketh]hsocket}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhM^ hjNubah}(h]h ]h"]h$]h&]uh1j&hj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhM^ hj/ubj)}(h ``struct sk_buff *skb`` message h](j )}(h``struct sk_buff *skb``h]j)}(hjqh]hstruct sk_buff *skb}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM_ hjkubj')}(hhh]h)}(hmessageh]hmessage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM_ hjubah}(h]h ]h"]h$]h&]uh1j&hjkubeh}(h]h ]h"]h$]h&]uh1jhjhM_ 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.chMa 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.chM` hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sk_enqueue (C function)c.tipc_sk_enqueuehNtauh1jhj^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](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMu ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMu ubjX)}(htipc_sk_enqueueh]j^)}(htipc_sk_enqueueh]htipc_sk_enqueue}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMu ubj)}(hU(struct sk_buff_head *inputq, struct sock *sk, u32 dport, struct sk_buff_head *xmitq)h](j%)}(hstruct sk_buff_head *inputqh](j5)}(hj8h]hstruct}(hj.hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj*ubjG)}(h h]h }(hj;hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj*ubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjLhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}jjsbc.tipc_sk_enqueueasbuh1hhj*ubjG)}(h h]h }(hjlhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj*ubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj^)}(hinputqh]hinputq}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj&ubj%)}(hstruct sock *skh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jhc.tipc_sk_enqueueasbuh1hhjubjG)}(h h]h }(hjܵhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj&ubj%)}(h u32 dporth](h)}(hhh]j^)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jhc.tipc_sk_enqueueasbuh1hhj ubjG)}(h h]h }(hj1hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj ubj^)}(hdporth]hdport}(hj?hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj&ubj%)}(hstruct sk_buff_head *xmitqh](j5)}(hj8h]hstruct}(hjXhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjTubjG)}(h h]h }(hjehhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjTubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjvhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]jhc.tipc_sk_enqueueasbuh1hhjTubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjTubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj^)}(hxmitqh]hxmitq}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjTubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj&ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMu ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMu ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMu hjhhubj)}(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}(hjٶhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMu hjֶhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMu ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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.chMy 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)}(hjh]hstruct sk_buff_head *inputq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMw hjubj')}(hhh]h)}(h@list of incoming buffers with potentially different destinationsh]h@list of incoming buffers with potentially different destinations}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMw hj0ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj/hMw hjubj)}(h@``struct sock *sk`` socket where the buffers should be enqueued h](j )}(h``struct sock *sk``h]j)}(hjSh]hstruct sock *sk}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMx hjMubj')}(hhh]h)}(h+socket where the buffers should be enqueuedh]h+socket where the buffers should be enqueued}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMx hjiubah}(h]h ]h"]h$]h&]uh1j&hjMubeh}(h]h ]h"]h$]h&]uh1jhjhhMx hjubj)}(h)``u32 dport`` port number for the socket h](j )}(h ``u32 dport``h]j)}(hjh]h u32 dport}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMy hjubj')}(hhh]h)}(hport number for the socketh]hport number for the socket}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMy hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMy hjubj)}(h,``struct sk_buff_head *xmitq`` output queue h](j )}(h``struct sk_buff_head *xmitq``h]j)}(hjŷh]hstruct sk_buff_head *xmitq}(hjǷhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj÷ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMz hjubj')}(hhh]h)}(h output queueh]h output queue}(hj޷hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjڷhMz hj۷ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjڷhMz 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)}(hCaller must hold socket lockh]hCaller must hold socket lock}(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&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sk_rcv (C function) c.tipc_sk_rcvhNtauh1jhj^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](jG)}(hvoidh]hvoid}(hjEhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjAhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubjG)}(h h]h }(hjThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjAhhhjShM ubjX)}(h tipc_sk_rcvh]j^)}(h tipc_sk_rcvh]h tipc_sk_rcv}(hjfhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjbubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjAhhhjShM ubj)}(h.(struct net *net, struct sk_buff_head *inputq)h](j%)}(hstruct net *neth](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj~ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj~ubh)}(hhh]j^)}(hneth]hnet}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjhsb c.tipc_sk_rcvasbuh1hhj~ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj~ubj)}(hjh]h*}(hjθhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj^)}(hneth]hnet}(hj۸hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjzubj%)}(hstruct sk_buff_head *inputqh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(h sk_buff_headh]h sk_buff_head}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.tipc_sk_rcvasbuh1hhjubjG)}(h h]h }(hj0hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hinputqh]hinputq}(hjKhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjzubeh}(h]h ]h"]h$]h&]hhuh1jhjAhhhjShM ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj=hhhjShM ubah}(h]j8ah ](jjeh"]h$]h&]jj)jhuh1j(hjShM hj:hhubj)}(hhh]h)}(h"handle a chain of incoming buffersh]h"handle a chain of incoming buffers}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjrhhubah}(h]h ]h"]h$]h&]uh1jhj:hhhjShM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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)}(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)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj')}(hhh]h)}(h the associated network namespaceh]h the associated network namespace}(hjϹhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj˹hM hj̹ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj˹hM hjubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(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.chM hjubh)}(h=may be called in multiple threads referring to the same queueh]h=may be called in multiple threads referring to the same queue}(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&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_connect (C function)c.tipc_connecthNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h]int tipc_connect (struct socket *sock, struct sockaddr_unsized *dest, int destlen, int flags)h]j/)}(h\int tipc_connect(struct socket *sock, struct sockaddr_unsized *dest, int destlen, int flags)h](jG)}(hinth]hint}(hjphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjlhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjlhhhj~hM ubjX)}(h tipc_connecth]j^)}(h tipc_connecth]h tipc_connect}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjlhhhj~hM ubj)}(hL(struct socket *sock, struct sockaddr_unsized *dest, int destlen, int flags)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hj˺hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjȺubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjͺmodnameN classnameNjj)}j]j)}jjsbc.tipc_connectasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sockaddr_unsized *desth](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj,hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsockaddr_unsizedh]hsockaddr_unsized}(hj=hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]jc.tipc_connectasbuh1hhjubjG)}(h h]h }(hj[hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hdesth]hdest}(hjvhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h int destlenh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hdestlenh]hdestlen}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h int flagsh](jG)}(hinth]hint}(hjĻhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjһhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjlhhhj~hM ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhhj~hM ubah}(h]jcah ](jjeh"]h$]h&]jj)jhuh1j(hj~hM hjehhubj)}(hhh]h)}(h+establish a connection to another TIPC porth]h+establish a connection to another TIPC port}(hj hhhNhNubah}(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&]uh1jhjehhhj~hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj"jj"jjjuh1j#hhhj^hNhNubj)}(hX"**Parameters** ``struct socket *sock`` socket structure ``struct sockaddr_unsized *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}(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)}(hjKh]hstruct socket *sock}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjEubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hM hjaubah}(h]h ]h"]h$]h&]uh1j&hjEubeh}(h]h ]h"]h$]h&]uh1jhj`hM hjBubj)}(hF``struct sockaddr_unsized *dest`` socket address for destination port h](j )}(h!``struct sockaddr_unsized *dest``h]j)}(hjh]hstruct sockaddr_unsized *dest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj~ubj')}(hhh]h)}(h#socket address for destination porth]h#socket address for destination port}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hj~ubeh}(h]h ]h"]h$]h&]uh1jhjhM hjBubj)}(h6``int destlen`` size of socket address data structure h](j )}(h``int destlen``h]j)}(hjh]h int destlen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj')}(hhh]h)}(h%size of socket address data structureh]h%size of socket address data structure}(hjּhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjҼhM hjӼubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjҼhM hjBubj)}(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&]uh1j hR/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM hj ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj hM hjBubeh}(h]h ]h"]h$]h&]uh1jhj&ubh)}(h **Return**h]j)}(hj1h]hReturn}(hj3hhhNhNubah}(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)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hjGhhhNhNubah}(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&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_listen (C function) c.tipc_listenhNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h.int tipc_listen (struct socket *sock, int len)h]j/)}(h-int tipc_listen(struct socket *sock, int len)h](jG)}(hinth]hint}(hjvhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMf ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjrhhhjhMf ubjX)}(h tipc_listenh]j^)}(h tipc_listenh]h tipc_listen}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjrhhhjhMf ubj)}(h(struct socket *sock, int len)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hjѽhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjνubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjӽmodnameN classnameNjj)}j]j)}jjsb c.tipc_listenasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsockh]hsock}(hj hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint lenh](jG)}(hinth]hint}(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj!ubjG)}(h h]h }(hj3hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj!ubj^)}(hlenh]hlen}(hjAhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjrhhhjhMf ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjnhhhjhMf ubah}(h]jiah ](jjeh"]h$]h&]jj)jhuh1j(hjhMf hjkhhubj)}(hhh]h)}(h/allow socket to listen for incoming connectionsh]h/allow socket to listen for incoming connections}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMf hjhhhubah}(h]h ]h"]h$]h&]uh1jhjkhhhjhMf ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^hNhNubj)}(h}**Parameters** ``struct socket *sock`` socket structure ``int len`` (unused) **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.chMj 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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMg hjubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hjžhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMg hj¾ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMg hjubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMh hj߾ubj')}(hhh]h)}(h(unused)h]h(unused)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMh hjubah}(h]h ]h"]h$]h&]uh1j&hj߾ubeh}(h]h ]h"]h$]h&]uh1jhjhMh hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hj h]hReturn}(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.chMj hjubh)}(h0 on success, errno otherwiseh]h0 on success, errno otherwise}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMj hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_accept (C function) c.tipc_accepthNtauh1jhj^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](jG)}(hinth]hint}(hjehhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjahhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubjG)}(h h]h }(hjthhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjahhhjshM ubjX)}(h tipc_accepth]j^)}(h tipc_accepth]h tipc_accept}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjahhhjshM ubj)}(hL(struct socket *sock, struct socket *new_sock, struct proto_accept_arg *arg)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj¿modnameN classnameNjj)}j]j)}jjsb c.tipc_acceptasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct socket *new_sockh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj!hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hj2hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]jܿ c.tipc_acceptasbuh1hhjubjG)}(h h]h }(hjPhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hnew_sockh]hnew_sock}(hjkhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct proto_accept_arg *argh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hproto_accept_argh]hproto_accept_arg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jܿ c.tipc_acceptasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hargh]harg}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjahhhjshM ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj]hhhjshM ubah}(h]jXah ](jjeh"]h$]h&]jj)jhuh1j(hjshM hjZhhubj)}(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&]uh1jhjZhhhjshM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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)}(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`` listening socket h](j )}(h``struct socket *sock``h]j)}(hjFh]hstruct socket *sock}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj@ubj')}(hhh]h)}(hlistening socketh]hlistening socket}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hM hj\ubah}(h]h ]h"]h$]h&]uh1j&hj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hM hj=ubj)}(h?``struct socket *new_sock`` new socket that is to be connected h](j )}(h``struct socket *new_sock``h]j)}(hjh]hstruct socket *new_sock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjyubj')}(hhh]h)}(h"new socket that is to be connectedh]h"new socket that is to be connected}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hjyubeh}(h]h ]h"]h$]h&]uh1jhjhM hj=ubj)}(h6``struct proto_accept_arg *arg`` arguments for accept h](j )}(h ``struct proto_accept_arg *arg``h]j)}(hjh]hstruct proto_accept_arg *arg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj')}(hhh]h)}(harguments for accepth]harguments for accept}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj=ubeh}(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}(hj hhhNhNubah}(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&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_shutdown (C function)c.tipc_shutdownhNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h0int tipc_shutdown (struct socket *sock, int how)h]j/)}(h/int tipc_shutdown(struct socket *sock, int how)h](jG)}(hinth]hint}(hj8hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj4hhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubjG)}(h h]h }(hjGhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj4hhhjFhM ubjX)}(h tipc_shutdownh]j^)}(h tipc_shutdownh]h tipc_shutdown}(hjYhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjUubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhj4hhhjFhM ubj)}(h(struct socket *sock, int how)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjuhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjqubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjqubh)}(hhh]j^)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj[sbc.tipc_shutdownasbuh1hhjqubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjqubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj^)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjqubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjmubj%)}(hint howh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hhowh]hhow}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjmubeh}(h]h ]h"]h$]h&]hhuh1jhj4hhhjFhM ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hj0hhhjFhM ubah}(h]j+ah ](jjeh"]h$]h&]jj)jhuh1j(hjFhM hj-hhubj)}(hhh]h)}(hshutdown socket connectionh]hshutdown socket connection}(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&]uh1jhj-hhhjFhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjEjjEjjjuh1j#hhhj^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)}(hjOh]h Parameters}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjIubj)}(hhh](j)}(h)``struct socket *sock`` socket structure h](j )}(h``struct socket *sock``h]j)}(hjnh]hstruct socket *sock}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjhubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hjhubeh}(h]h ]h"]h$]h&]uh1jhjhM hjeubj)}(h3``int how`` direction to close (must be SHUT_RDWR) h](j )}(h ``int how``h]j)}(hjh]hint how}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjubj')}(hhh]h)}(h&direction to close (must be SHUT_RDWR)h]h&direction to close (must be SHUT_RDWR)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjeubeh}(h]h ]h"]h$]h&]uh1jhjIubh)}(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 hjIubh)}(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 hjIubh)}(h **Return**h]j)}(hj h]hReturn}(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.chM hjIubh)}(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 hjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_setsockopt (C function)c.tipc_setsockopthNtauh1jhj^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](jG)}(hinth]hint}(hjNhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM9 ubjG)}(h h]h }(hj]hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjJhhhj\hM9 ubjX)}(htipc_setsockopth]j^)}(htipc_setsockopth]htipc_setsockopt}(hjohhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjkubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjJhhhj\hM9 ubj)}(hF(struct socket *sock, int lvl, int opt, sockptr_t ov, unsigned int ol)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjqsbc.tipc_setsockoptasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsockh]hsock}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint lvlh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hlvlh]hlvl}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint opth](jG)}(hinth]hint}(hj2hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj.ubjG)}(h h]h }(hj@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj.ubj^)}(hopth]hopt}(hjNhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h sockptr_t ovh](h)}(hhh]j^)}(h sockptr_th]h sockptr_t}(hjjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]jc.tipc_setsockoptasbuh1hhjcubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjcubj^)}(hovh]hov}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjcubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hunsigned int olh](jG)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(holh]hol}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjJhhhj\hM9 ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjFhhhj\hM9 ubah}(h]jAah ](jjeh"]h$]h&]jj)jhuh1j(hj\hM9 hjChhubj)}(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.chM9 hjhhubah}(h]h ]h"]h$]h&]uh1jhjChhhj\hM9 ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj)jj)jjjuh1j#hhhj^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)}(hj3h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(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)}(hjRh]hstruct socket *sock}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM: hjLubj')}(hhh]h)}(hsocket structureh]hsocket structure}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghM: hjhubah}(h]h ]h"]h$]h&]uh1j&hjLubeh}(h]h ]h"]h$]h&]uh1jhjghM: hjIubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM; hjIubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM< hjubj')}(hhh]h)}(hoption identifierh]hoption identifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM< hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM< hjIubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM= hjubj')}(hhh]h)}(hpointer to new option valueh]hpointer to new option value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM= hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM= hjIubj)}(h+``unsigned int ol`` length of option value h](j )}(h``unsigned int ol``h]j)}(hj6h]hunsigned int ol}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM> hj0ubj')}(hhh]h)}(hlength of option valueh]hlength of option value}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhM> hjLubah}(h]h ]h"]h$]h&]uh1j&hj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhM> hjIubeh}(h]h ]h"]h$]h&]uh1jhj-ubh)}(h**Description**h]j)}(hjqh]h Description}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM@ hj-ubh)}(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).}(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.chMB 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.chMC hj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_getsockopt (C function)c.tipc_getsockopthNtauh1jhj^hhhNhNubj$)}(hhh](j))}(hLint tipc_getsockopt (struct socket *sock, int lvl, int opt, sockopt_t *sopt)h]j/)}(hKint tipc_getsockopt(struct socket *sock, int lvl, int opt, sockopt_t *sopt)h](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhM ubjX)}(htipc_getsockopth]j^)}(htipc_getsockopth]htipc_getsockopt}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhM ubj)}(h8(struct socket *sock, int lvl, int opt, sockopt_t *sopt)h](j%)}(hstruct socket *sockh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hj'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsocketh]hsocket}(hj8hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jjsbc.tipc_getsockoptasbuh1hhjubjG)}(h h]h }(hjXhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsockh]hsock}(hjshhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint lvlh](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hlvlh]hlvl}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint opth](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hopth]hopt}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hsockopt_t *sopth](h)}(hhh]j^)}(h sockopt_th]h sockopt_t}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jTc.tipc_getsockoptasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hsopth]hsopt}(hj2hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhM hjhhubj)}(hhh]h)}(hget socket optionh]hget socket option}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjYhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtjjtjjjuh1j#hhhj^hNhNubj)}(hXt**Parameters** ``struct socket *sock`` socket structure ``int lvl`` option level ``int opt`` option identifier ``sockopt_t *sopt`` socket option container (input buffer length, output value/length) **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)}(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 hjxubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(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&]uh1j hR/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&]uh1j&hjubeh}(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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hj ubj')}(hhh]h)}(hoption identifierh]hoption identifier}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hM hj%ubah}(h]h ]h"]h$]h&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj$hM hjubj)}(hW``sockopt_t *sopt`` socket option container (input buffer length, output value/length) h](j )}(h``sockopt_t *sopt``h]j)}(hjHh]hsockopt_t *sopt}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM hjBubj')}(hhh]h)}(hBsocket option container (input buffer length, output value/length)h]hBsocket option container (input buffer length, output value/length)}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hM hj^ubah}(h]h ]h"]h$]h&]uh1j&hjBubeh}(h]h ]h"]h$]h&]uh1jhj]hM hjubeh}(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:196: ./net/tipc/socket.chM hjxubh)}(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 hjxubh)}(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 hjxubh)}(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 hjxubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_socket_init (C function)c.tipc_socket_inithNtauh1jhj^hhhNhNubj$)}(hhh](j))}(hint tipc_socket_init (void)h]j/)}(hint tipc_socket_init(void)h](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMh ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMh ubjX)}(htipc_socket_inith]j^)}(htipc_socket_inith]htipc_socket_init}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMh ubj)}(h(void)h]j%)}(hvoidh]jG)}(hvoidh]hvoid}(hj,hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj(ubah}(h]h ]h"]h$]h&]noemphhhuh1j$hj$ubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMh ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMh ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMh hjhhubj)}(hhh]h)}(h initialize TIPC socket interfaceh]h initialize TIPC socket interface}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMh hjShhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMh ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1j#hhhj^hNhNubj)}(hR**Parameters** ``void`` no arguments **Return** 0 on success, errno otherwiseh](h)}(h**Parameters**h]j)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMl hjrubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chKhjubj')}(hhh]h)}(h no argumentsh]h no arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjrubh)}(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.chKhjrubh)}(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.chMj hjrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_socket_stop (C function)c.tipc_socket_stophNtauh1jhj^hhhNhNubj$)}(hhh](j))}(hvoid tipc_socket_stop (void)h]j/)}(hvoid tipc_socket_stop(void)h](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM ubjG)}(h h]h }(hj&hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhj%hM ubjX)}(htipc_socket_stoph]j^)}(htipc_socket_stoph]htipc_socket_stop}(hj8hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj4ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhj%hM ubj)}(h(void)h]j%)}(hvoidh]jG)}(hvoidh]hvoid}(hjThhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjPubah}(h]h ]h"]h$]h&]noemphhhuh1j$hjLubah}(h]h ]h"]h$]h&]hhuh1jhjhhhj%hM ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhj%hM ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j(hj%hM hj hhubj)}(hhh]h)}(hstop TIPC socket interfaceh]hstop TIPC socket interface}(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&]uh1jhj hhhj%hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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&]uh1j hR/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.chKhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sk_filtering (C function)c.tipc_sk_filteringhNtauh1jhj^hhhNhNubj$)}(hhh](j))}(h(bool tipc_sk_filtering (struct sock *sk)h]j/)}(h'bool tipc_sk_filtering(struct sock *sk)h](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMubjG)}(h h]h }(hj'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhj&hMubjX)}(htipc_sk_filteringh]j^)}(htipc_sk_filteringh]htipc_sk_filtering}(hj9hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj5ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhj&hMubj)}(h(struct sock *sk)h]j%)}(hstruct sock *skh](j5)}(hj8h]hstruct}(hjUhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjQubjG)}(h h]h }(hjbhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjQubh)}(hhh]j^)}(hsockh]hsock}(hjshhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jj;sbc.tipc_sk_filteringasbuh1hhjQubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjQubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj^)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjQubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjMubah}(h]h ]h"]h$]h&]hhuh1jhjhhhj&hMubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhj&hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j(hj&hMhjhhubj)}(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&]uh1jhjhhhj&hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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)}(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 sock *sk`` the socket to be examined h](j )}(h``struct sock *sk``h]j)}(hjh]hstruct sock *sk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubj')}(hhh]h)}(hthe socket to be examinedh]hthe socket to be examined}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hMhj/ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj.hMhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjTh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMhjubh)}(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}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubhb is used as the socket tuple for filtering: (portid, sock type, name type, name lower, name upper)}(hjjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.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:196: ./net/tipc/socket.chMhjubh)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sk_overlimit1 (C function)c.tipc_sk_overlimit1hNtauh1jhj^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](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM7ubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhM7ubjX)}(htipc_sk_overlimit1h]j^)}(htipc_sk_overlimit1h]htipc_sk_overlimit1}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhM7ubj)}(h&(struct sock *sk, struct sk_buff *skb)h](j%)}(hstruct sock *skh](j5)}(hj8h]hstruct}(hj hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsockh]hsock}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jjsbc.tipc_sk_overlimit1asbuh1hhjubjG)}(h h]h }(hjHhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskh]hsk}(hjchhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hj|hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjxubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjxubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jDc.tipc_sk_overlimit1asbuh1hhjxubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjxubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjxubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM7ubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhM7ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhM7hjhhubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM7hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM7ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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}(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.chM;hjubj)}(hhh](j)}(h*``struct sock *sk`` tipc sk to be checked h](j )}(h``struct sock *sk``h]j)}(hj>h]hstruct sock *sk}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM9hj8ubj')}(hhh]h)}(htipc sk to be checkedh]htipc sk to be checked}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShM9hjTubah}(h]h ]h"]h$]h&]uh1j&hj8ubeh}(h]h ]h"]h$]h&]uh1jhjShM9hj5ubj)}(h/``struct sk_buff *skb`` tipc msg to be checked h](j )}(h``struct sk_buff *skb``h]j)}(hjwh]hstruct sk_buff *skb}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM:hjqubj')}(hhh]h)}(htipc msg to be checkedh]htipc msg to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM:hjubah}(h]h ]h"]h$]h&]uh1j&hjqubeh}(h]h ]h"]h$]h&]uh1jhjhM:hj5ubeh}(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)}(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.chM<hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sk_overlimit2 (C function)c.tipc_sk_overlimit2hNtauh1jhj^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](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMIubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhMIubjX)}(htipc_sk_overlimit2h]j^)}(htipc_sk_overlimit2h]htipc_sk_overlimit2}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhMIubj)}(h&(struct sock *sk, struct sk_buff *skb)h](j%)}(hstruct sock *skh](j5)}(hj8h]hstruct}(hj3hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj/ubjG)}(h h]h }(hj@hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj/ubh)}(hhh]j^)}(hsockh]hsock}(hjQhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j)}jjsbc.tipc_sk_overlimit2asbuh1hhj/ubjG)}(h h]h }(hjqhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj/ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj^)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj+ubj%)}(hstruct sk_buff *skbh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(hsk_buffh]hsk_buff}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jmc.tipc_sk_overlimit2asbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hskbh]hskb}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj+ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMIubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhMIubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhMIhjhhubj)}(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}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMIhj#hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMIubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1j#hhhj^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)}(hjHh]h Parameters}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMMhjBubj)}(hhh](j)}(h*``struct sock *sk`` tipc sk to be checked h](j )}(h``struct sock *sk``h]j)}(hjgh]hstruct sock *sk}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMKhjaubj')}(hhh]h)}(htipc sk to be checkedh]htipc sk to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hMKhj}ubah}(h]h ]h"]h$]h&]uh1j&hjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMKhj^ubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMLhjubj')}(hhh]h)}(htipc msg to be checkedh]htipc msg to be checked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMLhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMLhj^ubeh}(h]h ]h"]h$]h&]uh1jhjBubh)}(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.chMNhjBubh)}(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.chMNhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_sk_dump (C function)c.tipc_sk_dumphNtauh1jhj^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](jG)}(hinth]hint}(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMZubjG)}(h h]h }(hj/hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhj.hMZubjX)}(h tipc_sk_dumph]j^)}(h tipc_sk_dumph]h tipc_sk_dump}(hjAhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj=ubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhj.hMZubj)}(h)(struct sock *sk, u16 dqueues, char *buf)h](j%)}(hstruct sock *skh](j5)}(hj8h]hstruct}(hj]hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjYubjG)}(h h]h }(hjjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjYubh)}(hhh]j^)}(hsockh]hsock}(hj{hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j)}jjCsbc.tipc_sk_dumpasbuh1hhjYubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj^)}(hskh]hsk}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjYubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjUubj%)}(h u16 dqueuesh](h)}(hhh]j^)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tipc_sk_dumpasbuh1hhjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj^)}(hdqueuesh]hdqueues}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjUubj%)}(h char *bufh](jG)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubjG)}(h h]h }(hj%hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(hbufh]hbuf}(hj@hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjUubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhj.hMZubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhj.hMZubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hj.hMZhjhhubj)}(hhh]h)}(hdump TIPC socketh]hdump TIPC socket}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMZhjghhubah}(h]h ]h"]h$]h&]uh1jhjhhhj.hMZubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhj^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.chM^hjubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chM[hjubj')}(hhh]h)}(htipc sk to be dumpedh]htipc sk to be dumped}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM[hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhM[hjubj)}(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)}(hjh]h u16 dqueues}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMahjubj')}(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}(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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhMahjubj)}(h4``char *buf`` returned buffer of dump data in formath](j )}(h ``char *buf``h]j)}(hjh]h char *buf}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMchjubj')}(hhh]h)}(h&returned buffer of dump data in formath]h&returned buffer of dump data in format}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:196: ./net/tipc/socket.chMbhj4ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj3hMchjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubeh}(h]tipc-socket-interfacesah ]h"]tipc socket interfacesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(h TIPC Network Topology Interfacesh]h TIPC Network Topology Interfaces}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghhhhhKubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#tipc_sub_check_overlap (C function)c.tipc_sub_check_overlaphNtauh1jhjghhhNhNubj$)}(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](jG)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKCubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKCubjX)}(htipc_sub_check_overlaph]j^)}(htipc_sub_check_overlaph]htipc_sub_check_overlap}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKCubj)}(hI(struct tipc_service_range *subscribed, struct tipc_service_range *found)h](j%)}(h%struct tipc_service_range *subscribedh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubh)}(hhh]j^)}(htipc_service_rangeh]htipc_service_range}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tipc_sub_check_overlapasbuh1hhjubjG)}(h h]h }(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(h subscribedh]h subscribed}(hj&hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h struct tipc_service_range *foundh](j5)}(hj8h]hstruct}(hj?hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hj;ubjG)}(h h]h }(hjLhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj;ubh)}(hhh]j^)}(htipc_service_rangeh]htipc_service_range}(hj]hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]jc.tipc_sub_check_overlapasbuh1hhj;ubjG)}(h h]h }(hj{hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj^)}(hfoundh]hfound}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hj;ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKCubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKCubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKChjhhubj)}(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&]uh1jhjhhhjhKCubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j#hhhjghNhNubj)}(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)}(hjh]h Parameters}(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.chKGhjubj)}(hhh](j)}(hK``struct tipc_service_range *subscribed`` the service range subscribed for h](j )}(h)``struct tipc_service_range *subscribed``h]j)}(hjh]h%struct tipc_service_range *subscribed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKDhjubj')}(hhh]h)}(h the service range subscribed forh]h the service range subscribed for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKDhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKDhjubj)}(hQ``struct tipc_service_range *found`` the service range we are checking for match h](j )}(h$``struct tipc_service_range *found``h]j)}(hj:h]h struct tipc_service_range *found}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:202: ./net/tipc/subscr.chKEhj4ubj')}(hhh]h)}(h+the service range we are checking for matchh]h+the service range we are checking for match}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhKEhjPubah}(h]h ]h"]h$]h&]uh1j&hj4ubeh}(h]h ]h"]h$]h&]uh1jhjOhKEhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjuh]h Description}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(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.chKFhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjghhhNhNubeh}(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](jtipc_topsrv (C struct) c.tipc_topsrvhNtauh1jhjhhhNhNubj$)}(hhh](j))}(h tipc_topsrvh]j/)}(hstruct tipc_topsrvh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKubjX)}(h tipc_topsrvh]j^)}(hjh]h tipc_topsrv}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKhjhhubj)}(hhh]h)}(hTIPC server structureh]hTIPC server structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK8hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjj-jj-jjjuh1j#hhhjhNhNubj)}(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 namespace instance ``awork`` accept work item ``rcv_wq`` receive workqueue ``send_wq`` send workqueue ``listener`` topsrv listener socket ``name`` server nameˆh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubh:}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKhj1ubh)}(h **Members**h]j)}(hjch]hMembers}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKJhj1ubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK:hj|ubj')}(hhh]h)}(hidentifier set of connectionh]hidentifier set of connection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK:hjubah}(h]h ]h"]h$]h&]uh1j&hj|ubeh}(h]h ]h"]h$]h&]uh1jhjhK:hjyubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjyubj)}(h4``idr_in_use`` amount of allocated identifier entry h](j )}(h``idr_in_use``h]j)}(hjh]h idr_in_use}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKhj`ubj')}(hhh]h)}(haccept work itemh]haccept work item}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hK>hj|ubah}(h]h ]h"]h$]h&]uh1j&hj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hK>hjyubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK?hjyubj)}(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&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK@hjubj')}(hhh]h)}(hsend workqueueh]hsend workqueue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK@hjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK@hjyubj)}(h$``listener`` topsrv listener socket h](j )}(h ``listener``h]j)}(hjh]hlistener}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKAhj ubj')}(hhh]h)}(htopsrv listener socketh]htopsrv listener socket}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hKAhj'ubah}(h]h ]h"]h$]h&]uh1j&hj ubeh}(h]h ]h"]h$]h&]uh1jhj&hKAhjyubj)}(h``name`` server nameh](j )}(h``name``h]j)}(hjJh]hname}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKAhjDubj')}(hhh]h)}(h server nameh]h server name}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKBhj`ubah}(h]h ]h"]h$]h&]uh1j&hjDubeh}(h]h ]h"]h$]h&]uh1jhj_hKAhjyubeh}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtipc_conn (C struct) c.tipc_connhNtauh1jhjhhhNhNubj$)}(hhh](j))}(h tipc_connh]j/)}(hstruct tipc_connh](j5)}(hj8h]hstruct}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j4hjhhhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKHubjG)}(h h]h }(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhjhKHubjX)}(h tipc_connh]j^)}(hjh]h tipc_conn}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j]hjubah}(h]h ](jpjqeh"]h$]h&]hhuh1jWhjhhhjhKHubeh}(h]h ]h"]h$]h&]hhj{uh1j.j|j}hjhhhjhKHubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j(hjhKHhjhhubj)}(hhh]h)}(hTIPC connection structureh]hTIPC connection structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKPhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKHubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1j#hhhjhNhNubj)}(hXi**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`` list to all pertaining 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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKThjubj)}(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; };}hj#sbah}(h]h ]h"]h$]h&]hhuh1jhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKVhjubh)}(h **Members**h]j)}(hj4h]hMembers}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKdhjubj)}(hhh](j)}(h0``kref`` reference counter to connection object h](j )}(h``kref``h]j)}(hjSh]hkref}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKRhjMubj')}(hhh]h)}(h&reference counter to connection objecth]h&reference counter to connection object}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhKRhjiubah}(h]h ]h"]h$]h&]uh1j&hjMubeh}(h]h ]h"]h$]h&]uh1jhjhhKRhjJubj)}(h ``conid`` connection identifier h](j )}(h ``conid``h]j)}(hjh]hconid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKShjJubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKThjJubj)}(h%``flags`` indicates connection state h](j )}(h ``flags``h]j)}(hjh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKUhjubj')}(hhh]h)}(hindicates connection stateh]hindicates connection state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKUhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKUhjJubj)}(h'``server`` pointer to connected server h](j )}(h ``server``h]j)}(hj7h]hserver}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKVhj1ubj')}(hhh]h)}(hpointer to connected serverh]hpointer to connected server}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhKVhjMubah}(h]h ]h"]h$]h&]uh1j&hj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhKVhjJubj)}(h2``sub_list`` list to all pertaining subscriptions h](j )}(h ``sub_list``h]j)}(hjph]hsub_list}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKWhjjubj')}(hhh]h)}(h$list to all pertaining subscriptionsh]h$list to all pertaining subscriptions}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKWhjubah}(h]h ]h"]h$]h&]uh1j&hjjubeh}(h]h ]h"]h$]h&]uh1jhjhKWhjJubj)}(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&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKXhjJubj)}(h``rwork`` receive work item h](j )}(h ``rwork``h]j)}(hjh]hrwork}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKYhjubj')}(hhh]h)}(hreceive work itemh]hreceive work item}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKYhjubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhKYhjJubj)}(h8``outqueue`` pointer to first outbound message in queue h](j )}(h ``outqueue``h]j)}(hjh]houtqueue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chKZhjubj')}(hhh]h)}(h*pointer to first outbound message in queueh]h*pointer to first outbound message in queue}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hKZhj1ubah}(h]h ]h"]h$]h&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhj0hKZhjJubj)}(h1``outqueue_lock`` control access to the outqueue h](j )}(h``outqueue_lock``h]j)}(hjTh]h outqueue_lock}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/networking/tipc:208: ./net/tipc/topsrv.chK[hjNubj')}(hhh]h)}(hcontrol access to the outqueueh]hcontrol access to the outqueue}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihK[hjjubah}(h]h ]h"]h$]h&]uh1j&hjNubeh}(h]h ]h"]h$]h&]uh1jhjihK[hjJubj)}(h``swork`` send work itemh](j )}(h ``swork``h]j)}(hjh]hswork}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/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&]uh1j&hjubeh}(h]h ]h"]h$]h&]uh1jhjhK[hjJubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(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](jtipc_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/)}(hjCjjjjjjj7j<jjjhjmjjjjj2j7jnjsjj"jyj~jjjfjkjjjjjGjLj8jjj j+j0jjjj jjjjjU jZ j j jyj~jjjjjjj[j`jjjjjjj"j#j:%j?%jx'j}'j'+j,+j-j-j.0j30j3j3j6j6j^j8j%8j*8j?j?j_AjdAjCjCjgFjlFjIjIj$Mj)MjPjPjSjSjgVjlVjYjYjx\j}\jaj^j^j^jfjfjEhjJhj4jj9jjamjfmj0oj5ojArjFrj*uj/uj+xj0xj|j|jـjހjj j1j6j]jbjjj\jajjjjjTjYj%j*jNjSjGjLjjjŧjʧj j%j{jjMjRjدjݯjjjjj8j=jcjhjijnjXj]j+j0jAjFjjjjj jj jjjjjjjjjgjjjjjjjjjqjjjj7j<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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypeINFOlineMsourcejwuh1j hjwubatransform_messages] transformerN include_log] decorationNhhub.