1CADENCE DESIGN SYSTEMS, INC. - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

1CADENCE DESIGN SYSTEMS, INC.

Description:

Understanding Cadence License Files: Understanding Cadence's Licensing Standards ... PACKAGE Complex_Feature cdslmd 1.0 COMPONENTS='Verilog-XL:2.4 32510:5.0' ... – PowerPoint PPT presentation

Number of Views:160
Avg rating:3.0/5.0
Slides: 49
Provided by: powerp2
Category:

less

Transcript and Presenter's Notes

Title: 1CADENCE DESIGN SYSTEMS, INC.


1
Electronic Licensing Techniques and Technology
  • ICU - September 2003
  • Scott Baeder, Sr. Architect, Cadence Design
    Systems
  • baeder_at_cadence.com

2
Agenda
  • Introductions
  • Licensing A Brief Overview
  • Technology
  • The Next Generation
  • Techniques
  • Understanding your Environment
  • Understanding Cadence License Files
  • Understanding Cadences Licensing Standards
    Policies
  • Troubleshooting Licensing Issues
  • Other Gotchas
  • Useful Pointers

3
Introductions
  • Scott Baeder baeder_at_cadence.com
  • Sr. Architect specializing in Licensing and
    Installation Technologies
  • Over 20 years in Electronic CAD
  • Involved in Licensing and Installation at Cadence
    for over 12 years.
  • Involved with product definition and licensing
    methodologies
  • Helped define many of the next generation
    procedures in place today.
  • Attended my first ICU in 1995
  • Served as Advocate in System Administration for
    several years

4
LicensingA Brief Overview
Back to Agenda
5
Licensing A Brief Overview
  • Licensing at Cadence is Complex
  • Getting consistency is like herding Cats
  • In 1998, we had over 600 products from 5
    different Bus (from 20 different companies)
  • It has only gotten worse over time as we have
    grown
  • Some products (part numbers) have been around a
    LONG time
  • Its more painful to change them than it is to
    live with minor anomalies
  • Licensing Policies are driven by the Business
    Model
  • And, the model has changed several times over the
    past 15 years Point tools, mergers, FIRM vs.
    STREAM, Floating vs. Locked, etc.

6
Licensing A Brief Overview
  • Cadence delivers a new, complete license file is
    sent to the customer anytime
  • They purchase additional software
  • They re-mix applications between servers
  • Cadence releases an updated version of software.
  • The license file(s) as generated by Cadence, will
    allow all supported releases of a given part
    number to operate correctly.
  • As long as version number in file is greater than
    or equal to version requested.

7
Licensing Starts To Evolve
  • Initial process of creating products,
    implementing licensing very loosely managed in
    the early 90s...
  • First set of OMI Policies put in place in
    mid-90s to
  • Manage process of license creation and fulfilment
    from RD perspective
  • Provide uniform functionality and behaviour
    across entire product lines
  • Instituted change control process within RD
  • Migrate new acquisitions to cdslmd based scheme
  • Use common APIs a wrapper to hide the FLEXlm
    API

OMI Orderability, Manageability, Installability
8
Licensing Starts To Evolve
  • In 2001, introduced Corporate Product Master
    database to manage all product lines enforce
    all product/features policies
  • CPM is more Product Centric vs. historical
    Release Centric approach
  • BUT...
  • As important as these efforts were, they were
    internally focused
  • Licenses were fulfilled from separate and
    antiquated systems
  • SoCadence recognized the need to
  • Dramatically change the way we interact with our
    customers
  • Create an open, flexible infrastructure to
    support future and existing business models
  • These were some of the catalysts for a Next
    Generation System

9
TechnologyThe Next Generation
Back to Agenda
10
Next Generation Fulfilment
Bring Cadence Closer to our Customers
  • Our Goal
  • Increase customer satisfaction
  • Increase customer productivity and environment
    sustainability
  • Provide infrastructure for simplification and
    automation
  • Provide better information to manage product
    portfolios

Existing Infrastructure
New Infrastructure
11
Next Generation Fulfilment
  • Ensure security compliance
  • Enforce new policies
  • Complete visibility of configuration
  • Increase accuracy
  • Enable complete contract compliance
  • License generation on demand
  • Faster turn around time

24x7, Fast Reliable Access
12
Next Generation Fulfilment
  • Unified and secured infrastructure for Contract
    Management and Configuration Fulfilment
  • 24x7 on demand system availability over internet
  • Unified database designed with layered
    entitlement
  • Unified and accessible Reporting
  • Streamlined license management by providing
    complete license files with access to the latest
    versions
  • One unified license file for each server
  • Product Licenses are generated with the latest
    entitled version

