Print this page
Clearview IPMP manpages

Split Close
Expand all
Collapse all
          --- old/./if_tcp.txt
          +++ new/./if_tcp.txt
↓ open down ↓ 23 lines elided ↑ open up ↑
  24   24       On interfaces where the network-to-link layer  address  map-
  25   25       ping  is  static,  only the network number is taken from the
  26   26       ioctl() request;  the  remainder  is  found  in  a  hardware
  27   27       specific   manner.   On  interfaces  which  provide  dynamic
  28   28       network-to-link layer address mapping facilities (for  exam-
  29   29       ple,  10Mb/s  Ethernets  using  arp(7P)), the entire address
  30   30       specified in the ioctl() is used. A routing table entry  for
  31   31       destinations  on  the  network of the interface is installed
  32   32       automatically when an interface's address is set.
  33   33  
       34 +     Note   IPMP  IP  interfaces cannot   be  created  using  the
       35 +     procedure   described above.  Instead,  ifconfig(1M) must be
       36 +     used to create IPMP IP interfaces.
       37 +
  34   38  IOCTLS
  35   39       The following ioctl() calls may be  used  to  manipulate  IP
  36   40       network  interfaces. Unless specified otherwise, the request
  37   41       takes an lifreq structure as its parameter.  This  structure
  38   42       has the form:
  39   43  
  40   44         struct lifreq {
  41   45         #define LIFNAMSIZ   32
  42   46           char    lifr_name[LIFNAMSIZ];       /* if name, e.g. "le1" */
  43   47           union {
↓ open down ↓ 49 lines elided ↑ open up ↑
  93   97       SIOCGLIFDSTADDR     Get point to point  address  for  inter-
  94   98                           face.
  95   99  
  96  100       SIOCSLIFFLAGS       Set interface flags field. If the inter-
  97  101                           face   is  marked  down,  any  processes
  98  102                           currently routing  packets  through  the
  99  103                           interface are notified.
 100  104  
 101  105       SIOCGLIFFLAGS       Get interface flags.
 102  106  
 103      -     SIOCGLIFCONF        Get interface configuration  list.  This
 104      -                         request  takes an lifconf structure (see
      107 +     SIOCGLIFCONF        Get  interface configuration list.  This
      108 +                         request takes a *lifconf* structure (see
      109 +                         below) as a value-result parameter.  The
      110 +                         *lifc_family*   field can  be  set    to
      111 +                         *AF_UNSPEC* to retrieve  both  *AF_INET*
      112 +                         and    *AF_INET6*    interfaces.     The
      113 +                         *lifc_len* field  should  be set  to the
      114 +                         size  of  the  buffer    pointed to   by
      115 +                         *lifc_buf*.
 105  116  
 106      -SunOS 5.10          Last change: 14 Nov 2008                    2
      117 +                         The *lifc_flags* field should usually be
      118 +                         set to zero, but  callers that need low-
      119 +                         level knowledge    of the  underlying IP
      120 +                         interfaces that comprise an IPMP   group
      121 +                         can   set  it  to  *LIFC_UNDER_IPMP*  to
      122 +                         request that   those     interfaces   be
      123 +                         included in the result.
      124 +                
      125 +                         Upon success,   *lifc_len*  will contain
      126 +                         the length, in bytes,   of the array  of
      127 +                         *lifreq*   structures   pointed   to  by
      128 +                         *lifc_req*. For each *lifreq* structure,
      129 +                         the  *lifr_name* and *lifr_addr*  fields
      130 +                         will be valid.
 107  131  
 108      -Protocols                                              if_tcp(7P)
 109  132  
 110      -                         below) as a value-result parameter.  The
 111      -                         lifc_family   field   can   be   set  to
 112      -                         AF_UNSPEC to retrieve both  AF_INET  and
 113      -                         AF_INET6   interfaces.   The  lifc_flags
 114      -                         field  should  be  set  to   zero.   The
 115      -                         lifc_len field should be set to the size
 116      -                         of the buffer pointed  to  by  lifc_buf.
 117      -                         Upon  success, lifc_len will contain the
 118      -                         length, in bytes, of the array of lifreq
 119      -                         structures  pointed  to by lifc_req. For
 120      -                         each lifreq structure, the lifr_name and
 121      -                         lifr_addr fields will be valid.
 122      -
 123  133       SIOCGLIFNUM         Get number of interfaces.  This  request
 124  134                           returns  an  integer which is the number
 125  135                           of   interface   descriptions    (struct
 126  136                           lifreq)  that  will  be  returned by the
 127  137                           SIOCGLIFCONF ioctl; that is, it gives an
 128      -                         indication  of how large lifc_len has to
 129      -                         be. This request takes an lifnum  struc-
 130      -                         ture   (see  below)  as  a  value-result
 131      -                         parameter. The lifn_family field  should
 132      -                         be   set  to  AF_UNSPEC  to  count  both
 133      -                         AF_INET  and  AF_INET6  interfaces.  The
 134      -                         lifn_flags field should be initially set
 135      -                         to zero.
      138 +                         indication of how large lifc_len has
      139 +                         to be.
 136  140  
      141 +                         This  request  takes a  *struct  lifnum*
      142 +                         (see below) as a value-result parameter.
      143 +                         The  *lifn_family* field can  be set  to
      144 +                         *AF_UNSPEC* to  count both *AF_INET* and
      145 +                         *AF_INET6*  interfaces. The *lifn_flags*
      146 +                         field should usually be set to zero, but
      147 +                         callers that need low-level knowledge of
      148 +                         the  underlying IP   interfaces     that
      149 +                         comprise an  IPMP group   can set it  to
      150 +                         *LIFC_UNDER_IPMP*  to request that those
      151 +                         interfaces be included in the count.
      152 +
      153 +
 137  154       SIOCSLIFMTU         Set the maximum transmission unit  (MTU)
 138  155                           size for interface. Place the request in
 139  156                           the lifru_mtu field.  The  MTU  can  not
 140  157                           exceed   the   physical  MTU  limitation
 141  158                           (which  is   reported   in   the    DLPI
 142  159                           DL_INFO_ACK message).
 143  160  
 144  161       SIOCGLIFMTU         Get the maximum transmission  unit  size
 145  162                           for interface.
 146  163  
↓ open down ↓ 22 lines elided ↑ open up ↑
 169  186  
 170  187       SIOCGLIFZONE        Get the zone associated with the  inter-
 171  188                           face.
 172  189  
 173  190       SIOCSLIFZONE        Set the zone associated with the  inter-
 174  191                           face.  Only  applies  for zones that use
 175  192                           the shared-IP instance.
 176  193  
 177  194       SIOCLIFADDIF        Add a new logical interface on a  physi-
 178  195                           cal  interface  using  an unused logical
 179      -                         unit number. If the  physical  interface
 180      -                         is part of an IP multipathing group, the
 181      -                         logical interface may be added to a dif-
 182      -                         ferent  physical  interface  in the same
 183      -                         group. Upon return, the  lifr_name field
 184      -                         contains  the name of the actual logical
 185      -                         interface created.
      196 +                         interface number.
 186  197  
 187  198       SIOCLIFREMOVEIF     Remove a logical interface by specifying
 188  199                           its  IP  address  or  logical  interface
 189      -                         name. When the IP address  is  specified
 190      -                         and  the interface is part of an IP mul-
 191      -                         tipathing group, the  logical  interface
 192      -                         is  removed  from the physical interface
 193      -                         in the group which holds the IP address.
      200 +                         name.
 194  201  
 195  202       SIOCSLIFTOKEN       Set the address token used to form  IPv6
 196  203                           link-local  addresses  and for stateless
 197  204                           address autoconfiguration.
 198  205  
 199  206       SIOCGLIFTOKEN       Get the address token used to form  IPv6
 200  207                           link-local  addresses  and for stateless
 201  208                           address autoconfiguration.
 202  209  
 203  210  SunOS 5.10          Last change: 14 Nov 2008                    4
↓ open down ↓ 107 lines elided ↑ open up ↑
 311  318           union {
 312  319              caddr_t      lifcu_buf;
 313  320              struct lifreq *lifcu_req;
 314  321           } lifc_lifcu;
 315  322  
 316  323         #define lifc_buf lifc_lifcu.lifcu_buf   /* buffer address */
 317  324         #define lifc_req lifc_lifcu.lifcu_req   /* array of structs returned */
 318  325         };
 319  326  
 320  327         The structure used by SIOCGLIFNUM has the form:
      328 +
 321  329         struct lifnum {
 322  330           sa_family_t     lifn_family;
 323  331           int             lifn_flags;   /* req. specf. interfaces */
 324  332           int             lifn_count;   /* Result */
 325  333         };
 326  334  
 327  335         The structure used by SIOCTONLINK, SIOCTMYADDR and SIOCTMYSITE has the form:
 328  336  
 329  337         struct sioc_addrreq {
 330  338           struct sockaddr_storage sa_addr; /* Address to test */
↓ open down ↓ 63 lines elided ↑ open up ↑
 394  402       SIOCGIFFLAGS       Get interface flags.
 395  403  
 396  404       SIOCGIFCONF        Get interface  configuration  list.  This
 397  405                          request  takes  an  ifconf structure (see
 398  406                          below) as a value-result  parameter.  The
 399  407                          ifc_len  field  should be set to the size
 400  408                          of the buffer pointed to by ifc_buf. Upon
 401  409                          success, ifc_len will contain the length,
 402  410                          in bytes, of the array  of  ifreq  struc-
 403  411                          tures  pointed  to  by  ifc_req. For each
 404      -                        ifreq   structure,   the   ifr_name   and
 405      -                        ifr_addr fields will be valid.
      412 +                        ifreq    structure,     the ifr_name  and
      413 +                        *ifr_addr* fields will   be valid.  While
      414 +                        any IPMP  IP interfaces  will be included
      415 +                        in   the    array,   the underlying    IP
      416 +                        interfaces  that comprise    those   IPMP
      417 +                        groups will not be.
 406  418  
 407  419  SunOS 5.10          Last change: 14 Nov 2008                    8
 408  420  
 409  421  Protocols                                              if_tcp(7P)
 410  422  
 411  423       SIOCGIFNUM         Get number of  interfaces.  This  request
 412  424                          returns an integer which is the number of
 413  425                          interface  descriptions  (struct   ifreq)
 414  426                          that  will be returned by the SIOCGIFCONF
 415  427                          ioctl; that is, it gives an indication of
 416      -                        how large ifc_len has to be.
      428 +                        how large *ifc_len* has to be.  While any
      429 +                        IPMP  IP interfaces will  be included  in
      430 +                        the  array, the underlying IP  interfaces
      431 +                        that  comprise those IPMP groups will not
      432 +                        be.
 417  433  
 418  434       SIOCSIFMTU         Set the maximum transmission  unit  (MTU)
 419  435                          size  for interface. Place the request in
 420  436                          the ifr_metric field. The MTU has  to  be
 421  437                          smaller   than  physical  MTU  limitation
 422  438                          (which   is   reported   in   the    DLPI
 423  439                          DL_INFO_ACK message).
 424  440  
 425  441       SIOCGIFMTU         Get the maximum  transmission  unit  size
 426  442                          for  interface. Upon success, the request
↓ open down ↓ 34 lines elided ↑ open up ↑
 461  477  
 462  478         #define ifc_buf   ifc_ifcu.ifcu_buf   /* buffer address */
 463  479         #define ifc_req   ifc_ifcu.ifcu_req   /* array of structs returned */
 464  480         };
 465  481  
 466  482    IFF_ Flags
 467  483       You can use the ifconfig(1M) command  to  display  the  IFF_
 468  484       flags  listed  below (with the leading IFF_ prefix removed).
 469  485       See the ifconfig(1M) manpage for a definition of each flag.
 470  486  
 471      -       #define IFF_UP          0x0000000001    /* Interface is up */
      487 +       #define IFF_UP          0x0000000001    /* Address is up */
 472  488         #define IFF_BROADCAST   0x0000000002    /* Broadcast address valid */
 473  489         #define IFF_DEBUG       0x0000000004    /* Turn on debugging */
 474  490         #define IFF_LOOPBACK    0x0000000008    /* Loopback net */
 475  491  
 476  492         #define IFF_POINTOPOINT 0x0000000010    /* Interface is p-to-p */
 477  493         #define IFF_NOTRAILERS  0x0000000020    /* Avoid use of trailers */
 478  494         #define IFF_RUNNING     0x0000000040    /* Resources allocated */
 479  495         #define IFF_NOARP       0x0000000080    /* No address res. protocol */
 480  496  
 481  497         #define IFF_PROMISC     0x0000000100    /* Receive all packets */
↓ open down ↓ 1 lines elided ↑ open up ↑
 483  499         #define IFF_INTELLIGENT 0x0000000400    /* Protocol code on board */
 484  500         #define IFF_MULTICAST   0x0000000800    /* Supports multicast */
 485  501  
 486  502         #define IFF_MULTI_BCAST 0x0000001000    /* Multicast using broadcst. add. */
 487  503         #define IFF_UNNUMBERED  0x0000002000    /* Non-unique address */
 488  504         #define IFF_DHCPRUNNING 0x0000004000    /* DHCP controls interface */
 489  505         #define IFF_PRIVATE     0x0000008000    /* Do not advertise */
 490  506  
 491  507         #define IFF_NOXMIT      0x0000010000    /* Do not transmit pkts */
 492  508         #define IFF_NOLOCAL     0x0000020000    /* No address - just on-link subnet */
 493      -       #define IFF_DEPRECATED  0x0000040000    /* Interface addr. deprecated */
      509 +       #define IFF_DEPRECATED  0x0000040000    /* Address is deprecated */
 494  510         #define IFF_ADDRCONF    0x0000080000    /* Addr. from stateless addrconf */
 495  511  
 496  512         #define IFF_ROUTER      0x0000100000    /* Router on interface */
 497  513         #define IFF_NONUD       0x0000200000    /* No NUD on interface */
 498  514         #define IFF_ANYCAST     0x0000400000    /* Anycast address */
 499  515         #define IFF_NORTEXCH    0x0000800000    /* Don't xchange rout. info */
 500  516  
 501  517         #define IFF_IPV4        0x0001000000    /* IPv4 interface */
 502  518         #define IFF_IPV6        0x0002000000    /* IPv6 interface */
 503      -       #define IFF_NOFAILOVER  0x0008000000    /* No failover on NIC fail. */
 504      -       #define IFF_FAILED      0x0010000000    /* NIC has failed */
      519 +       #define IFF_NOFAILOVER  0x0008000000    /* in.mpathd test address */
      520 +       #define IFF_FAILED      0x0010000000    /* Interface has failed */
 505  521  
 506      -       #define IFF_STANDBY     0x0020000000    /* Standby NIC-use on fail. */
 507      -       #define IFF_INACTIVE    0x0040000000    /* Stndby active or not? */
 508      -       #define IFF_OFFLINE     0x0080000000    /* NIC offlined */
 509      -
 510      -SunOS 5.10          Last change: 14 Nov 2008                   10
 511      -
 512      -Protocols                                              if_tcp(7P)
 513      -
      522 +       #define IFF_STANDBY     0x0020000000    /* Interface is a hot-spare */
      523 +       #define IFF_INACTIVE    0x0040000000    /* Functioning but not used */
      524 +       #define IFF_OFFLINE     0x0080000000    /* Interface is offline */
 514  525         #define IFF_XRESOLV     0x0100000000    /* IPv6 external resolver */
 515  526  
 516  527         #define IFF_COS_ENABLED 0x0200000000    /* If CoS marking is supported */
 517  528         #define IFF_PREFERRED   0x0400000000    /* Prefer as source address */
 518  529         #define IFF_TEMPORARY   0x0800000000    /* RFC3041 */
 519  530         #define IFF_FIXEDMTU    0x1000000000    /* MTU set with SIOCSLIFMTU */
 520  531  
 521  532         #define IFF_VIRTUAL     0x2000000000    /* Cannot send/receive pkts */
 522  533         #define IFF_DUPLICATE   0x4000000000    /* Local address in use */
      534 +       #define IFF_IPMP        0x8000000000    /* IPMP IP interface */
 523  535  
 524  536  ERRORS
 525  537       EPERM        Calling process has insufficient privileges.
 526  538  
 527  539       ENXIO        The  lifr_name member of the  lifreq  structure
 528  540                    contains an invalid value.
 529  541  
 530  542                    For SIOCGLIFSRCOF, the lifs_ifindex  member  of
 531  543                    the  lifsrcof  structure  contains  an  invalid
 532  544                    value.
↓ open down ↓ 41 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX