initial checkin of gpon_onu_drv-4.5.0

https://github.com/kbridgers/VOLTE4GFAX/raw/master/dl/gpon_onu_drv-4.5.0.tar.gz
This commit is contained in:
Harald Welte 2022-12-23 09:02:40 +01:00
commit 39c6102ba1
197 changed files with 144449 additions and 0 deletions

0
AUTHORS Normal file
View File

0
COPYING Normal file
View File

810
ChangeLog Normal file
View File

@ -0,0 +1,810 @@
NEXT VERSION
v4.5.0 2013.03.08
common:
- GPONSW-1144: OMCI: Counter read and reset
+ fixed the gpe_bridge_port_counter_threshold_get function
- GPONSW-1142: TBM Crawler default settings affected TBM function for
low packet arrival rates.
+ initialize TBM crawler period to 12 on A2x.
+ Change minimum meter rate to from 8 kB/s to 3 bytes/s
- GPONSW-1141: enable hardware support for OMCI downstream channel
- GPONSW-1122: Functions gpe_tagging_filter_set and gpe_ext_vlan_set have been
enhanced to clear those VLAN table/VLAN Rule Table entries which are located
behind the end of the list, but still within the same memory line.
- GPONSW-1102: Option to use only layer 2 for metering
+ SCE constant index=17 initialization added (default 0x0)
+ FIO_GPE_SCE_CONSTANTS_SET/GET ioctl extended with "meter_l2_only_enable" parameter
- GPONSW-1080: add global reset for PM counter
+ added ioctl FIO_ONU_COUNTERS_RESET
- GPONSW-1077: Bridge port counter reset function missing
+ removed ioctl FIO_GPE_BRIDGE_PORT_CNT_GET
+ added ioctls
+ FIO_GPE_BRIDGE_PORT_COUNTER_GET
+ FIO_GPE_BRIDGE_PORT_COUNTER_THRESHOLD_SET
+ FIO_GPE_BRIDGE_PORT_COUNTER_THRESHOLD_GET
+ FIO_GPE_BRIDGE_PORT_TCA_GET
+ FIO_GPE_BRIDGE_PORT_COUNTER_RESET
+ add dedicated events ONU_EVENT_BRIDGE_TCA & ONU_EVENT_BRIDGE_PORT_TCA
+ make the counter 64bit
+ update CLI
- GPONSW-1071: The counter "Transmitted Frames per GEM Port" has
been made accessible and the reset mask has been fixed.
- GPONSW-1070: allow smaller TCONT allocation size
- GPONSW-1055: (related to GPONSYS-199) Exception in case of match with one of 8 Ethertypes
+ FIO_GPE_PARSER_CFG_SET/GET ioctls handling extended to use ONU_GPE_ETHERTYPE_EXCEPTION_TABLE
+ ONU_GPE_CONST_ETHTYPE_SPEC_TAG definition changed to ONU_GPE_CONST_UNUSED0
+ FIO_GPE_SCE_CONSTANTS_SET/GET ioctls parameter "ethertype_spec_tag" renamed to "unused0"
- GPONSW-1053: include MAC_PISR / EIM_ISR in EIM Dump
- GPONSW-1024, GPONSW-1050: Watchdog for traffic stucks
+ upstream stuck detection on TOOLONG bit in MAC (on A22 only)
+ downstream on TXFIFOFULL and EPFILLED
+ restart GPHY link upon US error rates based on SSD and MACERR
- Ploam message dump for enhanced debug information
+ add dump for ploam messages
+ add PLOAM downstream message simulation
- GPONSW-1007: Add missing Sync Time OMCI message handling
+ add sync time supervision
+ onu_sync_time_set() poll condition fixed
+ reset counters in FIO_ONU_SYNC_TIME_SET and start new 15-min interval
bug fix(es):
- GPONSW-1094: GTOP BridgePort counter are not mapped to correct counter address
+ gtop compile warnings fixed
- GPONSW-1091: Meter parameter calculation corrected, as the meter was not working properly
+ Change minimum meter rate to from 8 kB/s to 3 bytes/s
- GPONSW-1068: PHY egress loop and mac loop is not working if link is down.
+ The link status is now forced up by software and link state changes are ignored
as long the loop is switched on.
+ By forcing the link up, the link LED is also on.
+ Disabling the LAN port also resets and deactivates the loop
+ The loop is only working when the LAN port is enabled
- GPONSW-1056: LAN port disable now deactivates GPHY
- GPONSW-1041: Software image download failed
+ do not remove fragmented meta data from the Link FIFO
+ refacture the LINK access code to make it more robust
+ prepare for extended baseline support
+ fix the max buffer size
+ add more debug information
v4.4.1 2012.12.12
common:
- GPONSW-1046: enable OMCI queue by default
The OMCI queue should be enabled by default in the FW Enqueue Table.
Reason: ALU OLT expects SSH channel on OMCI T-cont.
This channel operates via FW and IP Host and therefore needs FW enqueueing.
- GPONSW-1042: Laser Tx needs to be safely shut off in state O7 (also if BERT is enabled)
+ switch on after leaving O7 (any state)
- GPONSW-1041: Software image download failed
+ poll the Link interface longer to avoid fragmented meta data
- GPONSW-1040: PLOAM downstream message - Disable all upstream transmission
through Disable Serial Number
- GPONSW-1037: add BC / MC counter
- GPONSW-1033: The pseudo-random generator is systematically seeded in the same
way after boot up. If several boards boot up simultaneously and are connected
to the same OLT port, it can happen that the random delay of the serial number
response is identical for several boards.
+ replace pseudo random generator values by CPU count
+ this gives us better & faster randomized values
- GPONSW-1027: gtop: replace SCHEDULER by SBIN (scheduler block input)
- GPONSW-1018: FE4 mode doesn't work as expected
- GPONSW-1015: set GPHY in reset before downloading firmware
- GPONSW-1009, GPONSW-1030: Unused egress queues are cleared:
+ Protection has been added for TMU low-level access.
+ Protection has been added for OCTRLC operations.
+ A garbage collection function has been added to drain the remaining contents
from disabled queues, thus freeing up buffer space.
+ The ANI egress ports are not disabled in order to allow for garbage collection.
+ On the UNI side, queues are cleaned up before the egress port is disabled.
- GPONSW-911: Ingress Queue ppstream packet insertion into UNI Ports
bug fix(es):
- GPONSW-1013: Switching LAN modes did not always work as GPHY reboot did not complete.
This has now been fixed.
v4.4.0 2012.11.20
common:
- remove ANI & LAN exception table, replaced by exception table
bug fix(es):
- GPONSW-1008: Disable LAN-side egress queues if not used
- GPONSW-1013: switching lan modes does not always work because GPHY reboot
not yet completed
- GPONSW-978: Exception packets handling adaptation to improved exception header format
+ exception header now consists of 8 instead of 4 bytes
+ received VLAN now included in exception header
+ facilitates IGMP handling
- GPONSW-969: Chip dependend GPHY firmware loading
+ Parse firmware version and don't load it on wrong device;
+ If there is no version information in FW image, load it anyway;
+ If there is no GPHY firmware in /lib/firmware/ or it has wrong version,
try to unconditionally (meaning, don't check version) load firmware from
/lib/firmware/a1x/ or /lib/firmware/a2x/ depending on device.
- GPONSW-1010: OMCI queue buffer reservation
+ add default reservation values for extended OMCI message size
- GPONSW-1009: Clear unused egress queues
+ add protection for tmu low level access
+ note: the read/modify/write routines still not thread safe
+ add protection for octrlc operations
+ add garbage collection thread
- GPONSW-1001: OMCI Tx channel is stuck after TCONT deassignment during traffic
+ remove only normal TCONT's
+ if a TCONT is used by OMCC just delete the REPN value
+ fix TCONT index range checks
- set default crawler period to 10
- set the IQM prescaler to 4
- change the default shaper values - fix the 6.2.13 test case with enabled upstream shaper
- remove OMCI CRC check, the OMCI stack should detect retransmission
- GPONSW-391: PLOAM Message reception for PON ID
+ fixed copy routine kernel to user space
+ fixed alignment of gtc_pon_id structure
+ fixed elements of structure ploam_dn_pon_i
+ update CLI
+ fix array size
- GPONSW-719: Traffic stuck after disabling shaper
Update default values for token bucket shaper
- GPONSW-839: configure exception meters
Add ANI exception meter (A2x)
- GPONSW-868: GTC upstream broken: sending shortened T-CONTS with random data
Instead of diabling the GTC TX framer disable the optical tx interface.
- GPONSW-864: still PLOAM state O1 after reception of two downstream frames.
Poll on regular base in state O1 the SYNC condition.
- GPONSW-865: PLOAM state O0 after power up without fiber
To ensure the safe transition from O0 to O1 state the timer T00 is added.
TO0 state is a dummy state to handle the requirement to start the PLOAM state
machine with state O1 or state O7.
Event was removed, but in this case the ploam_fsm() has to be triggered
- GPONSW-869: COP workaround for hash table full avoidanc
- GPONSW-886: GTC was upstream broken. This fix empties Rx TCONT FIFO before
going to PLOAM State O2
- GPONSW-888: Definitions for exceptions have been changed since FW version 4.43.0.0
to change priorities for DoS prevention
- GPONSW-895 bugtfix for hash deletion and FID treatment for TSE version 1 (a1x)
- GPONSW-897: gtop "GPE DS GEM port": decoding of exception_profile missing
- GPONSW-901: GMII clock activation
- GPONSW-920: Race condition between O6 and Offset re-calculation
- GPONSW-924: LDD Power Save truncates end of burst in extended burst length mode against ALU OLT
- GPONSW-930: FS4 image rebooted by watchdog
- GPONSW-934: gtop update
+ fix fsqm_rcnt dump
+ fix fsqm_llt dump
+ add marker for each page when dumping to a file
+ unification of page names
+ add "Meter Configuration" page (shortcut: t-e)
+ add Meter status as well
+ add GPE counter page
+ add ds_gem_meter_enable / ds_gem_meter_id
- GPONSW-954: fix AllocID 255 handling
delete the TCONT if it was configured before
- GPONSW-968: Do not set Tcont ID to 0xff at delete but set used = 0 and use the original id
+ speed up tcont deletion in octrlg
+ there is no more delay of 5 ms delay between GTC and octrlg deletion
- GPONSW-997: The order of parameters for ictrlg_gem_port_set() and get() and
octrlg_gem_port_set() has been fixed.
v4.3.0 2012.08.10
common:
- update SCE interface to 4.43.0
- PIR/CIR range documentation added to struct gpe_meter_cfg
- GPONSW-842: upstream queues connected to T-CONT directly
+ add new ioctrl() FIO_GPE_TCONT_CREATE to create TCONT related scheduler
+ the related EPN is enabled as well
+ in case that the policy is 0 the policy 1 (strict policy) is forced
bug fix(es):
- GPONSW-173: Remote defect indication (RDI) Software Handling
+ introduce gtc_refresh_rdi() function to set the RDI upstream bit based
on the GTC_DSSTAT_1_SF information
+ remove gtc_clear_ind5() function
- GPONSW-694: FID programming
+ fix the ingress exception handling: use the correct IQM queue #8
for downstream forwarding
+ fixes BBF 6.3.1
+ remove obsolete SW_GPIX
- GPONSW-768: make sure to disable egress-port on link down
+ cleanup and align rxmii_phy_status_update
+ add lan_egress_port_enable() for simpler calling
- GPONSW-772: Token Bucket Configuration of Scheduler ME in Conflict with Priority Queues
+ disable all SBINs, use right masks for SBOT/SBIT
+ set default shaper values during create, the intention is that the shaper is passing all data
- GPONSW-820: ONU crash if CLI commands entered too early
only a subset of commands (ploam_init, gtc_init, gtc_serial_number_set/get,
gtc_cfg_set/get, gtc_power_saving_mode_set/get, lan_gphy_firmware_download,
onu_event_enable_set/get, onu_event_fifo) is now allowed to be
executed prior to GPE init
- GPONSW-833: Introduce selection for extended serial number (SN) response
the function goi_lts_trigger() has to be used now
- GPONSW-837: OMCI messages are dropped in case that TCID is repeated
consider the CRC instead of the TCID - this is more safe
- GPONSW-839: Configure exception meters
added debugging counter
v4.2.0 2012.07.12
API:
- ioctl(s) modified:
+ FIO_GPE_EXT_VLAN_SET: max_vlans parameter added
+ FIO_GPE_ANI_EXCEPTION_CFG_SET/GET: exception_profile parameter replaced with
ds_exception_profile and us_exception_profile
common:
- GPONSW-745: OMCI: Multicast VLAN handling
- GPONSW-762: PCP_DECODING_TABLE default setting
- GPONSW-768: Setting ONU Ethernet Mode from OLT
+ added FIO_LAN_PORT_CAPABILITY_CFG_SET/GET ioctls to allow PHY auto
negotiation capabilities configuration
+ marked EEE feature of FIO_LAN_PORT_CAPABILITY_CFG_SET as not supported
+ added support for lanpe/lanpd
- GPONSW-787: MIPS API ACL table write must be suppressed in A21, but it must
be supported on A12
- GPONSW-801: CLI/gtop: Table access to MAC_FILTER_TABLE
bug fix(es):
- GPONSYS-136: Reset the MAC on link up to avoid traffic stucks
- GPONSW-559: GTC debug support for allocation loss
+ added bits description to 'Loss of allocation'
+ added t-b page with BWM trace details
- GPONSW-625: fixed LAN_LOOP_CFG_SET loop setting.
Phy ingress wrongly set near end loop instead of far end loop. Besides
a new auto negotiated was needed to take the settings effect.
- GPONSW-735: AES encryption enable/disable
+ don't disable the encryption during gem port add called from OMCI network CTP
+ re-use the hardware settings instead
- GPONSW-748: lanpcs CLI-less command fixed
- GPONSW-758: wrong translation of GPE FW abort reason value to abort string
- GPONSW-766: OMCI - Downstream Priority Queue selection by GEM port
+ extending FIO_GPE_EGRESS_QUEUE_PATH_GET ioctrl to return internal configuration values
+ added debugging support for queue_selection_mode / egress_queue_offset fields
of DS GEM PORT table
- GPONSW-773: TMU inverse weight calculation in driver
- GPONSW-788: Range checks missing for gpe_egress_queue_cfg_set
- GPONSW-797: Meter mode GPE_METER_NONE not implemented
- GPONSW-811: Upstream traffic does not trigger Ethernet activity LED
- GPONSW-828: dump fsqm_rcnt from gtop not working
gtop: added printout when number of lines of dumped file exceeds supported
gtop: increased maximum supported lines number for proc files to 25000
(was 10000) to fit in FSQM RCNT
- GPONSW-830: ACL IPv4-SrcAddress filtering does not work
aligned param1_mask argument of FIO_GPE_ACL_TABLE_ENTRY_SET with
FW table (bitwise instead of nibble mask)
v4.1.2 2012.06.27
- GPONSYS-136: Fix downstream traffic stuck after configuring LAN port by
switching the egress port on only after the PHY link is established
v4.1.1 2012.06.22
bug fix(es):
- GPONSW-391: PLOAM Message reception for PON ID, fixed debugging output in onu tool
- GPONSW-757: gtop GPE short forward MAC mismatch in fields
- GPONSW-722: In some cases when switching a LAN port configuration via the driver
API FIO_LAN_PORT_CFG_SET while downstream and upstream traffic is running the
downstream traffic stuck and is was not possible to start it again even when
switching the LAN port off and on. This has been fixed.
common:
- GPONSW-744: Include OFSQ in gtop dump
v4.1.0 2012.06.15
API:
- ioctl(s) added:
+ FIO_GPE_EGRESS_PORT_ENABLE
+ FIO_GPE_EGRESS_PORT_DISABLE
+ FIO_GPE_METER_CREATE
+ FIO_GPE_METER_DELETE
+ FIO_GPE_SHORT_FWD_IPV4_MC_PORT_ADD
+ FIO_GPE_SHORT_FWD_IPV4_MC_PORT_DELETE
+ FIO_GPE_SHORT_FWD_IPV4_MC_PORT_MODIFY
+ FIO_GPE_DEBUG_INIT
- ioctl(s) modified:
+ FIO_GPE_METER_CFG_SET/GET: enable flag removed
+ FIO_GPE_CAPABILITY_GET: return the lowest available value for max_eth_uni
+ FIO_GPE_METER_CFG_SET/GET: discard_red parameter removed
+ FIO_GPE_SCE_CONSTANTS_SET/GET: max_mtu_size parameter removed
+ FIO_GPE_SCE_CONSTANTS_SET/GET: ani_exception_meter_id, ani_exception_enable and
disable_length_check parameters added
+ FIO_GPE_SHORT_FWD_IPV4_MC_PORT_MODIFY: key_code field removed
+ FIO_GPE_SHORT_FWD_MAC_MC_PORT_MODIFY: key_code field removed
- ioctl(s) removed:
+ FIO_GPE_TMU_GLOBAL_CFG_SET
CLI:
- new command(s) added:
+ gpe_egress_port_enable
+ gpe_egress_port_disable
+ gpe_meter_create
+ gpe_meter_delete
+ gpe_debug_init
- command(s) removed:
+ gpetgcs/gpe_tmu_global_cfg_set
common:
- GPONSW-626: Disable Egress Ports by default
- GPONSW-659: GPE initialization for FW debugging
- GPONSW-671: SGMII mode selection error check
- GPONSW-729: Remove ONU_GPE_METER_TABLE access
- GPONSW-736: Disable Ethernet length check in firmware
- Sanity checks added for the SCE Debugger IOCTLs
- file(s) removed:
+ drv_onu_ebu.h
bug fix(es):
- GPONSW-701: Ethernet LEDs different on ports 0/1 vs ports 2/3
- GPONSW-709: Do not remove the support of optional header for PE specific download of firmware
- GPONSW-731: Hierarchical scheduling traffic stuck
- GPONSW-732: tmu_token_bucket_shaper_link_get() fixed
- GPONSW-733: scheduler level tracking added, sanity checks added
- GPONSW-739: lan_port_cfg_get returns incorrect max_frame_size
- GPONSW-735: Allow to set AES encryption enable/disable in FIO_GPE_GEM_POPT_SET. It was always
forced to false
v4.0.3 2012.05.08
API:
- ioctl() interface change:
+ move unaligned array to the end of the structure gpe_mac_mc_port
used by FIO_GPE_SHORT_FWD_MAC_MC_PORT_ADD / FIO_GPE_SHORT_FWD_MAC_MC_PORT_DELETE
+ add FIO_GPE_SHORT_FWD_MAC_MC_PORT_MODIFY to add new port map entries
in case that the MC entry doesn't exist it will be added
common:
- add gtop shortcut: CTRL-B / CTRL-V to toggle between excel and raw mode
bug fix(es):
- add MC entry with FIO_GPE_SHORT_FWD_MAC_MC_PORT_ADD, fix one_port_map_indicator
v4.0.2 2012.04.27
CLI:
- new command(s) added:
+ gpe_short_fwd_mac_mc_port_add
+ gpe_short_fwd_mac_mc_port_delete
API:
- ioctl(s) extended:
+ GTC_COUNTER_GET: allocations_total, allocations_lost added
+ GTC_ALARM_GET: loss_of_allocation added
+ FIO_GPE_LAN_EXCEPTION_CFG_SET/GET: sync handling with the latest firmware
+ FIO_GPE_ANI_EXCEPTION_CFG_SET/GET: sync handling with the latest firmware
+ FIO_GPE_INIT: num_pe field added to "struct gpe_init_data"
+ FIO_GPE_STATUS_GET: num_pe field added to "struct gpe_status"
- ioctl(s) added:
+ FIO_GPE_EXCEPTION_PROFILE_CFG_SET
+ FIO_GPE_EXCEPTION_PROFILE_CFG_GET
+ FIO_GPE_SHORT_FWD_MAC_MC_PORT_ADD
+ FIO_GPE_SHORT_FWD_MAC_MC_PORT_DELETE
common:
- new configuration option(s) added
+ --enable-remote-only-onu
- add link1 interrupt polling for ONU firmware
- GPONSW-559: GTC debug support for allocation loss
- move RPC handling to the GPON RPC
- onu: add gpe_tcont xml/json wrapper (for GPONSW-536)
- GPONSW-649: LAN port muiltiplex mode for single RGMII
- GPONSW-627: Make number of GPE PEs configurable
- GPONSW-653: Simplified FID handling
- GPONSW-646: Improve the GPHY slave training by disabling scaling down power
- MAC&FID forwarding:
+ DS GEM and LAN port tables initialization added
bug fix(es):
- fix DEVIO _IOC defines
- onu_gtc_ds_handle(): clear downstr_gtc_dsistat_1 with respect to
downstr_gtc_dsimask_1
- fix wrong gtop counters with remote ONU
- GPONSW-559: GTC debug support for allocation loss
add 't-a' page for GTC alarms and 't-c' page for GTC counters
- GPONSW-558: API for adapting PLOAM O1/O2 timeout values
- GPONSW-576: No ping possible after change of MAC address
- GPONSW-584: MAC bridge port bridge table data ME returns Age=0
return Age=4095 when aging disabled
return Age=1 + <HW age> otherwise
- GPONSW-602: some PHY settings are only written directly and not updated after
"lan port disable/enable" sequence
- fix return of lan_phy_fe_loop_enable_set()
- lan_phy_mode_control_set(): really write "mode control register" for specific
settings of speed and duplex and fix definition and setting of relevant bits
- only allow real Lantiq-OID to identify Lantiq PHY, not 0xFFFFFC (from an inactive PHY)
- fix endianess issue in phy_oui_get()
- don't accept WOL settings for external PHYs
- FIO_GPE_TABLE_ENTRY_SEARCH ioctl mapping fixed
- GPONSW-497: add vlan information
fix XML/JSON table entries dump for indexes >=256
- GPONSW-620: lan_port_disable/enable could conflict with the backround status polling
- Fixed enabling of GPE meters
- GPONSW-637: Maximum frame size setting breaks link and does not work
v4.0.1 2012.02.10
API:
- ioctl(s) removed:
+ FIO_GPE_ACTIVITY_GET
+ FIO_GPE_NAPT_ADD
+ FIO_GPE_NAPT_DELETE
common:
- GPONSW-515: Add XML GEM port dump wrapper
- GPONSW-466: restore table id & instance when return with
GPE_STATUS_COP_ENTRY_NOT_FOUND
- update SCE interface to 4.7.0
- update SCE interface to 4.12.1
- update SCE interface to 4.13.1
- GPONSW-476: don't print invalid (valid == 0) entries in JSON/XML wrappers
- Automatically convert xls to csv when update SCE with update_sce.py
- GPONSW-501: Decode the packet drop reason from the firmware status
information
- Integrated new PE mailbox sync mechanism via signals
- add link1 interrupt for OMCI message handling
bug fix(es):
- MAC Filter table init fixed
- Workaround for GPHY 1.4: fix "GPHY fails to train up with some link partners
in 1000BASE-T mode"
- send always the extended serial number pattern
- GPONSW-505: Laser shall be off during guard time
- rename api routines to match ioctls
- add endianness handling to GPE tables (not tested)
- onu_iocmd_local: don't print GPE_STATUS_NOT_AVAILABLE errors
from FIO_GPE_GEM_PORT_GET
- fix gtop segmentation fault on proc pages
- GPONSW-524: boot problem - kernel 3.1.10.
fixed early HW access in net_rx_enable()
- detect endian in drv_onu_gpe_tables.h
- fix alignment issues in struct gpe_table; remove __ALIGNED32__ (use union)
v3.0.9 2011.12.20
- Load gphy firmware in lower SBS0RAM (below bar0, no reconfiguration needed)
- gpe_lan_exception_cfg_set/get(): fix for "exception_meter_id" handling
- flush PLOAM FIFO when enter state 7
- don't send serial number PLOAM message in state 7
- send additional serial number message once in state 2 (upstream overhead)
and state 3 (assign ONU ID) (otherwise we're loosing the first bwmap request)
- Updated FWD TSE Micro Program to VERSION: 1.12 (changes from schafran)
- GPONSW-423: fix wrong address on 'onu scess'
- SCE: added lock for global group_serviced
- All unused LL functions placed under INCLUDE_UNUSED_LL_FUNCTIONS
- GPONSW-461: add doxygen header in sce2resource.py; fix doxygen errors
bug fix(es):
- set correct instance for accessing ONU_GPE_METER_TABLE_ID
within gpe_meter_cfg_get/set().
- add more ioctl wrappers for configuration without CLI
- GPONSW-448: buffer_overflow mapping added.
- GPONSW-466: make key mandatory for COP tables in gpetg and return error from
gpe_table_entry_intresp when COP entry is not found
- clear structures on various xxx_get() routines
- GPONSW-466: make key mandatory for COP tables in gpetg and return error from
gpe_table_entry_intresp when COP entry is not found
v3.0.8 2011.11.22
API:
- new ioctl(s) added:
+ FIO_GPE_SCE_MAC_SET
+ FIO_GPE_SCE_MAC_GET
- added extensions for "lct" network interface handling
- Local CPU MAC address handling added for FIO_GPE_SCE_CONSTANTS_GET/SET
- Snooping control added for FIO_GPE_EXCEPTION_QUEUE_CFG_GET/SET
- GPONSW-361: add new fuses format handling
- GPONSW-388: moved cop debugging under INCLUDE_COP_DEBUG,
removed obsolete PE FW simulation, fixed usage of onu_is_initialized,
moved many register access calls to the LL part,
moved sce_pe_table_entry_read/write to gpe_table.c
- GPONSW-402: fix gpe_status output
- gpe_tcont_set(): fix range check for pre_egress_port, 127 is disabled
- gpe_tcont_set(): add range check for reg_egress_port, 127 is disabled
- OMCI: use pre_egress_port for default OMCI data flow
- gtop: add REPN / PEPN values to the alloc-id overview
v3.0.7 2011.11.12
- Added configure support for the debug tool event logger
- Adaptations for FW >= 3.27.x with optimized packet mode switching and
removed SYNC bit
- GPONC-274: Limitation Inconsistency in the microcode of FWD COP
v3.0.6 2011.11.10
- GPONSW-361: remove drv_onu_resource_device_psbXXX.h from interface headers
- fix tof and ton return values on mu_low_power_idle_cfg_get
- CLI: add gpe_pe_table_get/set for specifying a pe instance for FW debugging
bug fix(es):
- GTC counters interval handling fixed
- UINT64_MAX, UINT32_MAX, UINT16_MAX definitions fixed
- GTC BIP counter handling fixed: counter accumulation once per BERR
interval added.
v3.0.5 2011.10.28
- GPONSW-338: fill PCP en/decoding with default configuration
- GPONSW-361: add GPE capability support
v3.0.4 2011.10.21
- Fix in arbiter for traffic stuck at 555 MHZ
- COP low level printouts deactivated
v3.0.3 2011.10.15
API:
- new ioctl(s) added:
+ FIO_GPE_TR181_COUNTER_GET
+ FIO_GTC_LAST_CHANGE_TIME_GET
+ FIO_GPE_SCE_CONSTANTS_SET
+ FIO_GPE_SCE_CONSTANTS_GET
common:
- check __GNUC__ to confirm C99 extension
- add valid (V) indication for EQT entries; filter empty lines in gtop
- GPONSW-310: add FW permeter page
- GPONSW-335: add gpe_port_index_get, fix gpe_egress_port_get
- GPONSW-334: remove use_tcont from gpe_scheduler_get/delete input structure
- GPONSW-337: add support for PHY-less LAN ports
- GPONSW-277: add preliminary egress queue, egress port, scheduler XML/JSON
wrappers
bug fix(es):
- fix returned tod_nano_seconds from gpe_tod_sync_get
- TOD: fix ASC1 support & printouts; use 9600 baud rate for ASC1
v3.0.1 2011.08.31
API:
- "struct gpe_lan_exception_cfg" extended
- "struct lan_port_cfg " extended with "lpi_enable"
common:
- added support for ONU configuration via options (with disabled CLI)
- exception packets handling added
- FIO_GPE_ETHERNET_RECEIVE/SEND ioctls removed
- "--with-procfs" configuration option added (enabled by default)
- "--with-sce-dbg" configuration option added (enabled by default)
- removed printk usage from scebp, scebc, scerp (implemented custom CLI
handlers)
bug fix(es):
- gpe_lan_exception_cfg_set/get(): fixed table index
v3.0.0 2011.08.05
common:
- corrected formulas for tmu_tbs_srm_conversion() and tmu_tbs_rate_conversion()
functions to avoid uint32_t range exceeding while value calculation
- changed interface from meter_set/get to meter_cfg_set/get
- added interface meter_status_get
- Fix in arbiter for traffic stuck at 555 MHZ
- OMCI dump includes message priorities
- reset the laser delay to a pre-defined value
- add LAN_FLOW_CONTROL_MODE_NONE
- if at least one of the 4 lan ports is up - enable the host lan port
bug fix(es):
- GPONSW-243: wrong range check within gpe_token_bucket_shaper_create.
Range check fixed.
- ssb_data_read: fix handling for a spread pdu body
- fixed COP error code mapping
- GPONSW-243: wrong range check within gpe_token_bucket_shaper_create.
Range check fixed.
- fixed tmu_token_bucket_shaper_cfg_get. The parameters pir, pbs and cir,
cbs were written into the wrong registers of the TMU.
- fixed GTC register dump
- add BWmap dump
- if at least one of the 4 lan ports is up - enable the host lan port
- enable the netdev rx interrupt if the PLOAM5 is reached already in open function
- Ethernet Activity LEDs swapped, Activity LED blinking without cable plugged in.
Link state analysis added.
v2.0.1 2011.05.25
CLI:
- command(s) extended:
+ lanpcs/lanpcg: max_frame_size added
common:
- new even(s) added:
+ ONU_EVENT_15MIN_INTERVAL_END
- Added a reboot and initialization of the TMU in gpe_init
- OCTRLG/ICTRLG counters handling fixed
- Common counters wrap-around handling fixed
- max_frame_size parameter added to "struct lan_port_cfg"
- corrected formulas for priority queue fields "Packet drop max_p"
- Aging process trigger added
- FIO_GPE_AGING_TIME_SET/GET calculations fixed
- struct gtc_status:gtc_ds_delay handling added
- multiple PE firmware binaries support added
v2.0.0 2011.04.15
CLI:
- new command(s) added:
+ mmddr/mmddw
common:
- new ioctl(s) added:
+ FIO_MMD_DATA_READ
+ FIO_MMD_DATA_WRITE
- WOL handling extended
- interface for the netdev driver reworked
- new configuration option(s) added
+ --with-lan-raw (to be removed in the FS2)
- Always calibrate tx buffer if gtc_tx_enable is done & during O6 - O5 state change
- Superfluous parameter to the command "onu gpetg".
"gpetg" CLI command handling improved, "data" field now is optional and will
be handled only in case of data_count!=0.
- Added a check for the seq_printf call to reprint the lines on the page
boundaries
- Replace flood_map by uuc_flood_disable in bridge port table
- Auto-negotiation support added for RXMII modes
- "tmu_global_packets_max" field removed from the "struct gpe_shared_buffer_cfg"
- "tmu_egress_queue_table_init()" color settings fixed
v1.0.7 2011.02.25
- Improved COP loader
- fix for unresolved "uevent_sock" in kernel 2.6.35 and add broadcast_uevent for older kernel
- xMII port mapping changed
- GPE_PDU_TYPE_CMD corrected, FIO_GPE_AGE_GET and GPE_SCE_CMD_AGING added
- add i/octrlg_table_dump
v1.0.6 2011.02.19
common:
- new ioctl(s) added:
+ FIO_LAN_GPHY_FIRMWARE_DOWNLOAD
- new configuration option(s) added:
+ "with-cli-dump"/INCLUDE_CLI_DUMP_SUPPORT
- new file(s) added:
+ drv_onu_cli_dump.c
+ drv_onu_cli_dump.h
+ drv_onu_cli_dump_misc.c
+ drv_onu_cli_dump_misc.h
- ONU_EVENT_IOCTL_TRACE event handling added
CLI:
- new command(s) added:
+ "gpeepg/gpe_egress_port_get"
+ "gpeepd/gpe_egress_port_delete"
+ "langfd/lan_gphy_firmware_download"
v1.0.5 2011.01.28
- new ioctl(s) added:
+ FIO_GPE_COP_TRACING_ENABLE_SET
CLI:
- new command(s) added:
+ "gpectes/gpe_cop_tracing_enable_set"
- check for modules initialization before accessing them, avoid early crash
of Ethernet driver
v1.0.4 2011.01.07
CLI:
- new command(s) added:
+ "onuccs/onu_counters_cfg_set"
+ "onuccg/onu_counters_cfg_get"
common:
- ioctl(s) implementation added:
+ FIO_ONU_SYNC_TIME_SET
+ FIO_ONU_SYNC_TIME_GET
+ FIO_ONU_COUNTERS_CFG_SET
+ FIO_ONU_COUNTERS_CFG_GET
- moved ploam initialization from module load to a new
mandatory interface FIO_PLOAM_INIT.
v1.0.3 2010.12.16
- ioctl(s) removed:
+ FIO_LAN_STATUS_GET
+ FIO_GPE_LAN_COUNTER_GET
+ FIO_GPE_LAN_COUNTER_THRESHOLD_SET
+ FIO_GPE_LAN_COUNTER_THRESHOLD_GET
+ FIO_GPE_LAN_TCA_GET
+ FIO_GPE_LAN_COUNTER_RESET
- new ioctl(s) added:
+ FIO_LAN_COUNTER_THRESHOLD_SET
+ FIO_LAN_COUNTER_THRESHOLD_GET
+ FIO_LAN_TCA_GET
- TMU counters handling added
- VUNI EPN numbers fixed
v1.0.2 2010.11.30
- new file(s) added:
+ drv_onu_lan_api_intern.h
- implementation added:
+ mdio_enable()
+ mdio_disable()
+ lan_port_status_get()
+ lan_port_enable()
+ lan_port_disable()
v1.0.1 2010.11.22
common:
- new ioctl(s) added:
+ FIO_GPE_ACTIVITY_GET
+ FIO_GPE_BRIDGE_PORT_CFG_GET
+ FIO_GPE_BRIDGE_PORT_CFG_SET
+ FIO_GPE_EXT_VLAN_GET
+ FIO_GPE_EXT_VLAN_SET
+ FIO_GPE_FID_ADD
+ FIO_GPE_FID_DELETE
+ FIO_GPE_FID_GET
+ FIO_GPE_FID_SET
+ FIO_GPE_FID_READ
+ FIO_GPE_FID_WRITE
+ FIO_GPE_IPV6_MC_ENTRY_ADD
+ FIO_GPE_IPV6_MC_ENTRY_DELETE
+ FIO_GPE_IPV6_MC_ENTRY_GET
+ FIO_GPE_IPV6_MC_ENTRY_SET
+ FIO_GPE_IPV6_MC_ENTRY_READ
+ FIO_GPE_IPV6_MC_ENTRY_WRITE
+ FIO_GPE_IPV6_UC_ENTRY_ADD
+ FIO_GPE_IPV6_UC_ENTRY_DELETE
+ FIO_GPE_IPV6_UC_ENTRY_GET
+ FIO_GPE_IPV6_UC_ENTRY_SET
+ FIO_GPE_IPV6_UC_ENTRY_READ
+ FIO_GPE_IPV6_UC_ENTRY_WRITE
+ FIO_GPE_NAPT_ADD
+ FIO_GPE_NAPT_DELETE
+ FIO_GPE_NAPT_GET
+ FIO_GPE_NAPT_SET
+ FIO_GPE_NAPT_READ
+ FIO_GPE_NAPT_WRITE
+ FIO_GPE_POLICER_GET
+ FIO_GPE_POLICER_SET
+ FIO_GPE_TAGGING_FILTER_GET
+ FIO_GPE_TAGGING_FILTER_SET
+ FIO_GPE_BRIDGE_COUNTER_GET
+ FIO_GPE_BRIDGE_THRESHOLD_SET
+ FIO_GPE_BRIDGE_THRESHOLD_GET
+ FIO_GPE_BRIDGE_TCA_GET
+ FIO_GPE_BRIDGE_COUNTER_RESET
- implementation added:
+ lan_cfg_set()
+ lan_cfg_get()
+ lan_port_cfg_set()
+ lan_port_cfg_get()
+ lan_loop_cfg_set()
+ lan_loop_cfg_get()
- new file(s) added:
+ drv_onu_reg_sxgmii.h
+ drv_onu_gpe_tables_interface.h
+ drv_onu_gpe_tables_api.h
v1.0.0 - 2010.10.29
CLI:
- onuvg -> vig
- vig 'version' argument changed to 'onu_version'
- "nReturn" replaced globally to "errorcode"
- new command(s) added:
+ "gpellme"/"gpe_low_level_modules_enable"
- parameters renaming
+ "gpei"
+ "gpecs"/"gpecg"
- new parameters added for cmd(s):
+ "gpei"
- "gpeor"/"GPE_OMCI_Receive" removed
- Long commands names changed globally after automated renaming
- existing cmd(s) removed:
+ "gpesg"/"gpe_scheduler_get"
+ "gpeepg"/"gpe_egress_port_get"
IOCTL:
- new ioctl(s) added:
+ FIO_GPE_LOW_LEVEL_MODULES_ENABLE
- existing ioctl(s) removed:
+ FIO_GPE_OMCI_RECEIVE
+ FIO_GPE_SCHEDULER_ADD
- renaming:
+ FIO_GPE_EGRESS_QUEUE_ADD -> FIO_GPE_EGRESS_QUEUE_CREATE
+ FIO_GPE_SCHEDULER_ADD -> FIO_GPE_SCHEDULER_CREATE
common:
- force state O0 in case of BWMAP trace trigger
- add token bucket meter
- LL modules activation sequence re-worked, CLKEN/ACT added
- source code re-factoring:
+ IQM module
+ SSB module
+ SYS module
- global renaming of SDMAx to ICTRLx, FDMAx to OCTRLx
- all function names changed to lower case
- refactored onu_top
- several klocwork fixes
- gpe_scheduler_add implementation added
- SCE debug interface implementation integrated from the "gpon-uboot" package
- gpe_egress_port_get() removed
- gpe_egress_port_cfg_get/set() extended
- Falcon SoC interrupt handling added
v0.5.2 - 2010.06.xx
- added TMU init routines
v0.5.1 - 2010.06.11
- implemented GTC_BwmtXXX functions
- GTC trace added
- fixed bDsFecEnable in GTC_StatusGet()
v0.5.0 - 2010.06.09
- RTL 2.1 / FPGA update
- ictrlc handling added

368
LICENSE Normal file
View File

@ -0,0 +1,368 @@
This source code is distributed under a dual license of GPL and BSD (2-clause).
Please choose the appropriate license for your intended usage.
1. BSD license (2-clause BSD license)
Copyright (c) 2009, Lantiq Deutschland GmbH
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2. GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

74
Makefile.am Normal file
View File

@ -0,0 +1,74 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS = foreign 1.7 nostdinc
if ENABLE_LINUX
LINUXDIRS = netdev led-trigger tools/gtop tools/gexdump tools/onu tools/rpc
endif ENABLE_LINUX
SUBDIRS = src $(LINUXDIRS)
DISTCHECK_CONFIGURE_FLAGS=@CONFIGURE_OPTIONS@
drv_onu_docdir = ${prefix}/doc/drv_onu
drv_onu_doc_DATA = \
LICENSE \
README \
AUTHORS \
ChangeLog \
NEWS \
TODO \
doc/doxyconfig \
doc/footer.html \
doc/header.html \
doc/logo.gif \
doc/stylesheet.css
EXTRA_DIST = $(drv_onu_doc_DATA)
clean-local:
rm -Rf .built .built_check .version* .prepared* ipkg/
# Copy all the spec files. Of cource, only one is actually used.
dist-hook:
for specfile in *.spec; do \
if test -f $$specfile; then \
cp -p $$specfile $(distdir); \
fi \
done
lint:
@target=lint; \
list='$(SUBDIRS)'; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done;
# Create self extracting linux distribution
distcheck-hook:
chmod a+w $(distdir)
echo "Checking line ends ...!!!"; \
find $(distdir) -type f -exec file {} \; | grep -e "CRLF" -e "Non-ISO" && exit 1; \
echo "Create installation package ..."; \
makeself.sh --gzip --notemp $(distdir) \
gpon_onu_drv-$(PACKAGE_VERSION).sh "$(PACKAGE_NAME)"
doc:
( cd @top_srcdir@/doc; \
doxygen doxyconfig; )
doc_cli:
( cd @top_srcdir@/doc; \
python @top_srcdir@/scripts/cli_parser.py; \
doxygen @top_srcdir@/doc/doxyconfig_cli; )
.PHONY: lint doc doc_cli

694
Makefile.in Normal file
View File

@ -0,0 +1,694 @@
# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
ChangeLog NEWS TODO build-aux/compile build-aux/depcomp \
build-aux/install-sh build-aux/missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/src/drv_onu_config.h \
$(top_builddir)/tools/onu/onu_control_config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(drv_onu_docdir)"
drv_onu_docDATA_INSTALL = $(INSTALL_DATA)
DATA = $(drv_onu_doc_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = src netdev led-trigger tools/gtop tools/gexdump \
tools/onu tools/rpc
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EVENT_LOGGER_INCL_PATH = @EVENT_LOGGER_INCL_PATH@
EXEEXT = @EXEEXT@
GREP = @GREP@
IFXOS_INCLUDE_PATH = @IFXOS_INCLUDE_PATH@
IFXOS_LIBRARY_PATH = @IFXOS_LIBRARY_PATH@
INCLUDE_REMOTE_ONLY_ONU = @INCLUDE_REMOTE_ONLY_ONU@
INCLUDE_REMOTE_ONU = @INCLUDE_REMOTE_ONU@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
KERNEL_ARCH = @KERNEL_ARCH@
KERNEL_BUILD_PATH = @KERNEL_BUILD_PATH@
KERNEL_INCL_PATH = @KERNEL_INCL_PATH@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign 1.7 nostdinc
@ENABLE_LINUX_TRUE@LINUXDIRS = netdev led-trigger tools/gtop tools/gexdump tools/onu tools/rpc
SUBDIRS = src $(LINUXDIRS)
DISTCHECK_CONFIGURE_FLAGS = @CONFIGURE_OPTIONS@
drv_onu_docdir = ${prefix}/doc/drv_onu
drv_onu_doc_DATA = \
LICENSE \
README \
AUTHORS \
ChangeLog \
NEWS \
TODO \
doc/doxyconfig \
doc/footer.html \
doc/header.html \
doc/logo.gif \
doc/stylesheet.css
EXTRA_DIST = $(drv_onu_doc_DATA)
all: all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
cd $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
install-drv_onu_docDATA: $(drv_onu_doc_DATA)
@$(NORMAL_INSTALL)
test -z "$(drv_onu_docdir)" || $(MKDIR_P) "$(DESTDIR)$(drv_onu_docdir)"
@list='$(drv_onu_doc_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(drv_onu_docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(drv_onu_docdir)/$$f'"; \
$(drv_onu_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(drv_onu_docdir)/$$f"; \
done
uninstall-drv_onu_docDATA:
@$(NORMAL_UNINSTALL)
@list='$(drv_onu_doc_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(drv_onu_docdir)/$$f'"; \
rm -f "$(DESTDIR)$(drv_onu_docdir)/$$f"; \
done
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d $(distdir) || mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
am__remove_distdir=: \
am__skip_length_check=: \
distdir) \
|| exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" distdir="$(distdir)" \
dist-hook
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist d