Author Archives: damier

2000FPS 1.6

I’ve done it. Kind of. The problem is finding the correct divisor for sys_ticrate.

The engine uses sys_ticrate to step time in increments of 20hz (20ms). So a sys_ticrate of 2000 (2000fps) increases the amount of heartbeats, therefor timers etc all go 2x faster. For example, a bomb plant takes half the time.

HPET based timers (For fun)

What good is usleep()/nanosleep() when you have to more or less wait for the scheduler to give you time (even with SCHED_FIFO)

I’m trying a different approach that will give me much better results, the only downside is I have to read() /dev/hpet which is more expensive than syscalling into the kernel at all. Bummer.

Back to the drawing board.

I could use posix timers, but that would be messy, because the engine calibrates CPU speed on startup/mapcycles to step time in the engine, otherwise you’ll get clock aliasing so it needs control over how long something sleeps.

Windows 7, the rise and fall of GSPs, other crap

Windows 7 is surprisingly faster than I initially thought. It’s I/O and other operations are really quick, plus it seems like the scheduler in windows has better real time latencies than the former. I’m actually liking it more and more (the version I’m using)

The rise and fall of GSPs can be attributed to the following market conditions, which I will post in some detail. The main problem with the lack of sales is because nobody wants to keep playing the same boring shit over and over. Play dust2, then dust, then aztec, then another, then start over. How boring is it? I find it very boring. Another is lack of good games out (COD series is pretty shitty to me, vCOD was the defacto standard) Another reason is because of the piles of companies who have taken money and ran off, leaving former customers saying “never again will I ever buy a game server. Just not worth it”. The established providers don’t have anything to fear, except games like MMORPGs which I hate with a passion.

There is something else I’d like to touch base on, that is Adam from NextGenServers. I’ve been told that this guy has been talking shit about me/summit to customers in the past, and I’m going to comment on this (it’s been in the making). First and foremost, Adam is mentally retarded. How can you misspell words like “Chief” and “Tier”? How can you operate a company when you lie to yourself about your ELITE LINUX COMPILING SKILLS? Compiling a kernel doesn’t mean it’s custom. A custom kernel is something like some code you added to the networking layer, etc. I know people will disagree with this, but that’s my take on it. Personally, I think the entire staff of nextgen is a bunch of mentally retarded people who escaped from down syndrome clinic. Another fly-by-night company who isn’t anything special. I’ve forgotten more than everyone in that company knows. Bank on that. I’ve been using UNIX based systems since Linux was a hobby and BSD4.3 Tahoe was a bunch of patches (early 90s). I have more skills than they do. Summit has a better infrastructure than they do. Summit has a better network than they do. And, last by not least, I CAN SPELL BETTER THAN THEY CAN.

OSPF + iBGP + eBGP + 2 Switches Failover

This is a rough failover for 2 switches that have 2 links to the same ISP, and they have a xconnect between both. They run OSPF sending out a default route. Switch A is the master and Switch B is the slave. If Switch A’s primary xconnect dies, switch B will announce a default route via iBGP and OSPF to keep traffic flowing to the net.

Switch A:

interface GigabitEthernet0/1
description Primary Internet Link
no switchport
ip address 192.168.0.118 255.255.255.252
no ip redirects
no ip proxy-arp
!
interface GigabitEthernet0/2
description Layer3 To Switch B
no switchport
ip address 192.168.1.253 255.255.255.252
no ip redirects
no ip proxy-arp
ip ospf cost 10
!
router ospf 10
log-adjacency-changes
auto-cost reference-bandwidth 10000
process-min-time percent 10
traffic-share min across-interfaces
redistribute connected metric-type 1 subnets
redistribute static metric-type 1 subnets route-map REDIST-STATIC
network 192.168.1.252 0.0.0.3 area 0
maximum-paths 8
default-information originate metric 10 metric-type 1
!
router bgp 12345
no synchronization
no bgp fast-external-fallover
bgp log-neighbor-changes
network 10.10.10.0 mask 255.255.255.0
neighbor 192.168.0.117 remote-as 1111
neighbor 192.168.0.117 description Primary Internet Link
neighbor 192.168.0.117 version 4
neighbor 192.168.0.117 send-community
neighbor 192.168.0.117 prefix-list default in
neighbor 192.168.0.117 prefix-list aggregate out
neighbor 192.168.1.254 remote-as 12345
neighbor 192.168.1.254 version 4
neighbor 192.168.1.254 next-hop-self
no auto-summary
!

Switch B (backup xconnect):

interface GigabitEthernet0/1
description Layer3 to Switch A
no switchport
ip address 192.168.1.254 255.255.255.252
ip ospf cost 10
!
interface GigabitEthernet0/2
no switchport
ip address 192.168.2.121 255.255.255.252
!
router ospf 10
log-adjacency-changes
auto-cost reference-bandwidth 10000
traffic-share min across-interfaces
redistribute connected metric-type 1 subnets
network 192.168.1.252 0.0.0.3 area 0
maximum-paths 8
default-information originate metric 300 metric-type 1
!
router bgp 12345
no synchronization
no bgp fast-external-fallover
bgp log-neighbor-changes
network 10.10.10.0 mask 255.255.255.0
neighbor 192.168.2.121 remote-as 1111
neighbor 192.168.2.121 prefix-list default in
neighbor 192.168.2.121 prefix-list aggregate out
neighbor 192.168.2.121 route-map backup-in in
neighbor 192.168.2.121 route-map backup-out out
neighbor 192.168.1.253 remote-as 12345
neighbor 192.168.1.253 version 4
neighbor 192.168.1.253 next-hop-self
route-map backup-in permit 10
set local-preference 90
!
route-map backup-out permit 10
match ip address prefix-list aggregate
set metric 10
!
route-map backup-out permit 20
!
ip prefix-list aggregate seq 5 permit 10.10.10.0/24

Switch B:

BGP routing table entry for 0.0.0.0/0, version 2
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Not advertised to any peer
1111
192.168.2.121 from 192.168.2.121 (192.168.5.142)
Origin IGP, metric 0, localpref 90, valid, external
1111
192.168.1.253 from 192.168.1.253 (192.168.5.249)
Origin IGP, metric 0, localpref 100, valid, internal, best