13
Licensing Continues To Evolve
  • BUT..
  • As important as these efforts were, they were
    focused on Fulfilment
  • The actual licenses being delivered were still
    limited by the FLEXlm implementation
  • Focus on the core licensing technology to
  • Enable more flexible licensing (packaging),
  • We need to easily create new product packaging
    and Platforms
  • Provide customer requested features (customer
    satisfaction)
  • Subscription vs. Version based keys
  • Enhance Security

14
Next Generation Technology
  • As an early adopter of FLEXlm, Cadence acquired a
    source code license from Globetrotter.
  • Cadence made several modifications to the plain
    vanilla FLEXlm code.
  • These were implemented to provide functionality
    that was not available in FLEXlm at that point in
    time
  • Made it difficult to update to a new version of
    FLEXlm code
  • While this was corrected, we are still limited
    due to license file format restrictions.
  • Cadence still uses the v2.4 file format of FLEXlm
  • Given the critical nature of licensing, the
    cost/risk of making any change must be carefully
    analyzed.
  • This all means that we need to take a slow,
    methodical approach before any changes are
    implemented.

15
Next Generation Technology
  • Current file format looks like this...
  • FEATURE 34510 cdslmd 5.000 01-jan-2004 10
    1234567890ABCDEEDCBA UHD 80654ae1
  • While a future license file may look more like
    this...
  • FEATURE 34510 cdslmd 5.000 01-jan-2004 10
    VENDOR_STRINGUHD \ DUP_GROUPUHD
    HOSTID80654ae1 \ ISSUED03-mar-2003
    START01-jan-2002 \ SIGN"002A 0144 4AA5 01FD
    BA8C 5AF8 17D5 5272 \ 1FFC 8861 FC63 A1A5 7DC3
    2059 D058 1E12 0AF7 9112 233C C350 \ 4FC7 C808
    4213 A7C1 9375 4617 C3F4 E32E C379 5882"
  • PACKAGE Complex_Feature cdslmd 1.0
    COMPONENTS"Verilog-XL2.4 325105.0"
    \ OPTIONSSUITE_RESERVED SIGN00504091605D
  • FEATURE Complex_Feature_2 cdslmd 1.0 permanent 2
    \ SUITE_DUP_GROUPU DUP_GROUPU \ SIGN"002A
    0144 4AA5 01FD BA8C 5AF8 17D5 5272 \ 1FFC 8861
    FC63 A1A5 7DC3 2059 D058 1E12 0AF7 \ 9112 233C
    C350 4FC7 C808 4213 A7C1 9375 4617 \ C3F4 E32E
    C379 5882"

16
Next Generation Technology
  • Taking a long-term, phased approach
  • Phase 0 Gather Requirements
  • Phase I Solution Development
  • Comprehensive backward compatibility testing with
    Macrovision
  • Get lots of feedback and input from customers
  • Phase II Beta Rollout
  • Phase III Full scale rollout
  • Deploy changes to servers and license files to
    customers
  • Phase IV Product Compatibility
  • Work with RD to implement client side changes

17
Next Generation Technology
  • Current testing has uncovered several issues...
  • We are currently limited in what we can support
    by the code already deployed in the field
  • Working closely with Macrovision to define
    strategy for enhanced compatibility (now and
    going forward).
  • Quality (Compatibility) more important than
    schedule

Back to Agenda
18
TechniquesManaging your Licenses
19
Understanding your environment
  • Different user groups, each having their own set
    of products. Licenses are not shared.
  • Different user groups, each having their own set
    of products, but can share few licenses with
    other groups
  • One set of licenses shared by all groups
  • Etc...
  • In other words, almost every situation is unique

20
Understanding your environmentSingle Server
  • Licenses can be checked out only from this server
  • Automatic reconnection
  • If the license server goes down, there is no
    other server to connect to
  • Queuing behavior
  • If all of the licenses are already checked out
    and the product supports queuing, you will be
    queued to this server
  • Characteristics of a Single Server
  • This setup is encouraged if you have few users
  • Maintenance is easy
  • Communication and network reliability problems
    are minimal

21
Understanding your environmentMultiple servers
  • Licenses can be checked out from multiple servers
  • User configuration is more complex...based on the
    type of configuration implemented.
  • Automatic reconnection
  • If one server goes down all products connected to
    that server will try checking out from other
    servers automatically
  • Queuing behavior
  • If no licenses are currently available and the
    product supports queuing, the product will always
    queue to its Primary server.
  • Characteristics of Multiple servers
  • This setup is encouraged if you have moderate to
    large set of users
  • Communication and network reliability problems
    are minimal

