Hatena::Grouptech

id:rx7(@namikawa)の技術メモ このページをアンテナに追加 RSSフィード

過去記事一覧 | Main Blog (元RX-7乗りの適当な日々) | SBM (id:rx7のBookmark)

2015/02/27

例示用のIPv4アドレス

| 例示用のIPv4アドレス - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - 例示用のIPv4アドレス - id:rx7(@namikawa)の技術メモ 例示用のIPv4アドレス - id:rx7(@namikawa)の技術メモ のブックマークコメント

RFC 5737に記載してあった。

  • 192.0.2.0/24 (TEST-NET-1)
  • 198.51.100.0/24 (TEST-NET-2)
  • 203.0.113.0/24 (TEST-NET-3)

The blocks 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2), and 203.0.113.0/24 (TEST-NET-3) are provided for use in documentation.

https://tools.ietf.org/html/rfc5737
トラックバック - http://tech.g.hatena.ne.jp/rx7/20150227

2014/01/20

Intel Network Adapter Driver (igb) for Linux のChangeLog (Ver.2.4以降)

| Intel Network Adapter Driver (igb) for Linux のChangeLog (Ver.2.4以降) - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - Intel Network Adapter Driver (igb) for Linux のChangeLog (Ver.2.4以降) - id:rx7(@namikawa)の技術メモ Intel Network Adapter Driver (igb) for Linux のChangeLog (Ver.2.4以降) - id:rx7(@namikawa)の技術メモ のブックマークコメント

どこにもまとまった記載がなく、まとめて修正履歴を確認したかったので、勝手ながら各バージョンのリリースノートを掘り起し、貼り付けさせていただいた。

NICチップは、 82575, 82576, 82580, I350, and I210/211 向け。バージョン2.4以降のhistoryを記載。


Changelog for igb-5.1.2
========================

* Change how driver update rx packet stats, to include additional packet types.
* Add support for freeing q_vectors via RCU.
* Change how PBA is reported when using flashless i210/i211.
* Fixes to improve load performance for flashless i210 devices.
* Add get/set_channels function for queue management via ethtool.
* Update the number of tries for copper link in Media Auto Sense feature due to behavior with no cables.
* Add function to output RSS table via ethtool. 
* Sync some RSS changes from upstream.
* Fix for WOL issues found on some kernel versions.
* Fix for PHY config issue found when changing PHY settings after init on some i354 platforms.


Changelog for igb-5.0.6
========================

* fix for phy_id reading mechanism for i354 device on some platforms.
* Change how driver update rx packet stats, to include additional packet types.
* Add support for freeing q_vectors via RCU.
* Change how PBA is reported when using flashless i210/i211.


Changelog for igb-5.0.5
========================

* Add new i354 device support, including AutoMedia Detect on supported platforms.
* Media Auto Sense feature for hardware configured for it, including special EEPROM on 82580 devices only.
* Fix for compile errors on older distro's and newest upstream.
* Update MTU so that is always at least a standard frame size.
* Fix for MDD in i350.
* Added support to set EEE-advertisements via ethtool. 
* Other EEE-related fixes.  
* Fix for flow control configuration on SGMII connection.
* Fix for i2c lockdep warning.
* add setlink, getlink support


Changelog for igb-4.3.0
========================

* Add new i350-based device support
* Fix problem with i350 that affected the ability to detect spoofed packets.
* Fix for problem that all checksums were not updated in EEPROM on i350 parts when changes to the EEPROM made in later sections only.


Changelog for igb-4.2.16
========================
* update NVM functions to display NVM versions correctly in ethtool -i.
* add ability to configure anti-spoofing mode via iproute2.
* Add new i350 devices.
* Add new I210 devices.
* Allow room for jumbo frames if MAX_SKB_FRAGS is less than 8.
* Add fix for I210/I211 to allow link to actually happen before reporting.
* Free memory when dma mapping failed.
* Enable EEE link partner advertisement support.
* Drop BUILD_BUG_ON call from igb_build_rx_buffer.
* Since RSS is supported in MSI-X interrupt mode only, need to check for this mode before processing RSS module param request and log appropriate message.
* Add conditionals for extended ethtool ops on RHEL6.
* Increase TX_WAKE_THRESHOLD to keep it in sync with our other drivers.
* Drop unnecessary check for LRO flag when LRO queue will be empty if LRO is disabled.
* Use rx/tx_itr_setting when setting up initial value of itr
* Add support for SW timestamping.
* Add timeout for PTP Tx work item,
* Add mechanism for detecting latched hardware Rx timestamp
* Added in-kernel I2C interface implementation for thermal sensor and changed sysfs reporting to hwmon.
* Free any held skb that should have been timestamped on remove.
* Dropped the use of the hardware packet-split feature in favor of a page based receive.
* TSO now checks for CHECKSUM_PARTIAL before checking for gso_size
* Several changes to refactor driver for improved performance.


Changelog for igb-4.1.2
========================
* Fix for SerDes loopback test.
* No longer rely on APME to determine WoL settings.


Changelog for igb-4.0.17
========================

* Add support for i210/i211 devices.
* Minor EEE code simplification.
* Add support for DEFINE_DMA_UNMAP_ADDR and DEFINE_DMA_UNMAP_LEN
* Fix minor issue that leaves one additional buffer unused
* Port the community code for PHY setting being lost after PHY power down.
* Port the community code for byte queue limits (BQL) support.
* Port community code for basic runtime PM support.
* Fix for connection speed mistmatch after bringing device down/up
* Add driver support for additional i350-based devices.
* Modified fiber media type speed/autoneg code to accomodate 100Mbps for 100baseFXsfp.
* Fix for ethtool states pause frame use 'no' for pause frame-enabled adapter
* Change to remove the adapter->node value from the adapter struct and disable node specific allocations. This was rejected by the community some time ago and since then has been causing problems when node specific allocations fail.
* Fix for problem where 82580 devices do not appear to properly clear the TSICR interrupt on read like i350 devices by explicitly acknowledging the interrupt by writing 1 to that bit.
* Fix for FC threshold setting cause poor performance when packet buffer size is increased.
* Clean up and restructure ethtool support for EEE, to enable and disable the feature according to user's specification
* Update method of storing and displaying nvm version info for all devices.
* Update the filters to be more consistent with what the driver wants to do.
For example, for devices that timestamp all packets, report that the filter is set for timestamping all packets.
* Change tncrs implementation only increment tncrs for non-i210/i211 parts, due to reporting error.
* Fix flow control set up issue for Fiber adapters.


Changelog for igb-3.4.8
========================

* Changed igb_init_fw() to add initialization of checksum to 0.
* Removed debug messaging from build.


Changelog for igb-3.4.7
========================

* Changed igb_init_fw() to call proper swfw_sync function.
* Fixed minor issue that left one additional buffer unused.
* Added support for DEFINE_DMA_UNMAP_ADDR and DEFINE_DMA_UNMAP_LEN.
* Updated EEE to consistently check for internal copper devices.
* Fixed procfs code leading to a call trace on certain distros.
* Changed ethtool link test to account for slower-to-link devices.
* Added basic runtime power management support.
* Added byte queue limit support.
* Fixed rare link issue on 82576.
* Cleared TDWBAH/TDWBAL registers upon a VF reset to prevent packet loss when switching a VF from a Windows VM to a Linux VM.
* Set I2C bit-bang mode on external thermal sensor devices to reset routine to ensure I2C access after resets.
* Fixed link issue on certain i350 devices.
* Removed workaround for certain 82580 devices fixed by silicon stepping.
* Fixed link state change getting lost on all SerDes devices when using SerDes Forced Mode Override.

Changelog for igb-3.3.6
========================

