Sacred error - 20 cannot allocate logdata

sacred error - 20 cannot allocate logdata

The credits should be allocated per appliance 18 rather than per a service module In the case of connection errors, the time the agent 20 waits before. If you find an error that hasn't already been reported, please let us know. If you can't do it in PL/SQL, try a Java stored procedure. series element of log data. Log analytics is the process of gathering, correlating, and analyzing that information in a central location to.

Sacred error - 20 cannot allocate logdata - consider

avatar
macdude22: Well, not sure it will work for everyone, but on my dual core here is how i managed to host a game.
1 Start "Dedicated Gameserver" from the start menu->GOG.com->Sacred Gold (as Ois suggested in post #4)
2 Choose a name, keep default port and choose "LAN"
3 You can change game type from the "Game Configuration" menu
4 Launch Sacred Gold
5 Choose Multiplayer
6 Select your character, click next
7 Now you should see the game name you choosed on the server, JOIN it
8 Other players should be able to join too
If i try to host a new game from within Sacred, Gameserver.exe doesn't seem to load properly. At least it doesn't show in Process Explorer. I didn't try messing with cores so far as this trick seems to work.
And i kept network latency to DSL/Cable/LAN so that useless NPCs are not removed and i can see children run away from my demoness :D
EDIT: I'm an idiot. Forgot about the ISDN setting. However I'm using a quad core Windows Vista 64 bit and my friend is using windows 7 dual core, and we tried these methods listed on Hamachi, but still no go. Speaking of Hamachi, I can't find any help on google for Sacred Gold...just Sacred 2.

Introduction

Zoho People's new leave type gives you an extensive platform to configure and customize various leave types to suit every organization's need. This new leave type comes with various advanced options such as Prorate Accrual and Reset, that can make your leave dynamic and flexible. A leave policy can even be customized exclusively to a specific employee. Let us look at the important features in configuring a new leave type.

To configure leave types for special leave requests, you can use the Leave Grant feature.

Leave policy configuration

  1. Go to Leave > Settings > Leave Type > Add
  2. Give a Name, image and Code - Code is a unique reference for the leave type. For eg, the code for Casual Leave can be given for CL for easy identification
  3. Under Type, select whether the leave should be Paid or UnpaidOn Duty or a Restricted Holiday
  4. Under Unit, select Days or Hours and give a description. The unit given here will form the basis for all the leave calculations. For example, if Hours is chosen then all configurations and reports will be in Hours.
  5. Select Fixed entitlement underBalance based on.
  6. Validity refers to the period for which the leave type is valid. The From date is mandatory for any leave type. If you do not want the leave type to expire, the To date field can be left blank. Reports for the organization will be generated from this date.

Entitlement

In this section, we define how much leave gets credited to an employee using various options such as accrual and reset. You can also use entitlement when you would like to differentiate the amount of leave for each employee based on their years of experience.

Effective After –The period after which the policy is applicable. The set period can be from either the Date of Joining or the Date of Confirmation.

Example 1: If your organization wanted to credit casual leaves to an employee after two months of joining, you'd select, 2 Months, andfromDate of Joining. 

Example 2: If your organization wants to credit privilege leave for employees only after six months of their employment confirmation, then you'd select, 6 Months and from Date of Confirmation. 

Note:The Date of Confirmation and the Date of Joining fields must be filled in the employee form in order to be applicable in the leave policy.

Accrual helps you set the intervals within which the leave will be credited to the employee. For example, if you select Monthly as the accrual period and enter the entitlement as one,  then it means that the employee will be credited one day of leave every month under this leave type. 

Under Monthly, you can also define different entitlements for each month. Click the calendar symbol beside the number of days entered. You will see the entitlement calendar popup. 

Enter the entitlement for each month. A similar popup will appear based on the accrual period selected - triannually, quarterly, half yearly. semi-monthly and bi-monthly.

If you select Yearly on the 1st of Jan and enter the entitlement as 5, this means that the employees will be credited 5 days on only the 1st of January. If an employee joins in the month of August, they will not receive any leave for that year. The leave will be credited in the following year on the 1st of Jan.However, if you want the leave to be credited within the same year, you can use Prorate Accrual.

Additionally, you can define when the accrual should happen. If Accrual is set as Yearly on 1st of January and Current Accrual is selected, it means that leave will be credited at the start of the accrual period. Based on the setting, the leave will be credited on the 1st of January in the year of joining. If Next Accrual is selected, it implies that leave will be credited on the 1st of January, next year. 

Reset can define whether the leave balance should be reset and also set the intervals for the reset to happen. If Reset is enabled, then it means that you would like the leave balance to lapse within the interval defined. If Reset is disabled, then the leave balance will accumulate and not lapse. When Reset is enabled, the unused balance can be carried forward and/or encashed. 

Carry Forward can be used to move leave from one interval to the other. There are two ways leave can be carried forward: as units or as percentages. For example, if there is one day of leave available and one unit is given for carry forward, then the one day available will be carried forward. 

In the same case if 50% is given for carry forward then 50% of one, (.5 days) will be carried forward. 

Additionally, there are three types of carry forward that can be done.

  1. Carry Forward - this can be used for simple carry forward.

  1. Carry Forward with Expiry - this can be used to set carry forward along with an expiration date.

  1. Carry Forward with Overall Limit - this can be used to set carry forward with an overall limit beyond which the carry forward balance cannot accumulate.

The table below shows the differences between these types of carry forward based on the configurations shown above.

Date of AccrualCarry ForwardCarry Forward with ExpiryCarry Forward with Overall Limit
1 January 201912 days12 days12 days

1 January 2020

12 + 5 ( carried forward from 2019)12 + 5 ( will expire on March 2020)17: 12 + 5 (carried forward from 2019)
1 January 202112 + 5 ( carried forward from 2020)12 + 5 ( will expire on March 2021)22: 12 + 5 (carried forward from 2019) + 5 ( carried forward from 2020)
1 January 202212 + 5 ( carried forward from 2021)12 + 5 ( will expire on March 2022)22: 12 + 5 (carried forward from 2019) + 5 ( carried forward from 2020) - Cannot forward beyond 10 units from 2021 as Overall Limit is 10

Encashment can be used to define monetary compensation for a number of unused leaves. As in carry forward, you can define it as units or percentages.

You can further restrict both carry forward and encashment limit while using percentage. You can also set an upper limit to the maximum number of leaves that can be carried forward or encashed. This setting will take precedence in case the percentage exceeds this limit. For example, let's assume that you have set 50 % of leave to be carried forward and set four days as the maximum limit for the same. In a scenario where there are ten days of unused leave, 50% of that will be five days, but since we have set four days as the max limit, only four days will be carried forward. The same applies to encashment settings as well.

It is also important to note that overall, carry forward takes precedence over encashment. The spillover will be encashed when the maximum defined carry forward has exceeded. If you have defined five days for maximum carry forward and three days for maximum encashment and you have two days of unavailed leave, those two days will fall under carry forward and not encashment. 

Moreover, if there is a leave remainder beyond the maximum carry forward and maximum encashment, that leave will lapse. For example, assume that the entitlement is twelve days. You have defined that the maximum carry forward should be five days and the maximum number of days to be encashed is three days. In this case, if the balance left is nine days, then five days will be carried forward, three days will be for encashment and one day will lapse. 

Prorate Accrual

Using Prorate Accrual, you are allowing leave to be credited whenever the employee enters the policy. Under prorate accrual, you can further specify how the entitled leave gets prorated for the first and last accrual cycle using these options: 

a. Start of policy - Employee will be receiving the entitled leave in a pro-rated basis from the start date of the policy. The period entered in Effective After will determine when the policy starts for each employee based on their date of joining and also the accrual amount.

b. Start and end of policy - This option is ideal when there are multiple policies within a leave type. Here, the first accrual and the last accrual of a policy will be pro-rated.This can be used for leaves based on employee's experience where the employee's leave is calculated in relation to their number of years in service.

c. Do not prorate - The full entitled leave will be given to the employee irrespective of the start date of the policy. The leaves will not be pro-rated.

Let us clearly distinguish between disabling Prorate Accrual and Do not Prorate option. While disabling Prorate Accrual implies that the leaves will be credited only on the accrual date, the Do not Prorate option in Prorate Accrual implies that the entire entitled leave will be given to the employee even if they join outside of the accrual date. Let us take an example here. Let us assume that for 5 days of casual leave an accrual date is set for Yearly 1st of January. An employee joins on the 5th of August. If Prorate Accrual is disabled, then this employee will not get any leave credited during their joining year. It will only be credited the following year on 1st of Jan. In the same scenario, if have enabled Prorate Accrual with Do not Prorate option, then the employee will get the entire 5 days even if they have joined outside of the set accrual date.

Let's now take a scenario to understand the difference between Start of Policy, Start and End of Policy and Do not Prorate calculation:

Start of policy calculation:

According to a leave policy, once the employee completes one year of service, the employee is credited six days of leave on the 1st of January every year.

The policy's validity date is: 1/3/2015 (1st March 2015)

Let us take an employee who has joined on 5/8/2015(5th August 2015). For this employee, the policy will start on 5/8/2016 (5th August 2016) - one year from the date of joining.

For the year 2016 the accrual will be calculated in this manner for this employee: *

No.of months to be considered for calculation - from August to December = five months 

So the six days will be pro-rated for five months and given and 2.5 days will be credited for this employee.

From the following year, the employee will be credited 6 days of leave on 1st of January.

Start and End of Policy calculation:

As mentioned before, Start and End of Policy is useful in cases where there are multiple policies within a leave type.

Let us consider the same scenario as given above and add a second policy to it. 

1st Policy - six days of leave will be credited to the employee who has completed one year of service. Accrual is pro-rated from Start and End of Policy

2nd Policy - 12 days of leave will be credited to an employee who has completed 2 years of service from Start and End of Policy.

Taking the example of the employee whose Date of Joining is 5/8/2015( 5th August 2015),

1st policy calculation for the year 2016 will be as given above*.

For the 2nd policy, the employee will be eligible on 5/8/2017 (5th Aug 2017) when the employee would have completed 2 years of service.

Let us see how the accrual will be calculated for the year 2017 (2nd year):

From 1st Jan 2017 to 4th Aug 2017 the employee is still part of the first policy. So the 6 days of leave will be calculated for 8 months (January - August) based on the first policy and the employee will be credited 4 days of leave.

From 5th Aug 2017, the 2nd policy will become applicable. The 12 days of leave from the 2nd policy will be pro-rated for 4 months ( September -December) and the employee will be credited 4 days of leave.

So in the year 2017, the employee would have been credited 4 + 4 = 8 days of leave.

Do Not Prorate

If do not prorate is applied to the above example, then the total entitled leave will be credited without being prorated, irrespective of when the employee comes into the policy. To elaborate, although the employee has entered the first policy only on 5th Aug 2016, they will receive the full six days entitled for that year without being prorated.

Under Advanced option, you can further define how the proration is to take place:

1.Prorate by 

a.Number of effective months - Only the effective number of months will be considered. For example, if an employee has joined on 5th August 2015 - the 5 months will be taken for proration(Aug- Dec) although he has joined on the 5th and not the 1st of that month. 

b.Number of effective days - when this option is applied, the exact number of effective days will be considered while calculating the prorated leave. Taking the same example as above, the number of days considered for proration will be 148 days (5th Aug - 31st Dec).

2. First month rule - thisspecifies the intervals within the first month of joining and the exact amount of leave to be given within each interval. For example, you can create a rule stating an employee who enters the policy from the 1st–15th of the month will be credited one day of leave while those entering from the 15th–31st will be credited .5 days of leave. When this rule is applied for multiple policies, the first month refers to the first month of each policy. 

3. Last month rule - This specifies the intervals within the employee's final month and the exact amount of leave to be given within each interval. For example, you can create a rule stating that in their final month of relieving, if the employee exists from the 1st –15th of that month, 1 day will be credited and from the 17th–31st, 2 days will be credited. When this rule is applied for multiple policies, the last month refers to the last month of transition from one policy to the next. 

4. Round off - Leave will be rounded-off using various options:

In the first dropdown there are 3 options - Nearest, Maximum and Minimum.

In the second dropdown there are 3 options - Day, Half Day and Quarter Day (for Days)and Hour, 30 min and 15 min (for Hours)

Let us take some examples to understand the round-off options.

Let us assume that an employee's prorated leave count is 3.43 days of leave. If round-off is disabled then he will be credited exactly 3.43 days of leave.

When enabled, let us see how each combination works:

1) Days calculation

Prorated Leave Count = 3.43 days

Nearest Day = 3 days (rounded-off to the nearest whole value)

Nearest Half Day =3.5 days ( rounded-off to the nearest .5 value)

Nearest Quarter Day = 3.5 days ( rounded-off to the nearest .25 value)

Maximum Day = 4 days

Maximum Half Day = 3.5 days

Maximum Quarter Day = 3.5 days

Minimum Day = 3 days

Minimum Half Day= 3 days

Minimum Quarter Day = 3.25 days

Let us assume that an employee's prorated leave count is 13.89 hours.

2) Hours calculation

Prorated Leave Count = 13.89 hours ( 13 hours 53 minutes)

Nearest Hour = 14 hours

Nearest 30 min = 14 hours

Nearest 15 min = 14 hours

Maximum Hour = 14 hours

Maximum 30 min = 14 hours

Maximum 15 min = 14 hours

Minimum Hour = 13 hours

Minimum 30 min = 13.5 hours ( 13 hours 30 minutes)

Minimum 15 min = 13.75 hours ( 13 hours 45 minutes)


Under More Options you can further define your leave type:

a. Opening Balance - Leave given in an ad hoc basis during certain circumstances. This leave is given as a one-time leave. This will be helpful during the period of probation for a new joinee when the employer would like to give the employee leave during the first six months of service but make it available to be used only after six months. In order to prevent the employee from using this leave before six months, you can give 6 months under Effective from and add 6 in Opening Balance.

b. Carryover Previous Policy Balance - Limit the carry over of the balance leave from the previous policy to the current policy. You can also define the amount of leave balance to be carried over in terms of Units or Percentages. 

c. Set Maximum Balance - Indicates the maximum number of days/hours that can be accumulated.Once the maximum balance is reached, no more leaves will be credited. Use this option to encourage employees to take leave rather than accumulate it.

d. Prorate Accrual - Allow leave to be credited whenever the employee enters the policy. Under prorate accrual, you can further specify how the entitled leave gets prorated for the first and last accrual cycle using these options: 

e. Deductible Holidays - Used when entitled leave is inclusive of Bank or Public Holidays. When enabled, the public or bank holidays will become a part of the entitled leave and will be deducted from the leave balance of the employee. You can further specify which of the holidays are to be deducted:

  • If All Holidays is chosen, then all the bank or public holidays applicable to the employee, both workdays and days off, will be deducted from the employee's leave balance.
  • If Holidays on workdays  is chosen, then only the applicable public or bank holidays that fall on a workday ( based on the employee's shift), will be deducted from the employee's leave balance.

Note: A maximum of 20 policies can be set within a leave type. 

Applicability

In this section, you can define who the leave is 'Applicable' to. You have options like Gender, Marital Status, Department, Designation, Location, Role here. You also have an option to add specific employees to the leave type under Employee. This is useful in scenarios where you would like a specific employee from another region to be part of this leave type. 

Exceptions - Set the exceptions based on options like Department, Designation, Location, and Role.

The Add field option is available in under Applicable and Exceptions where you can view drop-down and multi-select fields from the employee form. Choose the ones that you would like to include. This is useful in cases where you want to narrow down the leave type to a specific group of employees.

Restrictions

In this section, we can further refine the leave by imposing various restrictions.

Weekends Between Leave Period - If this setting is disabled, then it implies that weekends will not be included while taking leave. If the setting is enabled, then it implies that weekends will be considered as part of the applied leave. Furthermore, when a value is given here it means that if the number of leave exceeds that value, then the weekends will be included as part of leave applied.

Holidays Between Leave Period - Similar to Weekends between Leave Period setting, you can enable/disable Holidays between the Leave Period as well and also give a value. If the leave period exceeds this value, then the holidays will be included.

While Applying Leave, Exceed Leave Balance - There are 2 main options under this setting. If Don't Allow is chosen it means that the system will show an error and not allow the employee to apply for the leave if it exceeds the leave balance.

If Allow is chosen , then there are 3 options to choose here:

If Without limit is chosen then the employee will be allowed to apply for leave even if the leave balance exceeds

If Until year end limit is chosen then the employee will be allowed to apply for leave even if it exceeds the current leave balance,  until the year-end limit. This option is useful for monthly accrued leaves. 

If Without limit and Mark as LOP is chosen it means that the employee will be allowed to apply leave even if the leave balance exceeds but will be marked excess requests as LOP (Loss of Pay).

Durations Allowed:

Enable quarter-day option - Employees can apply for quarter-day leave under this leave type.

Enable half-day option - Employees can apply for half-day leave under this leave type.

Enable hourly option: Employees can apply for hour-based leave.

Report Configuration:

There are 2 options to differentiate the type of data displayed in the reports for the employee:

1.  Allow users to view

a. Leave Taken Alone - Display only the leave taken.

b. Simple Leave Summary - Display the leave balance.

c. Complete Leave Summary - Display a detailed summary with details such as period, leave taken, balance and leave lapsed.

2. Balance to be displayed - Choose to display the leave balance in 4 ways:

a. Start date of leave request – The leave balance shown will exclude leave applied for future dates and leaves to be accrued in future.

b. Accrual Period Balance –The leave balance shown will include applied leaves for a future date if it falls within the accrual period.

c. Current Date –The leave balance shown will exclude leaves to be accrued in future and include leaves applied for future date.

d. Year end estimated balance –The leave balance shown will include applied leaves and leaves to be accrued in the future until the year end.

Allow Requests For:

This setting allows you to define if you want to allow or restrict leave requests for past dates and future dates. If you want to allow leave requests for past dates but within a specified duration, the number of days can be entered. For instance, if you want to allow leave requests for only the past 10 days, then, enable for past days and enter 10 days. 

Similarly, the same can be applied for future leave requests. In addition to setting a limit, you can also define how many days in advance the leave request must be submitted. 

Leave application should be submitted before (x) days: This option specifies the number of days before which the leave is to be applied.

Enable file upload option if the applied leave period exceeds (x) days: This is useful for leave types like Sick Leave, where you would like employees to upload a file (like a Medical certificate) if the leave exceeds the number that you have given here.

Minimum leave that can be availed per application: Sets a minimum limit to the number of leaves requested at a time.

Maximum leave that can be availed per application: Sets a maximum limit to the number of leaves requested at a time.

Maximum number of consecutive days of leave allowed: This option helps to restrict the number of consecutive days of leave that can be taken.

Minimum gap (in days) between two applications: Minimum interval to be given between two leave requests. 

Maximum number of applications allowed within the specified period: Maximum number of times the leave can be requested within a specified period. The period could be week, month, year, accrual period or job tenure. For example, we can set 2 as the maximum number of maternity leaves that can be requested during an employee's job tenure. 

This leave can be applied only on: Leave can be applied only on the specified days. This option is useful for special leave types such as Birthday Leave, Anniversary Leave, Restricted holiday and so on. For example, if you are creating a Birthday leave, you can specify that this leave can be applied only on the Date of Birth of the employee. Birthday and Anniversary leaves will be recurring leaves that employees can apply for every year. However, if Restricted Holiday or other such fields from the employee form is chosen then it would apply only for the current year. For example, if Hannukkah is applied under Restricted Holiday, then it can be applied only on 30-Dec in the year 2019. 

This leave cannot be taken together with (Leave types): If you do not want employees to club this leave type with another leave type while applying for leave, you can use this option.

Use cases

Casual leave

Assume you would like to configure casual leave for your employees. The condition is that you would like employees to be eligible for one day of leave every month and for the leaves entitled for the first six months, they will be credited only in the seventh month. This leave type can be configured in this manner:

To add some restriction to the first month of the policy, you can add an Advanced condition:

Leave transactions for the leave type will be calculated as follows(sample format for Date of joining:1st Aug 2015):

Annual Leave

Consider a scenario where you would like to define leave entitlements based on the years of experience of employees. Assume you want to set a policy with the requirement as given below.

  • 1-2 years of experience - a total of six days per year, with a monthly accrual of 0.5 days, carry forward of a maximum of five days 
  • 3-4 years of experience - a total of 12 days per year, with a monthly accrual of one day, carry forward of a maximum of ten days
  • Above 5 years of experience - a total of 24 days per year, with a monthly accrual of three days, carry forward of a maximum of 24 days and 100% encashment

Leave transactions for this leave type will be calculated as follows (sample format for Date of Joining 5th Aug 2015):

Annual Leave with Deductible Holiday

When leave is credited yearly, but actual entitled leave is inclusive of bank holidays.

Leave will be calculated as shown below : (Sample DOJ: January 1st, 2020)

Here, 10 days of leave are credited to an employee. Out of 10 days, 8 days are deducted as they are part of bank holidays, which as per policy is part of entitled leave for all employees. So the user available leave remains at 2 (10-8) which they can apply as required.

For a list view of leave, Navigate to Leave > Views > List View 

Customize Policy

Usually, when a leave type is created, that leave will apply to all applicable employees specified in the policy and leave will be calculated based on various options chosen in the leave type. However, in Zoho People, when a new leave type is created, we create a separate record for each employee. This is done so that the leave policy can be customized at any point for any specific employee. The Customize Policy tab is available for each and every employee for the admin to access. When you click on a  leave type that applies to an employee, you will be able to see when the leave becomes effective and how exactly the leave will be calculated based on their date of joining and other options given in that leave type. Customize policy enables you to tailor any policy for a specific employee. So, if you would like to alter the leave policy for that specific employee, you can edit the leave policy and customize that leave policy. Under customize policy you can see all the leave policies applicable for an employee and click and edit any of the policies as and when required.

Additionally, there are three options available when you click the ellipsis icon on the left-hand side of a policy:

  • View History: If you select a date range, you will be able to see all the policies that have been activated for the chosen employee and all the transactions that have happened under that policy in this manner: 

As seen above, for a chosen date range, the entire leave history/ transactions will be shown. Use the export icon on the top right corner to export the leave history.

Terminologies in the report:

1. Report Initiated - The date from which the report is generated

2. Policy Attached - The date when the policy becomes applicable for this employee

3. Opening Balance - Any opening balance that has been given at the start of the policy

4. Accrual - the leave credited based on the accrual period or interval set in the policy

5. Reset (End of Day) - The carry forward balance under 'Balance' column

6. Carry Forward Expiration ( End of day) - unused carry forward balance that has expired

7. Leave Taken 

8. Leave Rejected or Cancelled 

9. LOP Adjustments - changes made in the LOP report

10. Manual Correction - Corrections to the leave balance ( when customized manually)

  • Rerun Policy: Use this when a change has been made in the policy but is not reflecting in the report. The report will run again and show data accurately. 
  • Reset to default: You can use this option if you have customized the policy for an employee but later you would like to undo this customization and revert the employee back to the default configuration. This option is also useful if have wrongly customized the policy for an employee or customized the policy for the wrong employee. 

There are a few more important actions that you can do under 'Customize Policy':

Refresh Policies: When a leave policy has undergone many changes there may be discrepancies reflecting in some cases. In such situations, to re-check and fix any eligibility mismatch of the employee with the current policy, you can click this option. So, this option may be used judiciously only in times of troubleshooting.

To view old policy details of the employee: Click on the Deleted option in the filter. All the policies that the employees were part of before moving to the current policy will be listed.

Customize Balance

Customize Balance is a further enhancement to customize policy. In Zoho People, not only is policy customization possible, you can even customize the leave balance for an employee on a specific date. Customize balance comes in handy in the following scenarios:

  • When an organization migrates from one HRMS tool to another
  • When employees migrate from an old policy to a new one
  • When there are any corrections to be made apart from the system entitlements

In such situations, customize balance is the ideal solution. Here you can directly enter the new balance applicable to the selected employee. You need not calculate the difference in balance - the system will make the required corrections to bring it to the new balance entered.

To customize the leave balance,

  • Go to Leave > Settings > Customize Balance
  • Click on Customize button on the top right side

You can use the filter to view balance based on various criteria. You also have various options to import, export, download as PDF and print under the ellipsis icon.

Customize Balance Import

You can import a bulk of entries to customize the balance of many employees in one go. To import for customized balance,

  1. Go to Leave > Settings > Customize Balance.
  2. Click the ellipsis icon on the top right corner.
  3. Select Import.

There are two ways you can import:

Modify balance using Single date for all entries

Select a single date for which you want to modify the balance for the entries you are importing. Follow the sample format as shown in the screenshot below.

Modify balance using Specific date for each entry

Enter specific dates for each entry in the file you are importing. This way you can enter different dates for each entry. Follow the sample format as shown in the screenshot below.

Tip : It is best to customize balance in ascending order of dates.

Note:Contact [email protected] if you are using the basic leave configuration and want to upgrade to this advanced leave policy configuration.

EP2350910A1 - System and method for hardware based security - Google Patents

SYSTEM AND METHOD FOR HARDWARE BASED SECURITY

[0001] This application claims priority from U.S. Patent Application No. 61/193,391 filed

November 24, 2008, and U.S. Patent Application No. 61/224,801 filed July 10, 2009, the contents of both being incorporated herein by reference.

TECHNICAL FIELD

[0002] The following relates to a system and method for managing electronic assets.

BACKGROUND

[0003] There are various elements in a manufacturing process that can create what is considered "waste". Such elements may include defects, inventory (excessive, redundant, etc.), overproduction, over-processing, movement, transportation, and waiting. Additionally, there are costs that can be attributed to external causes such as cloning, copying, technology transfer, and theft (both physical and IP theft).

[0004] Also, at the heart of a wide variety of consumer and commercial products today is a

System-on-Chip (SoC) where many features are integrated on a single silicon die. Manufacturers may use the same SoC in different platforms with various features enabled/disabled in order to differentiate the final products in the market. Unauthorized enablement of features represents significant revenue loss to companies.

[0005] Traditional methods of feature programming include: outright customization of the

SoC silicon through different mask sets; the use of silicon fuses that may be selectively "blown" to control a feature; the use of jumper wires on motherboards; and the loading of different components and firmware per product.

[0006] The provisioning of features occurs in a variety of manufacturing locations whose facilities perform a range of production steps including wafer fabrication for chips, assembly, packaging, test, and system integration where components and firmware are integrated into a final product or assembly. These manufacturing locations are typically overseas and out of the control of the semiconductor company outsourcing the contract manufacturing to these facilities. As a result, there is little reason for the semiconductor company to trust the distributed manufacturing facility to manage the distribution and collection of proprietary and sensitive data such as feature provisioning commands, content protection key data, software/firmware code images, test results and yield reporting data.

[0007] Given the value such SoCs have, and the trend for semiconductor companies to outsource manufacturing, assembly and distribution of their products, several new problems begin to emerge due to the lack of trusted manufacturing processes. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Embodiments will now be described by way of example only with reference to the appended drawings wherein:

[0009] Figure 1 is a block diagram of an asset management system (AMS).

[0010] Figure 2 a sequence diagram showing exemplary operations performed by the AMS in

Figure 1 for providing an asset to a device.

[0011] Figure 3 is a block diagram showing details of one embodiment for the controller shown in Figure 1.

[0012] Figure 4A is a block diagram showing details of one embodiment for the appliance shown in Figure 1.

[0013] Figure 4B is a state diagram illustrating state transitions for the appliance shown in

Figure 4A.

[0014] Figure 5 is a block diagram showing details of one embodiment for the tester and agent shown in Figure 1.

[0015] Figure 6A is a block diagram showing details of one embodiment for the agent API shown in Figure 1.

[0016] Figure 6B is a block diagram showing details of one embodiment for the daemon API shown in Figure 1.

[0017] Figure 7A is a block diagram showing a configuration of the AMS for performing serialization along with a schema definition workflow example.

[0018] Figure 7B is a block diagram showing a configuration of the AMS for performing key injection.

[0019] Figure 7C is a block diagram showing a configuration of the AMS for performing feature activation.

[0020] Figure 8 is a sequence diagram showing an exemplary set of operations for performing serialization using the AMS.

[0021] Figure 9 is a sequence diagram showing an exemplary set of operations for performing key injection using the AMS.

[0022] Figures 1 OA to 1 OB are sequence diagrams showing an exemplary set of operations for performing feature activation using the AMS.

[0023] Figure 11 is an exemplary screen shot showing a quick status view provided by the

AMS graphical user interface (GUI) shown in Figure 1.

[0024] Figure 12 is an exemplary screen shot showing an appliances view provided by the

AMS GUI. [0025] Figure 13 is an exemplary screen shot showing an appliances view provided by the

AMS GUI with an alert bar showing.

[0026] Figure 14 is an exemplary screen shot showing a main status view provided by the

AMS GUI.

[0027] Figure 15 is an exemplary screen shot showing an alerts view provided by the AMS

GUI.

[0028] Figure 16 is an exemplary screen shot showing a jobs view provided by the AMS GUI in a three-line zoom mode.

[0029] Figure 17 is an exemplary screen shot showing a jobs view provided by the AMS GUI in a one-line zoom mode.

[0030] Figure 18 is an exemplary screen shot showing a jobs view provided by the AMS GUI in a details zoom mode.

[0031] Figure 19 is an exemplary screen shot showing a reports view provided by the AMS

GUI.

[0032] Figure 20 is an exemplary screen shot showing a generate reports view provided by the

AMS GUI.

[0033] Figure 21 is an exemplary screen shot showing a reports screen provided by the AMS

GUI.

[0034] Figure 22 is an exemplary screen shot showing a controller view provided by the AMS

GUI.

[0035] Figure 23 is an exemplary screen shot showing a modify controller view provided by the AMS GUI.

[0036] Figure 24 is an exemplary screen shot showing an appliances view provided by the

AMS GUI in a three-line zoom mode.

[0037] Figure 25 is an exemplary screen shot showing an appliances view provided by the

AMS GUI in a one-line zoom mode.

[0038] Figure 26 is an exemplary screen shot showing an appliances view provided by the

AMS GUI in a details zoom mode.

[0039] Figure 27 is an exemplary screen shot showing a ping appliance view provided by the

AMS GUI.

[0040] Figure 28 is an exemplary screen shot showing a sync appliance view provided by the

AMS GUI.

[0041] Figure 29 is an exemplary screen shot showing a modify appliance view provided by the AMS GUI. [0042] Figure 30 is an exemplary screen shot showing a deactivate appliance view provided by the AMS GUI.

[0043] Figure 31 is an exemplary screen shot showing a remove appliance view provided by the AMS GUI.

[0044] Figure 32 is an exemplary screen shot showing a products view provided by the AMS

GUI in a three-line zoom mode.

[0045] Figure 33 is an exemplary screen shot showing a products view provided by the AMS

GUI in a one-line zoom mode.

[0046] Figure 34 is an exemplary screen shot showing a products view provided by the AMS

GUI in a details zoom mode.

[0047] Figure 35 is an exemplary screen shot showing an add product view provided by the

AMS GUI.

[0048] Figure 36 is an exemplary screen shot showing a serialization schema view provided by the AMS GUI in a three-line zoom mode.

[0049] Figure 37 is an exemplary screen shot showing a serialization schema view provided by the AMS GUI in a one-line zoom mode.

[0050] Figure 38 is an exemplary screen shot showing a serialization schema view provided by the AMS GUI in a details zoom mode.

[0051] Figure 39 is an exemplary screen shot showing an add schema view provided by the

AMS GUI.

[0052] Figure 40 is an exemplary screen shot showing a key types view provided by the AMS

GUI in a three-line zoom mode.

[0053] Figure 41 is an exemplary screen shot showing a key types view provided by the AMS

GUI in a one-line zoom mode.

[0054] Figure 42 is an exemplary screen shot showing a key types view provided by the AMS

GUI in a details zoom mode.

[0055] Figure 43 is an exemplary screen shot showing an add key type view provided by the

AMS GUI.

[0056] Figure 44 is an exemplary screen shot showing a feature control tickets view provided by the AMS GUI in a three-line zoom mode.

[0057] Figure 45 is an exemplary screen shot showing a feature control tickets view provided by the AMS GUI in a one-line zoom mode.

[0058] Figure 46 is an exemplary screen shot showing a feature control tickets view provided by the AMS GUI in a details zoom mode. [0059] Figure 47 is an exemplary screen shot showing a users view provided by the AMS

GUI.

[0060] Figure 48 is an exemplary screen shot showing an add users view provided by the

AMS GUI.

[0061] Figure 49 is an exemplary screen shot showing an add users view provided by the

AMS GUI showing one example of an error bar.

[0062] Figure 50 is an exemplary screen shot showing an add users view provided by the

AMS GUI showing another example of an error bar.

[0063] Figure 51 is a block diagram of an AMS in one configuration for utilizing the ACC.

[0064] Figure 52 is a block diagram showing further detail of the device and ACC shown in

Figure 51.

[0065] Figure 53 is a block diagram showing further detail of hardware components of the

ACC shown in Figures 51 and 52.

[0066] Figure 54 is a state diagram illustrating the sequence of operations executed by the firmware in the ACC in transitioning through various states.

[0067] Figure 55 is flow diagram illustrating a boot sequence executed by the firmware in the

ACC.

[0068] Figure 56 is a flow diagram illustrating a state transition sequence executed by the firmware in the ACC.

[0069] Figures 57a to 57d are flow diagrams illustrating subroutines for the four life cycle states shown in Figures 54 and 55.

[0070] Figure 58 is flow diagram for a command interpreter executed by firmware in the

ACC.

[0071] Figure 59 is a flow diagram illustrating an error handler routine executed by the firmware in the ACC.

[0072] Figure 60 is a flow diagram illustrating a hibernation subroutine executed by the firmware in the ACC.

[0073] Figure 61 is a flow diagram illustrating a single command sequence between the appliance and the ACC.

[0074] Figure 62 is a flow diagram illustrating an initialization protocol between the backend, appliance, and ACC.

[0075] Figure 63 is a flow diagram illustrating a key agreement protocol between the backend, appliance, and ACC.

[0076] Figure 64 is a flow diagram illustrating an authentication with confidential messaging protocol between the backend, appliance, and ACC. [0077] Figure 65 is a block diagram illustrating an MMO hash function.

[0078] Figures 66a to 66f are flow diagrams illustrating a sequence of operations performed in a feature activation routine for virtual inventory. DETAILED DESCRIPTION OF THE DRAWINGS

[0079] A problem with traditional approaches to feature programming is that they need to be done in a trusted environment, can be costly to make changes, and typically cannot be readily undone. [0080] Also, it has been recognized that counterfeit or discarded chips are being treated as new products with no way of differentiating between legitimate and illegitimate parts. In some cases, defective chips designated to be destroyed are somehow being recycled back into the production line, while good devices are siphoned off and replaced by cheap competitor or non-compatible chips. As a result, chip vendors are beginning to see their brand being diluted while the cost of warranty increases as these unofficial chips are returned for failing to meet specification. [0081] Another problem arises when considering the proliferation of content protection schemes designed to protect the commercial rights of digital media owners. These content protection schemes require that unique per device key data be programmed into each device somewhere in the manufacturing process. As a licensee of these content protection schemes, semiconductor manufacturers become liable for the content protection key data and need to protect that data as it is distributed throughout their untrusted manufacturing operation.

[0082] As semiconductor manufacturers begin to leverage the distributed manufacturing model, they lose direct control of proprietary device and manufacturing data to the distributed manufacturing operation. In addition to content protection key data, other outbound forms of proprietary data, like feature provisioning commands, software/firmware instruction/machine code, and device personalization data must be distributed and stored throughout the untrusted manufacturing operation. Proprietary manufacturing data also needs to be stored at and collected from the untrusted distributed manufacturing operation by the semiconductor company. The inbound proprietary manufacturing data could exist as test reports/programs, process data and yield management data.

[0083] Opportunities to increase the bottom line in a given manufacturing process may exist by obtaining competitive advantages through the secure management of digital assets. In the following, a system is described that provides a solution framework that may be used to reduce the above-noted wastes and obtain competitive advantages in various applications. The system to be described comprises several software and hardware components that are deployed and integrated into the manufacturing process across multiple physical locations. In this way, a manufacturing platform is created that can provide a comprehensive infrastructure solution.

Asset Management System (AMS) [0084] The manufacturing platform noted above may be referred to herein as an asset management system (AMS) and will be denoted by numeral 10 as shown in Figure 1. The AMS 10 is a customizable solution that can be adapted to accommodate various services. For example, as discussed below, the AMS 10 can be configured to perform one or more of serialization, key injection, and feature activation by controlling the provision of corresponding assets. An asset may therefore refer to any digital data that is to be added, applied to, associated with, or otherwise bound to a device 14. A device 14 can be any component or item that is capable of utilizing such assets. For example, a device 14 may represent a chip, circuit board, electronic consumer device, computer, processor, memory, etc. The AMS 10 creates a control channel 4 to control the provision or injection of an asset into a device 14, and an audit channel 6 to enforce the collection of logging data to track the distribution and use of the assets. The components of the AMS 10 which will be described below can be distributed globally, implemented locally, or any configuration comprising both remote and local components. The AMS 10 enables a company to manage and control sensitive manufacturing processes across a global, outsourced manufacturing environment.

[0085] The AMS 10 comprises one or more controllers 22, which operate as main servers and can be located at the headquarters of an electronic device manufacturer to remotely control their operations at any global location. The controller 22 can communicate remotely over the Internet or other network (not shown) to control one or more secondary or remote servers, herein referred to as appliances 18. The appliances 18 can be situated at different manufacturing, testing or distribution sites. The controller 22 and appliances 18 comprises hardware security modules (HSMs) 19 to perform sensitive and high trust computations, store sensitive information such as private keys, perform other cryptographic operations, and establish secure connections between components. The HSMs 19 are used to create secure end-points between the controller 22 and the appliance 18 and between the appliance 18 and the secure point of trust in the asset control core (ACC) 12 embedded in a device 14. The HSM 19 can be a standard off-the-shelf component that provides the ability to add a functional module (FM) 1 1 comprising source code to perform additional secure operations. For example, as will be explained further below, the AMS 10 enables the metering of credits for assets that are consumed and the HSM 19 when utilizing the FM 11 allows such metering to be performed securely within the secure boundary created by the HSM 19. The use of the FM 11 provides greater flexibility in which operations can be performed in a trusted and secure manner, e.g. in addition to encryption and signing. The FM 1 1 also provides greater flexibility in which protocols can be utilized, e.g. the ECMQV protocol used to communicate with the ACC 12 (discussed later). [0086] The controller 22 also provides a graphical user interface (GUI) 8 to enable administrators, operators, and other users to interface with the controller 22, the appliances 18, and the wider AMS 10. The appliance 18 communicates with one or more agents 20, wherein each agent 20 is integrated into a test script or other production routine using an agent application programming interface (API) 21 and in some embodiments a daemon API 23 that places the agent's role in a separate process outside of the tester 16 and its application (see Figure 6B discussed later). The test script or production routine is typically a custom application that is loaded onto a tester 16 on a manufacturing line. It will be appreciated that the term "tester" may represent any manufacturing or production equipment that is used to inject or otherwise provide an electronic asset to a device 14. Typically, an appliance 18 is located at a production site which may be in the same physical location as the tester 16 or may instead be remote thereto and connected over a LAN, WAN or other network (not shown). As illustrated in Figure 1, the appliance 18 can be deployed in a redundant architecture (i.e. with additional appliance 18') to ensure that if the primary or master appliance 18 malfunctions or goes offline, the additional appliance 18' is provisioned to take over and minimize production downtime. In some embodiments, the AMS 10 may utilize an ACC 12 embedded on the device 14 for establishing secure communications between the appliance 18 and the device 14, through the agent 20.

[0087] Using the AMS 10, a system of factory provisioning can be created and deployed, which can lead to a reduction in revenue loss and can open new revenue sharing opportunities with partners and downstream customers. The AMS 10 can also improve overall security and brand protection throughout the manufacturing process, in particular when outsourced contractors are used to produce high margin devices. Such revenue loss reduction in the manufacturing and distribution processes can be accomplished by: using the AMS 10 to help prevent unauthorized activation of features in semiconductors and other electronic devices 14, reducing over-production, reducing inventory and supply chain costs, enabling strong built-in revenue and brand protection measures, and opening new opportunities to profit from after-market revenue potential.

[0088] Figure 2 illustrates how the controller 22, appliance 18, agent 20, and ACC 12 can be used to define, distribute, and apply an asset to a device 14 as well as collect log reports at various stages for auditing purposes. At the controller 22, the manufacturer (or owner of the asset to be provided) defines the product, namely the object utilizing a particular type of service being provided such as serialization, key injection, feature activation, etc. The controller 22 also defines the asset type which corresponds to the product and service being applied to the product. By having separate definitions for the assets and the products, a unique product name can enable multiple assets of different types to be delivered together in some embodiments. For example, a key can be delivered with a set of features to be activated or a key and a serial number can be delivered and injected at the same time. This saves time and bandwidth as the two assets would utilize the same instance of the control channel 4 to optimize delivery on a product-by-product basis. [0089] A number of assets are generated, acquired or otherwise imported by the controller 22 and the assets are bound to the product which creates an association between the asset and product such that application of the service injects or adds the asset to the product and ultimately one or more devices 14 being produced for that product. The product is then bound to an appliance 18. The product can also be bound to more than one appliance 18 such that the AMS 10 can be configured to distribute assets of the product across the appliances 18. If the same type of device 14 is being produced at different facilities, different products can be created, one for each location. For example, a device 14 may be produced in several geographical locations, each having an appliance 18 at a different production facility. A product may then be created for each facility and bound to the corresponding appliance 18. It may be noted that an appliance 18 can service more than one agent 20 at more than one tester 16 and thus more than one product can be defined for the same appliance 18. [0090] The controller 22 then provides the products and corresponding assets to the appliance

18, and these assets are stored and the products thus provisioned at the appliance 18. The controller 22 meanwhile logs the event of sending the products and the assets and waits for an acknowledgement from the appliance 18 of successful receipt and storage of the assets. The appliance 18 is configured to communicate with at least one agent 20. The agent 20 is configured to utilize the assets in a production or distribution stage. The agent 20 thus requests assets that it needs to perform this stage. The appliance 18 meters and obtains an appropriate number of assets and logs this event to record the allocation of assets to a particular agent 20 (and thus a particular tester 16). The assets are then provided to the agent 20. The agent 20 may then begin a loop that includes applying an asset and logging this event for each device 14 that it operates on. It can be seen that when an ACC 12 is used, an exchange with the ACC 12 is performed, details of which are provided below. At some point, e.g. upon hitting a log threshold, the agent 20 provides a set of agent logs to the appliance 18, and the appliance 18 stores the logs. In other embodiments, the appliance 18 may request logs from the agent 20. The controller 22 at some later point (e.g. during a synchronization operation) then requests logs for products associated with the appliance 18, and the appliance logs and agent logs, both stored by the appliance 18 are provided to the controller 22. The controller 22 may then store the logs and make them available for auditing and other post-processing or analyses of the data contained therein. By controlling the distribution in one direction and enforcing the logging of events and collection of same in the other direction, the AMS 10 is able to provide control over the manufacturing process. [0091] As discussed above, the AMS 10 can be configured to provide various services such as serialization, key injection, and feature activation. These services can be implemented using the control and auditing channels exemplified in general in Figure 2. In order to configure the components of the AMS 10 for these various services, the controller 22, appliance 18, agent 20, and ACC 12 should have certain capabilities. Further detail of these components will now be described, making reference to Figures 3 to 6.

[0092] The controller 22 is shown in greater detail in Figure 3. The controller 22 can be implemented as a security hardened, rack-mounted system which can be accessed through a web interface from a standard web browser 100, 100'. As seen in Figure 3, the controller 22 includes the GUI 8 which can be accessed by a web browser 100 at the controller 22 or remotely 100'. The GUI 8 sits on top of a web server 104 that utilizes a controller daemon 106 to communicate securely (denoted by S) with the appliance(s) 18 and typically without security (denoted by U) with the database 110. A reporting tool 108 can also securely access a relational database 110 to obtain logging and other data for the purpose of generating reports. Service requests from the reporting tool 108 or any similar application can be made to access data in the database 1 10. A database schema is utilized for efficient storage of logs, efficient storage of data as required by service modules, and for efficient lookups of data as required by the service modules. Custom log data from all services modules can be exported from the database 110. Before an appliance 18 is deleted, the controller 22 should synchronize with the appliance 18 to ensure that all logs have been collected. The controller 22 in this example also supports a command line interface (CLI) utility 102 that operates with the controller daemon 106. The CLI utility 102, if utilized, should provide similar functionality as the GUI 8.

[0093] The controller 22 synchronizes appliances 18 automatically at specified time intervals to make sure that any service-related assets are at their specified maximum amounts, i.e. the controller 22 ensures that the appliance 18 has the assets it needs to operate as intended. A read only sync mode can be provided to query current credit levels without topping up any credits. The synchronization operation can also be used to send appliance configuration settings, and to retrieve logs from the appliance 18 as illustrated in Figure 2. This enables the AMS 10 to support high speed manufacturing at each production site without interruption if connections are temporarily lost. The controller 22 can also issue alerts to specified e-mail addresses to inform operators of conditions that could stop production, ideally before those conditions result. The controller 22 issues an alert under several circumstances, such as: when the controller 22 is unable to contact an appliance 18, if there are any errors when the controller 22 sends data to an appliance 18 (and vice versa), when a synchronization operation has failed, when the number of assets in an appliance 18 reaches a specified warning level, when the free disk space on an appliance 18 reaches a minimum, and when an appliance 18 has blocked a connection from an agent 20 - because the agent IP address is not in the list managed by the appliance 18. The management of these alerts can be performed through the GUI 8, described in more detail below. [0094] The controller 22 is also used to monitor all jobs running in the AMS 10, such as synchronization operations and other long running tasks, the status of which can be monitored and their progress logged. Job information can be made available in the GUI 8. The controller 22 also enables operators to add and remove user roles. User roles can be assigned different levels of permission to access each of the components of the AMS 10. The logs generated by the AMS 10 are stored in the relational database 110.

[0095] The controller 22 in this example runs on server hardware, e.g. a Dell 2950

PowerEdge 2U rack mount server using a 2 x Intel Xeon quad core 5300 processor @ 3GHz. The controller 22 can also use a 110/220 V 750 W redundant power module, a DVD ROM, dual gigabit NICs, and a PCIe riser. The controller 22 requires initial provisioning, e.g. by an export PKCSlO request for HSM and SSL certificates, signing the certificates by a device certification authority (CA), and importing the SSL and HSM certificates into the HSM 19. It can be appreciated that any identity certificates unique to each HSM 19 can also be used. The controller 22 should enable general settings to be configured, such as name and SMTP settings for email alerts. Support for multiple user accounts should be provided and a per-user permissions matrix can be used to allow access to various parts of the AMS 10 to be granted or denied. In this way, different user roles can be defined and different permissions given to each user role on a per module basis. The permissions matrix should be configurable such that a customer can define such permissions and define the number of user roles to differentiate between users. The controller 22 enables and disables service modules to enable different service products to be defined, e.g. for serialization, key injection, feature activation, etc. The controller 22 can also configure general settings for an appliance 18, settings such as name, manufacturer, location, IP address, port number, socket retries, socket timeout, send/receive block sizes, and list of agents 20 authorized for that appliance 22.