22
Understanding your environmentFault-Tolerant
Servers
  • What is a Fault Tolerant Server?
  • Multiple machines acting as a single logical
    server. Note all three servers must be identical
    platform/OS release.
  • Cadence only supports a configuration with three
    machines
  • If the master license server goes down one of
    the slave servers will take over.
  • Automatic reconnection
  • All active licenses will reconnect to the new
    master.
  • Queuing behavior
  • Acts like a single server (because it is!)
  • Characteristics of a Redundant server
  • User configuration is fairly straightforward
  • Maintenance is high
  • Communication and network reliability problems

23
Understanding your environmentSet up a proper
search path
  • We recommend using port_at_host instead of the ltpath
    to the filegt
  • Allows better fault tolerance when license files
    are changed.
  • The license server is located using a PATH that
    is created using the following CDS_LIC_FILE,
    Clients file, LM_LICENSE_FILE, Default location
    of file
  • Each of these may contain several servers, and
    they are concatenated together to form the
    license PATH
  • Users should be setup such that their primary
    server is the first server their product looks
    for a license
  • NOTE The path is an environmental variable, and
    has a length limit (Shell/OS dependant)

24
Understanding your environmentSet up a proper
search path
  • Keep the final PATH as SHORT AS POSSIBLE.
    Whenever possible, do not put every possible
    servers for every possible products into
    LM_LICENSE_FILE
  • The more servers that are in the path, the worse
    the performance can be . there are several
    negative checks...
  • Will help avoid problems related to the loading
    of other vendor license files into Cadences
    application.

Back to Agenda
25
Understanding Cadence License FilesTypes of
Licenses
  • Job vs. User (UHD) license types
  • Unique job id vs. unique User/Host/Display
    triplet
  • Uncounted licenses
  • 0-quantity license will be uncounted,
    essentially it is treated as if there were an
    infinite number of these licenses.
  • All 0-quantity licenses from Cadence are
    node-locked, and do not require a server.
  • Site licensing is somewhat related to the
    uncounted type, but requires a server

26
Understanding Cadence License FilesTypes of
Licenses
  • Temporary
  • expires 45 days or less from the start date (for
    that FEATURE)
  • Expiring Permanent licenses
  • FEATURE that has an expiration date greater than
    45 days from the start date for that FEATURE
  • Non-expiring Permanent licenses
  • FEATURE that never expires
  • These FEATURES have an expiration year set to 0
    e.g. 25-dec-0000

27
Understanding Cadence License FilesA Typical
License File...
  • THIS LICENSE FILE HAS BEEN GENERATED FOR HOSTID
    xxxxxxxxxx
  • Please replace "Cadence_SERVER" with
    hostname of your
  • machine in line "SERVER Cadence_SERVER
    lthostidgt 5280"
  • DAEMON ambitd ./ambitd
  • FEATURE BuildGates ambitd 3.000 15-jan-2003 1
    BCCC2F48ED4539D26790 ""
  • FEATURE Envisia_synthesis_with_PKS ambitd 4.000
    15-jan-2003 5 DC4C5FD82448AD7BA89B ""
  • FEATURE libcompile ambitd 3.000 15-jan-2003 6
    2C5CFF38F55BF5A2F8DD ""
  • DAEMON cdslmd ./cdslmd
  • FEATURE 100 cdslmd 4.400 15-dec-2002 12
    0CBCEF48D95A0315CA56 "UHD
  • .
  • .
  • .

28
Understanding Cadence License FilesProduct /
Feature Mapping
  • Product id to Feature mapping
  • -----------------------------------------
  • Product id 111 Quantity 3
  • Feature 111
  • Feature plotVersa
  • Product id 11400 Quantity 7
  • Feature 11400
  • Feature 300
  • Feature 312
  • Feature 960
  • Feature 963
  • Feature 964
  • Feature plotVersa
  • Product id COMFLT Quantity 8
  • Feature Cierto_SPW_comm_lib_flt_pt
  • Feature SPW_LIB_COMM_LIB

29
Understanding Cadence License Files Errors and
Warnings
  • The following are typical of the type of message
    that may be appended to your license file
  • These usually indicate a license configuration or
    generation issue that needs to be resolved
  • 32110 ( The license generator does not
    recognize this product number )
  • EF01 ( Feature IC_editfast is not
    available. since the
  • "PCBDA" daemon is not supported )
  • FET1101 ( The license generator does not
    recognize this product number )
  • SYKCVH ( The license generator returned no
    feature lines for this product )