* Updated DMAC threshold to account for jumbo frames.
* Removed unused stack variable
* Fix dma mapping call in igb_tx_map found when compiling on 3.2 kernels
* Update ethtool info for flow control advertising.
* Add ADVERTISED_Pause to keep flags.
* Added back the call to update the stats in the
igb_get_stats entry point due to bugs internal and external. This was this
way intentionally due to performance problems, but I'm changing it back due
to popular demand.
* Added additional flag to advertise settings for
link capabilities in ethtool.
* add check for fw_enabled before initializing
firmware.
* Add feature to log device data of various types to sysfs or procfs depending on kernel support of sysfs.


Changelog for igb-3.2.10
========================

* Use length instead of DMA address to indicate that a DMA is present
* Alternate MAC Address fixes


Changelog for igb-3.2.9
========================

* Fix to enable the SRRCTL.DROP_EN bit when multiple queues are present and flow control is disabled. By doing this we can prevent a single queue from consuming the entire FIFO and causing us to drop Rx packets.
* Fix to allow Alt. MAC Address feature on non-LOM devices.
* Add new device support.
* Fix to Correct driver version data sent to CEM firmware.
* Fixes to sync-up with upstream kernel.
* Change code so that instead of keeping a local copy of ring->dma just call ring->dma in igb_tx_map.
* Fix to improve the readability of TX path by moving TX DESC debug code into seperate functions.
* Fix TX hangs seen under heavy stress.
* Fix to drop the setting of ndo_set_multicast_list when we have net_device_ops.
* Fix RX accounting so that it includes the ethernet header in RX bytes received.
* Update TX NAPI to not use budget.
* Correct location of endif so that we check node_param in single param case.
* Fix to stop clearing of tx_desc->status, since we have next_to_watch as a pointer.  
* Fix to use i as an offset to the end of the ring instead of as an offset to the ring.
* Fix to simplify olinfo_status setup by having igb_tso also set the Tx CSUM flag.
* Fix to only write olinfo_status for the first descriptor.
* Fix missed check for i == tx_ring->count in clean_tx_irq and also update the value to reflect -count instead of 0.
* Enable i350 to do per-packet timestamping.
* Move the timer init into a sperate function to match what we have upstream.
* Whitespace and formatting cleanups to match what was required for upstream.
* Refactoring of driver to make it more similar in exeuction to other Intel drivers.
* Minor LRO related fixes
* Fix to leave status bits in rx descriptor and check them seperately.
* Fix LRO and VLANs with skb recycling.
* Fix use of i uninitialized in igb_tx_map error path.
* Fix to drop the mapped as page flag since it is no longer used.
* Fix value of MAX_TXD_PWR.
* Fix for bug where ethtool regtest fails on i350 devices.
* Fix timestamping not occuring in igb.
* Correct endianess on return type for igb_test_staterr.
* Minor reorder of tests for igb_can_lro
* Changed 1-20ms long msleep calls to usleep_range.
* Remove unecessary dev and rx_buf_len values from stack.
* Cleanup IVAR configuration.
* Fix spelling of promiscuous, add "packets" variable when calculating itr.
* Set index for context for both tso and csum.
* Remove unecessary extra reads in timestamp.
* Re-order devices to match what we have in upstream.
* Match the approach used upstream for defining the pci device table.
* Don't bother setting tso to 0 since we will just overwrite it.
* Fix build failure due to shtx not being in tx_buffer_info.
* Update build flags for kernel build to better match kernel.
* Remove outdated comment about single q-disc model.
* Drop work_done from RX cleanup fastpath.
* Streamline RX buffer allocation and cleanup.
* Move itr related data into work container within the q_vector.
* Consolidate creation of TX buffer info and data descriptor.
* Fix configuration of TX descriptor into igb_ctxt function.
* Make next_to_watch and first into pointers instead of offsets.
* Create functions for generating cmd_type_info and olinfo.
* Add rmb to prevent length from being read before DD.
* Add VLAN_HLEN instead of using define in e1000_defines.h.
* Add flush after I/O write, but before delays to make sure the delay takes effect.
* Fix to add IGB_CB which allows for LRO and legacy VLAN to pass the VLAN in the CB block of the skb instead of passing it as a parameter.
* Add header define to allow use of single pointer for lro.
* Move contents of lro_desc into the skb.
* Replace hlist with skb queue.
* Fix possible LRO ordering issue.
* Minor tweaks to avoid timestamping a packet prior to flush.
* Fix in igb_init_dmac to only write to PCIEMISC register for 82580 and later adapters.
* Base feature enablement for RX HASH on device flag instead of ring flag.
* Make LRO compile an opt out instead of an opt in.
* Add support for ndo_set_features.
* Do not strip gso_segs when TSO is not enabled in kernel.
* Fix for loopback test failure on DH89XXCC hardware.
* Added PCIe read to interrupt hot path.  Added flag CONFIG_IGB_REBOOT_ON_LAN to support enabling reboot on lan.


Changelog for igb-3.1.16
========================

* Fix for Malicious Driver Detection Feature on i350 devices in a virutalized environment.
* Add module parameter for DMA Coalescing feature to allow user to determine approximate latency setting at init.
* Updated DMA Coalescing init parameters per performance test lab results.  Feature now saves more power.
* Fix for problem found in pre-release RHEL 5.7 which caused a panic at device configuration.
* Added function to set rx_hash and a call to it during receive.  Not changeable by ethtool at this time, however.


Changelog for igb-3.0.22
========================

Fix for panic found with some third party software in receive function.  Fix is already upstream.


Changelog for igb-3.0.19
========================

Add full feature support for i350 devices.  New features for i350 devices only:
	Add Energy Efficient Ethernet, enabled by default, disabled by module parameter:  EEE
	Add DMA Coalescing, disabled by default, enabled by module parameter:  DMAC
	Add Thermal Throttling feature.  Driver will message user when device is shut down or speed throttled due to thermal event on copper devices only.
	
Fix for VMkernel failed JF TCP traffic by netperf-uw
Fix for Disabling HW VLAN stripping/insertion breaks traffic (NIC::Functional::HW.VLAN.RX.TX)
Fix for Jumbo Frames are not recieved by virtual adapters when VMDQ is enabled
Fix for VmKernel Jumbo Frames are not received by vmknic.
Fix for problem found building on 2.4 kernels, replaced references to pci_dev->dev with pci_dev_to_dev.
Fix for transmitting a packet shorter than 17 bytes was causing TX hangs on the adapters.
Fix for problem where user can't ping local vf after setting pf mtu to 9000
Fix for setting mtu doesn't allow packets over 1472 to be sent on i350 devices.
Fix for PF to VF not pingable only on local host.
Fixed calls to strncpy to use correct string length.


Changelog for igb-2.4.13
========================

* fixes compile problems found in 2.6.37.


Changelog for igb-2.4.12
========================

* fixes compile problem found in SLES10.


Changelog for igb-2.4.11
========================

* add support for Intel i350 Gigabit Network Connection.  This is the follow-on part to 82580. 


Changelog for igb-2.4.8
========================

* add support for new fiber devices Intel(R) Gigabit Server Adapters I340-F4
* add support for new string format of PBA numbers for adapters.
* fix for dropped connection when setting fiber devices to unsupported speed using ethtool.
* updated readme
トラックバック - http://tech.g.hatena.ne.jp/rx7/20140120

2013/12/02

TCP: too many of orphaned sockets

| TCP: too many of orphaned sockets - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - TCP: too many of orphaned sockets - id:rx7(@namikawa)の技術メモ TCP: too many of orphaned sockets - id:rx7(@namikawa)の技術メモ のブックマークコメント

説明

ソケットのクローズ処理時に、orphan 状態(*1)にあるソケットが想定したよりも多いことを検出した際に出力されるメッセージ。

具体的には、以下の2つの条件のうち、どちらかを満たした場合に出力される。

1.TCP ソケットのうち、orphan 状態のものが tcp_max_orphans(*2) を越えた。
2.TCP ソケットの送信キューの長さが最小値(SOCK_MIN_SNDBUF:2048)よりも長く、
  かつTCP 用にアロケートされているメモリ量が tcp_mem の high(*3) を越えていない。