About this book

Now in its third edition, this best-selling book continues to bring you some of the best thinking on how to apply Oracle Database to produce scalable applications that perform well and deliver correct results. Tom Kyte and Darl Kuhn share a simple philosophy: "you can treat Oracle as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment." If you choose the latter, then you’ll find that there are few information management problems that you cannot solve quickly and elegantly.

This fully revised third edition covers the developments up to Oracle Database 12c. Significant new content is included surrounding Oracle's new cloud feature set, and especially the use of pluggable databases. Each feature is taught in a proof-by-example manner, not only discussing what it is, but also how it works, how to implement software using it, and the common pitfalls associated with it.

Don’t treat Oracle Database as a black-box. Get this book. Get under the hood. Turbo-charge your career.

  • Revised to cover Oracle Database 12c
  • Proof-by-example approach: Let the evidence be your guide
  • Dives deeply into Oracle Database’s most powerful features

Back to top

About the authors

Thomas Kyte is vice president of the Core Technologies Group at Oracle Corporation and has been with the company since version 7.0.9 was released in 1993. Kyte, however, has been working with Oracle since version 5.1.5c. At Oracle, Kyte works with the Oracle database, and more specifically, he helps clients who are using the Oracle database and works directly with them specifying and building their systems or rebuilding and tuning them. Prior to working at Oracle, Kyte was a systems integrator who built large-scale, heterogeneous databases and applications for military and government clients.Tom Kyte is the same "Ask Tom" whose column appears in Oracle Magazine, where he answers questions about the Oracle database and tools that developers and database administrators struggle with every day.

Back to top

sacred error - 20 cannot allocate logdata

Think: Sacred error - 20 cannot allocate logdata

Sacred error - 20 cannot allocate logdata
Sacred error - 20 cannot allocate logdata
Sacred error - 20 cannot allocate logdata
Sacred error - 20 cannot allocate logdata

youtube video

How to run Sacred gold on windows 10

0 Comments

Leave a Comment