Commit Graph

1171 Commits

Author SHA1 Message Date
Stephen Hemminger 8988b02ee1 Fix snprintf with non format
snprintf was being called with environment variable.
If variable had format string (like %s) then program would crash.
2011-04-12 14:23:27 -07:00
Stephen Hemminger 38c867d2a8 Add checks for fgets() when reading proc
If expected proc headers are missing, catch and print error.
2011-04-12 14:23:17 -07:00
Stephen Hemminger 46dc73a57d Add no-strict-aliasing to genl
The genl code uses constructs which violate the strict aliasing
constraints of gcc 4.4. Disable the optimization to avoid warnings
and potential breakage.
2011-04-12 14:23:06 -07:00
Diego Elio Pettenò 2230ac1d18 Remove -L flags from link
While the previous code was supposed to work nonetheless, it could be
messed up if further -L were used in LDFLAGS to list the path where glibc's
libutil was to be found.

References: https://bugs.gentoo.org/347489

Signed-off-by: Diego Elio Pettenò <flameeyes@gmail.com>
2011-03-09 10:18:03 -08:00
Nicolas Dichtel 98f5519cd9 iproute2: add support of flag XFRM_STATE_ALIGN4
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
2011-03-02 11:50:09 -08:00
Stephen Hemminger d5b7420a26 Remove #ifdef's
The iproute package keeps its own headers so there is no need
of polluting code with #ifdef's
2011-02-25 20:00:54 -08:00
Jiri Pirko a1e191b90c iplink: implement setting of master devic 2011-02-25 19:55:19 -08:00
Nicolas Dichtel f323f2a32c iproute2: allow to specify truncation bits on auth algo
Hi,

here is a patch against iproute2 to allow user to set a state with a specific
auth length.

Example:
$ ip xfrm state add src 10.16.0.72 dst 10.16.0.121 proto ah spi 0x10000000
auth-trunc "sha256" "azertyuiopqsdfghjklmwxcvbn123456" 96 mode tunnel
$ ip xfrm state
src 10.16.0.72 dst 10.16.0.121
         proto ah spi 0x10000000 reqid 0 mode tunnel
         replay-window 0
         auth-trunc hmac(sha256)
0x617a6572747975696f707173646667686a6b6c6d77786376626e313233343536 96
         sel src 0.0.0.0/0 dst 0.0.0.0/0

Regards,
Nicolas

>From 522ed7348cdf3b6f501af2a5a5d989de1696565a Mon Sep 17 00:00:00 2001
From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Thu, 23 Dec 2010 06:48:12 -0500
Subject: [PATCH] iproute2: allow to specify truncation bits on auth algo

Attribute XFRMA_ALG_AUTH_TRUNC can be used to specify
truncation bits, so we add a new algo type: auth-trunc.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
2011-02-25 19:52:12 -08:00
Vlad Dogaru 678b99ee6d iproute2: fix man page whitespace
Signed-off-by: Vlad Dogaru <ddvlad@rosedu.org>
2011-02-25 13:01:19 -08:00
Eric Dumazet f3f28c2126 sfq: add divisor support
In 2.6.39, we can build SFQ queues with a given hash table size,
2011-02-25 12:59:53 -08:00
Gerrit Renker 81d03dc356 iproute: rename 'get_jiffies' since it uses msecs
The get_jiffies() function retrieves rtt-type values in units of
milliseconds. This patch updates the function name accordingly,
following the pattern given by dst_metric() <=> dst_metric_rtt().
2011-02-25 12:54:37 -08:00
Gerrit Renker 9b2cdc00da iproute: fix unit conversion of rtt/rttvar/rto_min
Since July 2008 (2.6.27, c1e20f7c8b9), the kernel stores the values for
RTAX_{RTT{,VAR},RTO_MIN} in milliseconds. When using a kernel > 2.6.27 with
the current iproute2, conversion of these values is broken in either way.

This patch
 * updates the code to pass and retrieve milliseconds;
 * since values < 1msec would be rounded up, also drops the usec/nsec variants;
 * since there is no way to query kernel HZ, also drops the jiffies variant.

Arguments such as
	rtt		3.23sec
	rto_min		0xff
	rto_min		0.200s
	rttvar		25ms
now all work as expected when reading back previously set values.
2011-02-25 12:51:48 -08:00
Gerrit Renker 94089ef772 utils: get_jiffies always uses base=0
get_jiffies() is in all places called in the same manner, with base=0;
simplify argument list by putting the constant value into the function.
2011-02-25 12:49:42 -08:00
Joy Latten 0c7a594541 xfrm security context support
Adds security context support to ip xfrm state.