この状態になると、カーネルは当該ソケットをクローズ状態に変更し、RST パケットを送出する。


  • (*1)orphan状態: システムで使用していたTCPソケットのうち、ソケットに使用しているメモリ領域を解放予定であるが、実際にはまだ解放していないソケットを指す。TCP にのみ存在する状態。
  • (*2)tcp_max_orphans: orphan 状態のソケットの最大数。デフォルト値は搭載メモリ量に応じて変動する。
  • (*3)tcp_mem のhigh: #cat /proc/sys/net/ipv4/tcp_mem とした場合に現れる値の3つ目がこれにあたる。
OSS Message Pedia -mid:30053-

対処

システムの動作そのものに問題が発生してはいないため、必ずしも対処は必要ではない。

この状態に陥って、RST パケットを送出されるのが困る場合や、出力を抑制したい場合などには、以下のように tcp_max_orphans の値を増やすことで回避可能である。

・ # sysctl -w net.ipv4.tcp_max_orphans=VALUE
または
・ # echo VALUE  /proc/sys/net/ipv4/tcp_max_orphans
※VALUE は設定したい tcp_max_orphans の値
OSS Message Pedia -mid:30053-
トラックバック - http://tech.g.hatena.ne.jp/rx7/20131202

2013/10/25

CentOS 6系でインターフェース単位でIPv6を無効にする

| CentOS 6系でインターフェース単位でIPv6を無効にする - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - CentOS 6系でインターフェース単位でIPv6を無効にする - id:rx7(@namikawa)の技術メモ CentOS 6系でインターフェース単位でIPv6を無効にする - id:rx7(@namikawa)の技術メモ のブックマークコメント

このインターフェースではIPv6で通信したいけど、あのインターフェースではIPv6を無効にしたいとかいうケース。

sysctlで、下記のようにインターフェースを指定する感じで書いておけばOK。

net.ipv6.conf.all.disable_ipv6 = 1

OS再起動させた方がいいと思うので、sysctlコマンドよりは、"/etc/sysctl.conf" に書いた方がよさそうですね。


あわせて読みたい

トラックバック - http://tech.g.hatena.ne.jp/rx7/20131025

2013/10/09

BGP identifier wrong

| BGP identifier wrong - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - BGP identifier wrong - id:rx7(@namikawa)の技術メモ BGP identifier wrong - id:rx7(@namikawa)の技術メモ のブックマークコメント

iBGPの設定入れた後、BGPピアを確立する際に、うまくセッションがはれず、以下のエラーが出ていた。

*Oct  9 14:07:27.381: %BGP-3-NOTIFICATION: received from neighbor 10.255.255.118 active 2/3 (BGP identifier wrong) 4 bytes 0A850001
*Oct  9 14:07:27.381: %BGP_SESSION-5-ADJCHANGE: neighbor 10.255.255.118 IPv4 Unicast topology base removed from session  BGP Notification received
*Oct  9 14:07:33.126: %BGP-3-NOTIFICATION: sent to neighbor 10.255.255.118 passive 2/3 (BGP identifier wrong) 4 bytes 0A850001
*Oct  9 14:07:33.126: %BGP-4-MSGDUMP: unsupported or mal-formatted message received from 10.255.255.118:
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0039 0104 FE4C 001E 0A85 0001 1C02 0601
0400 0100 0102 0280 0002 0202 0002 0246 0002 0641 0400 00FE 4C

どうやら、router-idを設定していなかった結果、自動で割り当てられたidが、双方のルーターで重複してしまっていた模様。

router-idを設定することで、問題なくBGPセッションを確立することができました。


ちなみに、router-idを指定しなかった場合は、デフォルトでループバックアドレスが割り振られるらしく、

ループバックアドレスが設定されていない場合は、インターフェースで指定されているIPアドレスで一番大きなものが割り振られるらしい。

トラックバック - http://tech.g.hatena.ne.jp/rx7/20131009