Back to Agenda
30
Understanding Cadences Licensing Standards
Policies
  • Licensing covered by approved OMI standards.
  • All licensed Cadence products should exhibit the
    same behavior patterns with regards to licensing
    interactions.
  • License Naming Conventions
  • Create readable license names
  • Use full functional or product name
  • Avoid acronyms (e.g. pcompxvf), numbers (e.g.
    21000) and special characters (, , , etc.)

31
Understanding Cadences Licensing Standards
Policies
  • Strive for One FEATURE per product.
  • Easier to understand usage reports and license
    file.
  • Use model is more likely to be followed.
  • May have separate features if product has
    independent pieces (or for compatibility and/or
    Product Family growth.
  • Licensing for any given part number should remain
    compatible
  • Sometimes leads to confusion when features that
    use older (obsolete) daemons are still shipped to
    the customer.

32
Understanding Cadences Licensing Standards
Policies
  • Daemon Transitions Acquisitions
  • Fact
  • Cadence acquires companies that already have
    FLEXlm licensing
  • Cadence tries to ensure backward compatibility of
    a given part number
  • Result
  • Either we transition to a new part number when
    changing the licensing
  • OR
  • ship obsolete daemons/keys for a long time
    after the transition.
  • Both types of transitions have occurred in the
    past, and may happen in the future.
  • Each has its own set of problems (and benefits).
  • Current policy is to create new part numbers to
    manage the transition

Back to Agenda
33
Troubleshooting Licensing Issues
34
Troubleshooting -How can I debug licensing
problems?
  • What does your network topology look like?
  • You should not have an overly congested network
    or one with too much delay. Both of these can
    cause heartbeat and other failures.
  • What does your license server do?
  • For maximum performance, and in sites with a
    large number of users, the license server should
    be a DEDICATED machine.
  • Use the lic_error utility
  • Get a greatly expanded explanation of the error
    number printed out, and possibly a suggestion on
    how to fix the problem.

35
Troubleshooting -What about combining files?
  • While it is technically possible to combine
    FLEXlm-based license files, there are a few
    disadvantages to this approach
  • There is a performance degradation associated
    with large license files.
  • It makes debugging problems a bit more difficult,
    and introduces questions as to whose problem it
    is in the first place.
  • It is much better to maintain separate license
    files for each daemon and run multiple lmgrd
    daemons (one for each vendor daemon).

36
Troubleshooting -How can I debug licensing
problems?
  • Examine the servers debug log files Why are
    some FEATURES in the license file rejected when
    the server is started?
  • The server accepts only valid FEATURE lines
  • the start_date for the FEATURE is less than the
    date the server is started or reread,
  • has not expired,
  • the 20 character encryption code is valid.
  • In general, FLEXlm does not support duplicated
    FEATURE lines in a single license file.
  • But, we need to allow demo keys to coexist in a
    license file

37
Troubleshooting -So, what is a valid FEATURE?
  • Cadence daemons will allow multiple lines, BUT
    the server will throw out certain FEATURES which
    it deems to be unacceptable
  • For a given FEATURE having multiple entries and
    that have start dates already enabled.
  • All temporary keys will be allowed.
  • For permanent keys,
  • All permanent keys with the same start_date will
    be allowed
  • If there are multiple sets of permanent keys
    having different start dates, only the set with
    the latest start_date that is enabled will be
    allowed.
  • Prevents most cut and paste operations (trying to
    combine old licenses into the new license file).

38
Troubleshooting -How can I debug licensing
problems?
  • Examine the servers debug log filesWhat does
    the UNSUPPORTED log file line mean?
  • It is very important that the FEATURE lines are
    consistent in both the application client and
    license server versions of the license file
    (which may be different for a variety of
    reasons).
  • The UNSUPPORTED line in the log file is most
    likely due to a mis-match in these two license
    files
  • the client asks for a certain license file line,
    and the server is unable to supply a match.
  • Usually, a license is granted anyway, if one is
    available
  • it is not uncommon to see an UNSUPPORTED log file
    line followed immediately by an OUT line.

39
Troubleshooting -How can I debug licensing
problems?
  • If its not the server, maybe it is the
    application? Access Internal Testability code
    built into the application
  • Debug code has been built into the licensing API.
  • This code appends information representing
    version, search path, actions, run times,
    results, and other diagnostics to a specified
    file.
  • To access this testability code, execute the
    following
  • setenv CDS_LIC_QA_TesT /tmp/client_debug_lo
    g.out

40
Troubleshooting - Heartbeats and TIMEOUT
  • You can use TIMEOUT option in the options file to
    reclaim the license when the product has been
    idle for sometime
  • Policy applies to ALL Cadence programs...If any
    anomaly observed, file appropriate call with
    Customer support
  • Policy implemented by software that does periodic
    re-checks with the server to ensure that server
    knows it is alive.
  • API limits network traffic to one check every 5
    minutes (clock time).
  • If the client does not get an answer back, API
    will try to re-connect to a valid license
    server.
  • If it cannot re-connect, the following happens
  • 30 minutes Nothing happens (other than trying to
    re-connect)
  • 30-60 minutes Warning message combined with a
    short delay
  • gt 1 Hour Warning message, and 50 reduction in
    performance

41
Troubleshooting a stand-alone machine (Linux or
Windows)
  • FLEXlm is a networked license manager, so If you
    can't "ping" yourself, then that is the "FIRST"
    thing to correct.
  • Even in a single machine configuration, the
    licenses requires a working TCP/IP
    infrastructure...that means working hardware,
    software, name mapping, IP addresses, etc.
  • If you don't fix this, you will see symptoms like
    the lmhostid command returns         The FLEXlm
    host ID of this machine is "" ...or..."FFFFFFFFFFF
    F...instead of...         The FLEXlm host ID
    of this machine is "0010a48977a0"
  •  First, let's make sure the hardware is enabled. 
  • Note if the Ethernet isn't connected, it tells
    the OS about that, and the OS won't load the
    drivers. so TCP/IP doesn't load, etc.

42
Trick the networking with... a Loopback Cable
  • The "hardware" solution is to make a simple "loop
    back" plug (one that routes the transmit to the
    receive).
  • This will "fool" the Ethernet into thinking it is
    connected.
  • Works on any OS! 
  • You can make one of these by hacking the end off
    of a cable... 