Signed-off-by: Joy Latten <latten@austin.ibm.com>
2011-02-25 12:45:58 -08:00
Joy Latten e4f054f017 xfrm security context support
Adds security context support to ip xfrm policy.

Signed-off-by: Joy Latten <latten@austin.ibm.com>
2011-02-25 12:45:49 -08:00
Joy Latten b2bb289a57 xfrm security context support
In the Linux kernel, ipsec policy and SAs can include a
security context to support MAC networking. This feature
is often referred to as "labeled ipsec".

This patchset adds security context support into ip xfrm
such that a security context can be included when
add/delete/display SAs and policies with the ip command.
The user provides the security context when adding
SAs and policies. If a policy or SA contains a security
context, the changes allow the security context to be displayed.

For example,
ip xfrm state
src 10.1.1.6 dst 10.1.1.2
	proto esp spi 0x00000301 reqid 0 mode transport
	replay-window 0
	auth hmac(digest_null) 0x3078
	enc cbc(des3_ede) 0x6970763672656164796c6f676f33646573636263696e3031
	security context root:system_r:unconfined_t:s0

Please  let me know if all is ok with the patchset.
Thanks!!

regards,
Joy

Signed-off-by:  Joy Latten <latten@austin.ibm.com>
2011-02-25 12:45:36 -08:00
Vlad Dogaru db02608b6f iproute2: support device group semantics
Add the group keyword to ip link set, which has the following meaning:
If both a group and a device name are pressent, we change the device's
group to the specified one. If only a group is present, then the
operation specified by the rest of the command should apply on an entire
group, not a single device.

So, to set eth0 to the default group, one would use
	ip link set dev eth0 group default

Conversely, to set all the devices in the default group down, use
	ip link set group default down

Signed-off-by: Vlad Dogaru <ddvlad@rosedu.org>
2011-02-25 12:43:14 -08:00
Vlad Dogaru 26ad3aecfe iproute2: support device group semantics
Add the group keyword to ip link set, which has the following meaning:
If both a group and a device name are pressent, we change the device's
group to the specified one. If only a group is present, then the
operation specified by the rest of the command should apply on an entire
group, not a single device.

So, to set eth0 to the default group, one would use
	ip link set dev eth0 group default

Conversely, to set all the devices in the default group down, use
	ip link set group default down

Signed-off-by: Vlad Dogaru <ddvlad@rosedu.org>
2011-02-25 12:43:07 -08:00
Vlad Dogaru f960c92aac iproute2: support listing devices by group
User can specify device group to list by using the group keyword:

	ip link show group test

If no group is specified, 0 (default) is implied.

Signed-off-by: Vlad Dogaru <ddvlad@rosedu.org>
2011-02-25 12:38:50 -08:00
Stephen Hemminger dd4b25a0f9 Merge branch 'choke' into net-next
Conflicts:
	include/linux/pkt_sched.h
2011-02-25 12:35:01 -08:00
Stephen Hemminger 08dc32e130 update to net-next (2.6.39) headers 2011-02-25 12:34:00 -08:00
Stephen Hemminger 1551198b40 Merge branch 'master' into choke 2011-02-20 12:35:40 -08:00
Stephen Hemminger a4eca97cff CHOKe scheduler
TC commands for CHOKe qdisc
2011-01-31 09:09:50 -08:00
Stephen Hemminger 1598b9ef7b Revert "iproute2: add VF_PORT support"
This reverts commit 632110aa0d.

There seem to be some recent changes in the 802.1Qbh/bg specs which may
result in changes to this patch in the near future. It seems like its best
to ignore this patch for now.
I will re-spin at a later time when the changes in the specs converge.

BTW, Please let me know if I should CC netdev list and others on the
original email. I can resend this email.

Thanks,
Roopa
2011-01-13 14:53:02 -08:00
Roopa Prabhu 632110aa0d iproute2: add VF_PORT support
Resubmitting Scott Feldmans original patch with below changes

- Fix port profile strlen which was off by 1
- Added function to convert IFLA_PORT_RESPONSE codes to string

Add support for IFLA_VF_PORTS.  VF port netlink msg layout is

        [IFLA_NUM_VF]
        [IFLA_VF_PORTS]
                [IFLA_VF_PORT]
                        [IFLA_PORT_*], ...
                [IFLA_VF_PORT]
                        [IFLA_PORT_*], ...
                ...
        [IFLA_PORT_SELF]
                [IFLA_PORT_*], ...

The iproute2 cmd line for link set is now:

Usage: ip link add link DEV [ name ] NAME
                   [ txqueuelen PACKETS ]
                   [ address LLADDR ]
                   [ broadcast LLADDR ]
                   [ mtu MTU ]
                   type TYPE [ ARGS ]
       ip link delete DEV type TYPE [ ARGS ]

       ip link set DEVICE [ { up | down } ]
                          [ arp { on | off } ]
                          [ dynamic { on | off } ]
                          [ multicast { on | off } ]
                          [ allmulticast { on | off } ]
                          [ promisc { on | off } ]
                          [ trailers { on | off } ]
                          [ txqueuelen PACKETS ]
                          [ name NEWNAME ]
                          [ address LLADDR ]
                          [ broadcast LLADDR ]
                          [ mtu MTU ]
                          [ netns PID ]
                          [ alias NAME ]
                          [ port MODE { PROFILE | VSI } ]
                          [ vf NUM [ mac LLADDR ]
                                   [ vlan VLANID [ qos VLAN-QOS ] ]
                                   [ rate TXRATE ]
                                   [ port MODE { PROFILE | VSI } ] ]
       ip link show [ DEVICE ]

TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | can }
MODE := { assoc | preassoc | preassocrr | disassoc }
PROFILE := profile PROFILE
           [ instance UUID ]
           [ host UUID ]
VSI := vsi mgr MGRID type VTID ver VER
       [ instance UUID ]

Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
2011-01-13 14:50:46 -08:00
Stephen Hemminger 9351fec72d Update to lasest kernel headers 2011-01-12 18:46:54 -08:00
Stephen Hemminger f2c45d7050 v2.6.37 2011-01-07 09:54:30 -08:00
Stephen Hemminger 8552b387df Update to 2.6.37-rc8 headers
Use sanitized headers from 2.6.37-rc8
2010-12-29 15:05:48 -08:00
Petr Sabata 5c68fc88c5 ip: Few typo and grammar errors fixes for ip(8) manpage 2010-12-16 08:30:26 -08:00
Stephen Hemminger 4b3385f6c5 Cleanup ll_map
In preparation for adding name hash:
  * add const
  * use same types in cache as ifinfomsg
  * rename idxmap to ll_cache
2010-12-10 11:58:09 -08:00
Octavian Purdila 3056423728 iproute2: initialize the ll_map only once
Avoid initializing the LL map (which involves a costly RTNL dump)
multiple times. This can happen when running in batch mode.

Signed-off-by: Octavian Purdila <opurdila@ixiacom.com>
2010-12-10 11:37:57 -08:00
Stephen Hemminger 1e21ea71a7 Increase size of ifindex hash heads
The default of 16 is too small for users with 10,000 interfaces.
2010-12-10 09:46:24 -08:00
Gerrit Renker 1da5f6b2ca tc-red: typo in man page 2010-12-09 09:39:47 -08:00
Petr Sabata d98e300c33 ss: Change "do now" to "do not" in ss(8), -n option
A small typo fix.
2010-12-08 07:55:34 -08:00
Dan Smith f4ff11e3e2 Add ip route save/restore
This patch adds save and restore commands to "ip route". Save dumps
the RTNL stream to stdout which can then be passed to restore later.
This may be helpful in some normal situations, and will allow C/R to
migrate the routing information in userspace.  Tweaking of the stream
can be done by userspace helpers to convert between versions and adjust
things like device indexes when restoring routes in a different
environment.

By factoring out some of the common bits of print_route() into
filter_nlmsg(), the "save" command can use the same selection logic
as "list," allowing the caller to save only specific routes as
necessary.

The only change since the RFC is the addition of manpage and doc
material.

Signed-off-by: Dan Smith <danms@us.ibm.com>
2010-12-01 11:24:58 -08:00
Gregoire Baron 3822cc986c tc: add ACT_CSUM action support (csum)
Add the iproute2 support for the ACT_CSUM action. Can be used as
following, certainly in conjunction with the ACT_PEDIT action (pedit):

 # In order to DNAT (stateless) IPv4 packet from 192.168.1.100 to
 #  0x12345678 (18.52.86.120), and update the IPv4 header checksum and
 #  the UDP checksum (the last one, only if the packet is UDP).
tc filter add eth0 prio 1 protocol ip parent ffff: \
  u32 match ip src 192.168.1.100/32 flowid :1 \
    action pedit munge offset 16 u32 set 0x12345678 \
      pipe csum ip and udp

 # In order to alter destination address of IPv6 TCP packets from fc00::1
 #  and correct the TCP checksum (nothing happened? except maybe for
 #  checksums in the TCP payload ...).
tc filter add eth0 prio 1 protocol ipv6 parent ffff: \
  u32 match ip6 src fc00::1/128 match ip6 protocol 0x06 0xff flowid :1 \
    action pedit munge offset 24 u32 set 0x12345678 \
      pipe csum tcp
2010-12-01 11:17:46 -08:00
Ben Greear 64c7956061 Allow 'ip addr flush' to loop more than 10 times
The default remains at 10 for backwards compatibility.

For instance:
 # ip addr flush dev eth2
 *** Flush remains incomplete after 10 rounds. ***
 # ip -l 20 addr flush dev eth2
 *** Flush remains incomplete after 20 rounds. ***
 # ip -loops 0 addr flush dev eth2
 #

This is useful for getting rid of large numbers of IP
addresses in scripts.

Signed-off-by: Ben Greear <greearb@candelatech.com>
2010-12-01 11:13:51 -08:00
Sridhar Samudrala 3f0a7b4c4f Support 'mode' parameter when creating macvtap device
Add support for 'mode' parameter when creating a macvtap device.
This allows a macvtap device to be created in bridge, private or
the default vepa modes.

Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>

-------------------------------------------------------------------
Acked-by: Arnd Bergmann <arnd@arndb.de>
2010-11-30 10:01:41 -08:00
Andreas Schwab f66efadd79 iproute2: remove useless use of buffer
Print directly to the file instead of going through a buffer.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
2010-11-30 09:59:11 -08:00
Changli Gao 7162c92148 iproute2: tc: f_flow: add key rxhash
We can use rxhash to classify the traffic into flows. As rxhash maybe
supplied by NIC or RPS, it is cheaper.

Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Acked-by: Jamal Hadi Salim <hadi@cyberus.ca>
2010-11-30 09:57:36 -08:00
Timo Teräs 4a9608e6ae iproute2: support xfrm upper protocol gre key
Similar to tunnel side: accept dotted-quad and number formats.
Use regular number for printing the key.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
2010-11-30 09:53:23 -08:00
Timo Teräs 6f4f7c464a iproute2: treat gre key as number
Print GRE key as a regular number. It is not really an IPv4 address
and this is also how Cisco and Juniper treats GRE keys. Do keep the
parsing of dotted-quad format for backwards compatibility.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
2010-11-30 09:52:32 -08:00
Mike Frysinger be3c4d4f3c m_xt: stop using xtables_set_revision()
iptables dropped the xtables_set_revision() function around version 1.4.9,
so set the rev directly ourselves.  This should be compatible back to the
original version m_xt itself is designed for.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-11-30 09:48:38 -08:00
Petr Sabata 5d8056357a ss(8) improvements by Jiri Popelka <jpopelka@redhat.com> 2010-11-29 09:19:44 -08:00
Stephen Hemminger ea71beacac Use standard routines for interface name to index etc
Use the available libraries for mapping from interface index to name
or type. This should speed up display with lots of interfaces
2010-11-28 10:35:28 -08:00
Stephen Hemminger 82408fc17d Workaround for repeated distclean
The subdirectory makefiles need Config file to exist.
Therefore create it, then run make clean, then remove it.
2010-11-18 15:25:38 -08:00
Stephen Hemminger 3f5c1a01e6 Update to 2.6.36 headers
Use santized headers from 2.6.36 release
2010-10-20 17:38:04 -07:00
Ulrich Weber 66abc09072 iproute2: display xfrm socket policy direction
display socket policy direction

Signed-off-by: Ulrich Weber <uweber@astaro.com>
2010-09-13 08:23:01 -07:00
Stephen Hemminger cb4bd0ec8d Fix GRED options clearing
Bug reported where priorities of GRED DP's are ignored.
The option parsing sets opt then memset was clearing these
values.
2010-08-25 09:04:55 -07:00
Eric Dumazet a571587d0b iproute2: add 64bit support to ifstat
Le lundi 23 août 2010 à 10:33 -0700, Stephen Hemminger a écrit :

> I think this breaks the wraparound detection code in this command.
>
>

OK lets fix the bug only, before adding 64bit counters capabilities.

Thanks

[PATCH] iproute2: add 64bit arches support to ifstat

ifstat assumes IFLA_STATS fields are "unsigned long", but they are
__u32. This fix is needed to let ifstat run on 64bit arches.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2010-08-23 13:05:12 -07:00