43
Trick the networking with... Software
  • On windows, there is a registry "hack" (see the
    Microsoft knowledge base to find it, but it is
    not recommended).
  • On Linux, it is a bit easier...
  • Look at your /etc/modules.conf file to find out
    which module (aka driver) is aliased to your eth0
    interface.
  • Edit your /etc/init.d/network script and insert
    the equivalent of the following line just after
    the "start" line             /sbin/insmod
    eepro100
  • This will load the module for your ethernet
    device regardless of whether you're connected to
    a working network.

44
Troubleshooting a stand-alone machine (Linux or
Windows)
  • Now that the hardware is talking to the OS, you
    have to take care of the naming
  • Use IP address
  • localhost (127.0.0.1)
  • host file that maps the IP addresses to the
    Names
  • Now you should be able to ping yourself (either
    by name or IP)
  • Set up server
  • Set path to 5280_at_127.0.0.1 (or localhost)

Back to Agenda
45
Other Gotchas
  • Make sure to justify the added complexity of a
    Fault-tolerant configuration with the actual
    benefit.
  • Dont just use lmreread all the time.
  • Since license start date changes the encryption,
    each files features are unique.
  • It is important to restart the server to clear
    its internal data structure
  • Use the right version of the daemon
  • Lmgrd gtVendor Daemon gt Client API gt License
    File

46
Other Gotchas
  • Never assume that if it is a Macrovision
    feature in FLEXlm that Cadence (or any other
    vendor) will support it. Each implementation has
    unique characteristics.
  • Example Borrowing... At this point in time,
    Cadence can not support borrowing...Requires
    changes to
  • Business model
  • Licensing Technology
  • Compatibility
  • Seems like it is taking a long time for the
    "port" to clear (Solaris)?
  • It is a Solaris problem where it takes about 1-5
    minutes to release a tcp/ip port... Here's info 
    on how you can lower that value..
  • /usr/sbin/ndd -set /dev/tcp tcp_close_wait_inter
    val 2400

47
Useful Pointers...
  • URL for users to ask for notification whenever
    new releases are available
  • http//sourcelink.cadence.com/en/softwareupdate/
    SUReleasePreferences.jhtml
  • URL for licensing and installation information
  • https//sourcelink.cadence.com/docs/files/ILS/Inst
    all_Lib.html

Back to Agenda
48
Q A Session
  • Scott Baeder baeder_at_cadence.com
Write a Comment
User Comments (0)
About PowerShow.com